The MongoDB Sharding Team builds infrastructure and tools which abstract difficult distributed systems problems from the database users, freeing them up to just focus on working with the data itself and not where it resides. As a result of this, the projects delivered by the Sharding Team are highly visible and are typically some of the flagship features for each major MongoDB release.
To achieve our goal, we design and build the machinery that transforms independent query processing and storage nodes into a single database management system, and we implement novel features that leverage that machinery. Ongoing work includes offering stronger and more tunable consistency models, providing more configurable disaster recovery behaviors, improving cluster elasticity and introducing novel workload balancing policies.
If you want to work on a collaborative team developing an open source distributed database, join us. Let’s change what’s possible for application developers, system architects and database operators.
Successful candidates will have majority of the following qualities:
- Proven success in designing, writing, testing and maintaining distributed and/or highly concurrent software systems in large, long-lived C/C++ code bases
- Minimum 5 years of experience in programming, debugging and performance tuning, and a strong grip on the foundational material of computer science. Professional or advanced academic expertise in the domains of distributed systems and databases is preferable, but not strongly required.
- Experience in programming, debugging and performance tuning, and a strong grip on the foundational material of computer science. Professional or advanced academic expertise in the domains of distributed systems and databases is preferable, but not strongly required.
- Excellent verbal and written technical communication skills and desire to collaborate with colleagues and mentor junior engineers and interns
- Excellent time management skills and the ability to make realistic assessments of project complexity
- Regardless of prior experience, they are willing, able and excited to quickly learn new things in the domains of computer science and software engineering. They are curious about how people and organizations use MongoDB, and how MongoDB could be improved to enable more uses.
- Understand and improve current functionality in MongoDB’s sharding and replication components
- Identify, design, implement, test and support new features in MongoDB
- Work with other engineers to coordinate seamless changes in a feature-rich, large code base
- Work with product management and others to specify new features that delight our users
- Estimate task complexity and report progress and risks to peers and managers
- Learn from and teach peers and junior engineers
- Develop and maintain expertise in the modern practice and research of distributed systems and databases
- In the first month you will have understood the surface area and the high level architecture of MongoDB sharding, become familiar with the code areas with which it interfaces and fixed a few bugs
- In three months you will have contributed to the development in C++ of a project slated for the next major release of MongoDB and diagnosed and fixed a few customer or testing-reported issues
- In six months, you will have taken on code review responsibilities and are involved in reviewing the design for new features
- In twelve months, you are leading the development of a new feature and are helping to mentor new engineers on the team