In this role, you will * have the opportunity to identify, scope and lead major projects that impact features, reliability, scalability and maintainability of our storage system. * mentor other engineers, work across teams to identify improvement areas and build consensus, and participate in roadmap discussions. * help raise the bar for code quality and technical excellence by influencing your team and teams around you. * participate in various planning efforts, including sprints, quarterly, and yearly planning. Partner with other teams to define product priorities and influence long-term technical decisions to build a reliable and maintainable product. Most of our code base is in Java but previous knowledge of the language is not a requirement. Knowledge in another similar language like C# is a plus. We are looking for developers with a keen interest in writing readable and testable code, using test-driven development, refactoring and promoting best practices in the team. We work in pair-programming among team members about half of the time. Past experience developing storage systems is a plus, but is not required.
Minimum Qualifications
Minimum Qualifications
In depth experience as a backend software engineer.
Experience in an object-oriented language.
Working knowledge of computer science fundamentals: networking, filesystems, security concepts.
Experience driving complex projects end-to-end, collaborating across teams and leading other engineers.
Key Qualifications
Key Qualifications
Preferred Qualifications
Preferred Qualifications
Comfortable with thread safety, non-blocking, asynchronous and concurrent programming.
Ability to dig in performance issues and debug complex problems.
Ability to design features and systems, explore trade-offs and discuss choices with the team.