MongoDB is a leading database platform company that empowers customers to innovate in the AI era. They are seeking a Senior Software Engineer for their Replication Team to develop data replication solutions and improve their API and interface boundaries for high availability and fault tolerance.
Responsibilities:
- Develop novel data replication solutions based on the Raft consensus protocol for ensuring automatic failover and zero-downtime of user applications
- Handle distributed systems related customer escalations from Technical Support team
- Write production-ready database code in C++
- Write unit tests and integration tests in C++, Javascript, and Python to demonstrate application correctness
- Diagnose test failures, identify bugs in existing code, and fix them
- Investigate the performance impact of code changes that may cause software performance regressions
- Interview candidates for software engineering positions
- Develop and maintain expertise on cutting edge database and distributed systems research from industry and academia
- Handle (or lead the effort to handle) time-sensitive customer escalations
- Lead development and project management of large, cross-team projects
- Collaborate with stakeholders and engineering teams across the company to jointly work on large initiatives
- Advise Product Management on engineering complexity and inter-project dependencies
- Collaborate with Product Management and Engineering leadership to define product roadmaps
Requirements:
- Minimum 10 years of experience in programming, debugging, and performance tuning distributed and/or highly concurrent C/C++ software systems
- Strong systems fundamentals, including multi-threaded programming and performance profiling
- Familiarity with distributed systems such as consensus protocols, data replication, distributed transactions, and fault tolerance
- Familiarity with database internals or building core components for data processing systems
- Excellent verbal and written technical communication skills and a 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
- Passion for learning new things in the domains of computer science and software engineering
- Experience in C++ is preferable, but not required