Senior Software Engineer, Sharding


Barcelona, Spain

full time

30 Sep 2020


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 transparent and are typically some of the flagship features for each major MongoDB release.

To achieve our goal, we craft and build the machinery that transforms independent query processing and storage nodes into a single database management system, and we implement novel features that demonstrate 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.

Candidate Profile
Successful candidates will have majority of the following qualities

  • Shown success in designing, writing, testing and maintaining distributed and/or highly concurrent software systems in large, long-lived C/C++ code bases
  • Proven experience in programming, debugging and performance tuning, and a strong grip on computer science fundamentals. Professional or advanced academic expertise in the areas 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 leadership 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.

Position Expectations

  • 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 specialists to coordinate flawless 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

Success Measures

  • 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 tackled code review responsibilities and are involved in reviewing the design for new features
  • In twelve months, you are owning the development of a new feature and are helping to mentor new engineers on the team

MongoDB is an equal opportunities employer

Do you want to get jobs like this one sent to your email every week?

Then subscribe to the C++ JOBS newsletter!