Successful candidates will have the following qualities
Experience designing, writing, testing, and maintaining databases or distributed systems
Curiosity, willingness, and ability to quickly learn new things in the domains of computer science and software engineering
10+ years of experience building distributed systems
Experience with building production-level code with a large user base, robust design structure and rigorous code quality
Degree in Computer Science or similar field, or equivalent practical experience, with strong competencies in data structures, algorithms, and software design/architecture
Excellent verbal and written technical communication skills
Passion for the theory and practice of system design for large-scale distributed systems
Demonstrated success in industry and/or academic research in the domain
Position Expectations
Research state-of-the art distributed systems architecture to inform our design
Leverage deep knowledge of the strength and weakness of the product and the industry trends to provide technical vision and direction
Set initiative level strategy, architect, plan, and lead team towards successful execution
Advise management on decisions related to roadmap, processes, architecture and design
You'll need to trace down defects, estimate work complexity, and design evolution and integration strategies as we rewrite different components of the system
Identify, design, implement, test, and support new features in a relatively new and quickly evolving Go codebase
Assist fellow engineers in, and be an advocate for, writing secure, robust, well-reasoned industrial-strength software
Positively influence and grow team members through active mentoring, coaching and leading by example
Success Measures
In three months you’ll have contributed to the development of a project slated for the next release of mongosync, as well as fixed a few bugs and made small improvements; You'll have learned about MongoDB's project lifecycle, and our long-term goals for Cluster-to-Cluster sync
In six months, you are playing an active role in drafting and reviewing the design for new features; You have expanded the team's horizons by presenting a favorite paper or system related to distributed systems architecture
In twelve months, on the basis of your extensive past experience in the large-scale distributed systems programming space, you have contributed to the long-term technical roadmap of the Cluster-to-Cluster team