All candidates should submit a CV or resumé and cover letter to email@example.com
We are looking for distributed systems engineers to join our clustering team. You’ll work on the software that powers the Neo4j clusters used by our enterprise customers.
We’re looking for people with a strong background or interest in distributed systems. Our goal is to make Neo4j a mission-critical, fault-tolerant data platform. Our first step on this journey was to implement the Raft consensus algorithm to ensure consensus commit for all transactions.
To learn more about what we’ve been working on, please see our recent webinar (video / slides) where the new clustering architecture was introduced.
In this role you will:
design and build components for distributed consensus, cluster management, and to solve other distributed systems problems.
build command line tools to make clusters easy to operate
debug clustering related issues reported by our customers
write stress test to try and break the software
help design and evolve the API of the driver that applications will use to interact with the cluster
You may be a fit for this role if you:
understand the principles of distributed programming
have studied verification methods and can apply them to distributed systems
are interested in transferring academic research into production grade products
enjoy operating multi-server systems
can performance tune, monitor, and measure distributed systems
like programming in Java and know your way around the JVM ecosystem
We don’t expect you to have experience across all these areas. We have a mix of different skills in our team.
Many of our teams are spread over two or more locations so you should be comfortable working as part of a distributed team.