MongoDB’s mission is to empower innovators to create, transform, and disrupt
industries by unleashing the power of software and data. We enable organizations
of all sizes to easily build, scale, and run modern applications by helping them
modernize legacy workloads, embrace innovation, and unleash AI. Our
industry-leading developer data platform, MongoDB Atlas, is the only globally
distributed, multi-cloud database and is available in more than 115 regions
across AWS, Google Cloud, and Microsoft Azure. Atlas allows customers to build
and run applications anywhere—on premises, or across cloud providers. With
offices worldwide and over 175,000 new developers signing up to use MongoDB
every month, it’s no wonder that leading organizations, like Samsung and Toyota,
trust MongoDB to build next-generation, AI-powered applications.
The Cluster Scalability Team builds features into the MongoDB Server that enable
operators to scale their workload seamlessly from 100 to 100 billion operations
a day. The team is responsible for specifying where data is stored and building
the distributed protocols for quickly moving data around a cluster to achieve
the desired data distribution. This includes building primitives to both move
small ranges of data, and to rewrite an entire collection across a sharded
cluster with a new sharding partition key and data distribution. Nearly all of
the code the team writes is in our public repository.
In the near-term we'll be focusing on making our data movement primitives more
reliable, resilient, and performant. In the future, we hope to expand our
scaling flexibility to specialized workloads, make sharding invisible to users,
and more intelligently arrange data placement to transparently support dynamic
customer workloads.
Our team champions a strong culture of inclusivity, diversity, and
collaboration. If you want to work on a collaborative team that applies
distributed systems fundamentals to deliver core features of a popular database,
join us! Let’s change what’s possible for application developers, system
architects, and database operators.
This role can be based out of our New York City office or remotely in the North
America region.
CANDIDATE PROFILE
- Minimum 12 years of experience in programming, debugging, and performance
tuning distributed and/or highly concurrent C/C++/Rust software systems.
Experience in C++ is preferable, but not required
- Strong systems fundamentals, including multi-threaded programming and
performance profiling
- Familiarity implementing distributed systems such as consensus protocols,
logical clocks, distributed transactions, and fault tolerance
- Experience implementing database internals or building core components for
data processing systems
- Excellent verbal and written technical communication skills and a strong
desire to collaborate with colleagues and mentor engineers
- Excellent time and project management skills including the ability to make
realistic assessments of project cost and complexity
RESPONSIBILITIES
- Architect and develop novel protocols for moving data between different
shards in a sharded database cluster, ensuring correctness, performance,
resiliency, and low-cluster impact
- Design and implement protocols for placing data intelligently throughout a
cluster and the plans for how to achieve that placement
- Handle distributed systems related customer escalations from Technical
Support team and coach teammates to do the same
- Write production-ready database code in C++, improve the existing code, and
mentor their team to write higher quality code
- Own all code the Cluster Scalability Team maintains, ensuring it achieves a
high standard for quality (including security, durability, availability, and
performance) and maintainability
- Write and improve unit and integration tests in C++, Javascript, and Python
to demonstrate correctness
- Diagnose test failures, identify bugs in existing code, fix them, and prevent
bugs from being introduced in new code
- Investigate the performance impact of code changes that may cause software
performance regressions
- Interview candidates for advanced software engineering positions
- Develop and maintain expertise on cutting edge database and distributed
systems research from industry and academia
- Lead development and project management of some of the largest projects
across the company
- Collaborate with stakeholders and engineering teams across the company to
jointly work on large initiatives
- Advise Product Management on technical product direction, engineering
complexity and inter-project dependencies
- Collaborate with Product Management and Engineering leadership to define
product roadmaps
SUCCESS MEASURES
- In the first month, you will have understood the high level architecture of
MongoDB sharding 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 will be leading the development of new features and
initiatives, helping to mentor engineers on the team, and using your
experience to drive the long-term technical roadmap of the Cluster
Scalability Team
To drive the personal growth and business impact of our employees, we’re
committed to developing a supportive and enriching culture for everyone. From
employee affinity groups, to fertility assistance and a generous parental leave
policy, we value our employees’ wellbeing and want to support them along every
step of their professional and personal journeys. Learn more about what it’s
like to work at MongoDB [https://www.mongodb.com/blog/channel/culture], and help
us make an impact on the world!
MongoDB is committed to providing any necessary accommodations for individuals
with disabilities within our application and interview process. To request an
accommodation due to a disability, please inform your recruiter.
MongoDB is an equal opportunities employer.
ReqID: 3252992186
MongoDB’s base salary range for this role is posted below. Compensation at the
time of offer is unique to each candidate and based on a variety of factors such
as skill set, experience, qualifications, and work location. Salary is one part
of MongoDB’s total compensation and benefits package. Other benefits for
eligible employees may include: equity, participation in the employee stock
purchase program, flexible paid time off, 20 weeks fully-paid gender-neutral
parental leave, fertility and adoption assistance, Registered Retirement Savings
Plan (RRSP) with employer match, mental health counseling, backup child and
elder care, and health, dental, and vision benefits offerings. Please note, the
base salary range listed below and the benefits in this paragraph are only
applicable to candidates based in Canada.
MongoDB’s base salary range for this role in Canada is:
$175,000—$243,000 CAD