Software Engineering - Clustering & Distributed Systems
Indexed description
Built to work everywhere and integrate with everything across every cloud for dynamic, personalized, and autonomous AI systems. We deliver quicker results, contextual knowledge, and solutions that impact customers and employees across the business.
Our Vision
At Neo4j, we have always strived to help the world make sense of data.
As business, society and knowledge become increasingly connected, our technology promotes innovation by helping organizations to find and understand data relationships. We created, drive and lead the graph database category, and we’re disrupting how organizations leverage their data to innovate and stay competitive.
The Role
We are looking for experienced Software Engineers to join our team, which develops the distributed aspects of the Neo4j database. The team is responsible for ensuring the data in our native graph database is replicated consistently across systems while maintaining high query performance. The work is critical for our enterprise customers, who expect our database to provide high availability, horizontal scalability, and deployment flexibility.
We’re particularly excited to hear from people who have developed and maintained complex distributed systems before, who have experienced some of their pain points and design trade-offs firsthand.
Your contributions will be deployed in production environments around the world, vital to the varied and demanding use cases of our customers in financial services, pharmaceuticals, communications, and, more recently, in LLM context graphs.
What The Work Is Like
- The day-to-day work spans a wide range of the database stack, from low-level systems programming (concurrency, networking and storage) to higher-level development of distributed control planes where predictability and stability are vital.
- We have a development culture focused on good system design. The systems we build have to handle failing servers, unstable networks, and query overloads. As such, we take the time to architect for quality and correctness.
- Apart from coding features, you’ll also work with support engineers to track down tough bugs, with SREs to support our database as a service offering, and with product managers to design new features.
- You’ll also spend time learning and experimenting, specialising in topics that help grow yourself and the team. Some examples of our current specialisations include cloud-native architectures, networking, and distributed consensus algorithms.
- Ability to work independently within a flexible software development organisation
- Ability to communicate clearly about complex topics.
- Desire to work collaboratively on difficult problems and features.
- Experience of distributed systems through usage, administration or development.
- Experience with, or a strong interest in learning, modern, high-performance, concurrent Java programming.
- Experience building stateful distributed systems (such as databases, message brokers or stream processing systems)
- Experience of distributed systems through usage, administration or development.
- Experience working with orchestration systems, such as Kubernetes.
- Existing knowledge of Java programming, the Java ecosystem or JVM internals.
- Experience with working on large code bases.
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search