Yugabyte is the company behind YugabyteDB, a cloud-native, distributed PostgreSQL database for modern applications. They are seeking a Senior Software Engineer in Test to design automation frameworks and validate the quality of their database through rigorous testing and collaboration with development teams.
Responsibilities:
- Architect, develop and maintain test automation frameworks
- Design and execute comprehensive test suites focusing on the "hard problems" of distributed databases: stress, resiliency, scalability, and performance
- Design and orchestrate distributed systems tests that simulate real-world failure modes
- Own the end-to-end quality of major features, from initial design review and test planning to production-ready automation
- Modernize existing test footprints by identifying opportunities for redesign, improved efficiency, and higher stability in CI/CD pipelines
- Uncover deep-seated bugs such as data corruption and consistency violations
- Deep-dive into the codebase to understand technical dependencies and execution paths, ensuring tests target the most critical logic
- Scale our test infrastructure, ensuring that the built tests scale with our growing feature set
- Define and inspire changes to our product with our development engineering team based on feedback from tests and customer issues
- Act as a technical lead for junior engineers and serve as an internal advocate for the customer experience
- Develop and contribute to internal and external knowledge bases. Be a champion for our customers
- Go above and beyond to ensure customers are getting the most out of their investment in the Yugabyte database
Requirements:
- 5–8 years of experience in Software Development in Test (SDET) or Systems Engineering, with a BS/MS in Computer Science or a related field
- Strong foundation in Distributed Systems: Deep understanding of distributed architecture, including consistency models (linearizability, serializability), the CAP theorem, and consensus protocols (Raft)
- Database Internals Expertise: Highly desirable knowledge of query processing, transactions (ACID), recovery logs, and concurrent B-tree access
- Proficient in Data Structures and Concurrent Programming. Must be comfortable reading and navigating the complex C++ codebase to identify potential failure points
- Working knowledge of Python, Java programming languages and advanced SQL
- Sound understanding of JDBC APIs and database connectivity
- Hands-on experience with Linux, shell scripting, Git, and architecting scalable CI/CD pipelines
- Ability to leverage generative AI and LLM-based coding assistants to accelerate the authoring, refactoring, and optimization of complex test suites
- Exceptional troubleshooting skills with a 'break-it' mindset; ability to trace issues from high-level test failures down to the code level for both internal and customer-reported bugs
- A proven track record of identifying complex bugs, specifically data corruption and consistency issues