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.
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 preferrable, 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
MongoDB is an equal opportunities employer*