PB
PBridge

Full-time jobs › the United States

Senior Software Engineer, Replication

mongodb · United States · Full-time

About this role

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.

We are looking to speak to candidates who are based near one of our MongoDB office for our hybrid working model.

What you will do

• 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

What you bring

Required

• At least five 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

Candidates with addit