Software Engineer - Sharding
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 a software engineer to join the Neo4j Sharding Engineering Team. We own both Infinigraph and Composite products within Neo4j. Composite is the technology behind distributed query execution in the Neo4j Database Management System. Infinigraph is our database sharding offering for large data volumes, utilising a distributed database architecture.
Both involve distributed query execution, which is a complex and interesting topic, involving query language design and implementation, as well as performant networking and concurrency.
As part of an energetic and fun team of engineers, you will be working at the frontier of designing and implementing new capabilities for the Neo4j database.
The amount of data handled by our customers is ever-growing, so sharding is ever more important.
What The Work Is Like
- Designing and implementing features in different parts of the database stack, from the Cypher language implementation down to cluster networking. We have a development process focused on taking time to achieve quality and correctness. However, there is plenty of room for pragmatism and fast paced problem solving.
- Our methodology involves daily stand-ups, frequent pair programming, design meetings and retrospectives.
- Apart from coding features, we also track down both easy and tough bugs, fix downstream test failures, document features, participate in cross-team design meetings, and study the latest in database research.
- You will also spend time learning, thinking and experimenting. Specialising in topics that interest you and helping to grow yourself, the team and the product.
- Experience developing production level software
- Knowledge of Java, Scala or similar languages
- Ability to work independently within a flexible software development organisation
- Ability to communicate about, and collaborate on, complex topics.
- Understanding of the internals of databases, compilers or query languages
- Experience with asynchronous and reactive programming
- Experience of distributed systems through usage, administration or development.
- An interest in recent distributed systems developments (academic or industrial).
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search