Team Description

Building reliable and robust software requires an even more reliable and robust infrastructure, with tools designed to pinpoint any weaknesses. MongoDB is seeking an engineer to improve the way Server team engineers write new tests, debug existing tests, and develop test plans. The team's mission is to spread a culture of testing and rigor across the Server team.

Candidate Profile

The right candidate for this role—in addition to being passionate about enabling others to do their job more efficiently and effectively—also has the following background and aptitudes:

  • Experience with testing (or working with) distributed systems and enterprise software
  • Experience with diagnosing subtle bugs using debuggers and tracing tools (GDB, WinDbg, SystemTap, etc.)
  • Experience with scripting and automating processes on either Linux or Windows
  • Knowledge of a modern scripting language, such as JavaScript or Python
  • Familiarity with a compiled programming language, such as C, C++, or Go, and an appetite for exploring a large C++ codebase
  • Excellent communication skills for documenting and reporting defects in a public bug tracker
  • Excellent communication skills for interacting with stakeholders in requirements gathering, design, proof-of-concept demonstrations, implementation, and support

Position Expectations

  • Develop automation frameworks and test suites that run reliably and continuously on multiple operating systems and platforms (Linux, Windows, OS X, Solaris, etc.)
  • Develop tools and processes that empower Server team engineers to identify gaps in the testing of their own code
  • Collaborate with other engineers to perform root-cause analyses and preliminary problem investigation
  • Consult with Server team engineers on requirements and strategies for testing new features or functionality

Success Measures

A software engineer is considered successful in this role after having taken on the following responsibilities:

  • Technical: Improve the diagnostics available or reduce the amount of manual work required for investigating why a test failed
  • Ownership: Actively participate in the design, test plan, code review, and implementation of testing for a new feature or functionality
  • Communication: Detail clear and concise steps to reproduce a problem and demonstrate a complete understanding of its root-cause

 

Stop reading, start applying! Apply

Top