Employer listing
Senior Software Engineer, Replication
MongoDB
hybrid · full time · Senior
$101,000 - $273,000
Role Overview
MongoDB’s Replication Team builds the infrastructure that enables high availability, fault tolerance, automatic failover, and tunable consistency. As a Senior Engineer on the team, you will design and implement distributed-systems features that protect data and keep applications available under demanding operating conditions.
You will work primarily in C++ on core database code, partner with engineers across MongoDB, and shape features central to major MongoDB releases. This is an opportunity to apply distributed-systems fundamentals to problems in data consistency, recovery time, replication performance, and operability.
Responsibilities
- Design and implement production features across the replicated data lifecycle
- Improve restore and recovery workflows with attention to recovery time objectives
- Improve replication lag, throughput, and flow control; measure performance and prevent or resolve regressions
- Write production-quality C++ and the unit, integration, and system tests needed to demonstrate its correctness
- Use JavaScript and Python where appropriate to extend test coverage and validate end-to-end behavior
- Collaborate with partner engineering teams and stakeholders on large, cross-functional initiatives
- Investigate distributed-systems issues raised by customers and Technical Support, communicate findings clearly, and deliver durable fixes
- Participate in code reviews, design reviews, and technical discussions that improve the quality of the team’s work
- Interview candidates and mentor junior engineers and interns
Qualifications
Required
- At least 5 years of experience programming, debugging, and performance-tuning distributed or highly concurrent software systems
- Strong systems fundamentals, including multithreaded programming, concurrency, debugging, and performance profiling
- Practical experience with distributed-systems concepts such as replication, data consistency and durability, recovery, fault tolerance, or consensus protocols
- Experience working with complex production codebases and diagnosing problems that cross system boundaries
- Strong written and verbal technical communication skills
- A collaborative approach and the ability to make realistic assessments of project complexity and delivery risk
Preferred
- Professional experience developing production software in C++
- Familiarity with database internals or core components of data-processing systems
- Experience with replication, recovery, data consistency, or Raft/another consensus protocol; direct experience with every area is not expected
- Experience writing unit, integration, and end-to-end tests in C++, JavaScript, or Python
- Experience responding to customer-impacting production issues in distributed systems
- Experience mentoring engineers or interns and contributing to technical hiring
Benefits
Benefits include equity, employee stock purchase program, flexible paid time off, 20 weeks fully-paid parental leave, fertility and adoption assistance, 401(k), mental health counseling, and comprehensive health insurance coverage.