Somerville, MA · Job # 8105BK
Our client company is looking for a software engineer to work on a team building the scalable, distributed Management/Administration layer of their database. This team builds the code that manages the distributed database, including deployment, node provisioning, configuration, elastic scale, and failure detection and recovery.
You are an individual contributor role and will be working with a team of extremely talented software engineers. This role requires expertise with distributed computing concepts, advanced design techniques, and familiarity with distributed system testing approaches. Company uses an agile development process, and has a culture that is highly communicative and accountable for development outcomes, including task estimation, delivery, and quality.
- Work effectively on complex distributed systems issues, including threading, messaging, multiple processes, failure detection/handling, and distributed consensus
- Develop software, mostly in Java and Python
- Participate in design/code reviews with other developers to ensure effective and efficient implementation
- Help ensure that Support, Professional Services, and others have the information they need about the management layer to properly support our customers
- Analyze and fix bugs
Required Skills and Experience:
- 5+ years’ experience with Java
- 3+ years’ experience working on distributed and high-availability systems
- Experience with database development
- Experience with Cloud deployments
- Experience with complex algorithms including consensus and system failure handling and recovery
- Experience with modern highly-automated development environments and tooling, including, source code management, testing, build automation, bug/task tracking, and team management tools, with specific preferences for:
- Ability to dive deep into technical issues
- Strong verbal and written communication skills
- Experience with Python and C++ is a plus
- Experience with systems security is a strong plus
- Experience with Docker or other container / micro-service environments is a plus
- BS/MS in Computer Science or equivalent.