Software Engineer - Sharding
Job description
About the role
Become a key member of the Sharding Engineering Team at Neo4j, where you'll focus on enhancing the distributed query execution capabilities of our database. Your work will involve the Infinigraph system, our sharding solution designed to manage extensive data volumes, as well as Composite, which facilitates distributed queries across our database management platform. This role presents unique challenges related to query language design, networking efficiency, and concurrency management.
Key facts
What you'll do
- Develop and implement features throughout the entire database architecture, including the Cypher query language and cluster networking components.
- Engage in daily stand-up meetings, participate in pair programming, and contribute to design discussions and retrospectives to foster team collaboration.
- Troubleshoot and resolve a range of bugs, from simple issues to more intricate problems, while also addressing downstream test failures and creating comprehensive documentation.
- Collaborate with colleagues from different teams during design meetings and maintain an awareness of the latest advancements in database research.
- Allocate time for personal growth, experimentation, and deepening your knowledge in areas that pique your interest.
- Work on optimizing the performance of distributed queries and enhancing the overall user experience of the database.
- Contribute to the architectural decisions that shape the future of Neo4j's sharding capabilities.
- Participate in code reviews to ensure high-quality software development practices are upheld.
Requirements
- A solid background in developing production-quality software, demonstrating your ability to deliver reliable solutions.
- Proficiency in programming languages such as Java, Scala, or similar, showcasing your technical expertise.
- Ability to work independently within a dynamic engineering environment, adapting to changing requirements and priorities.
- Excellent communication and teamwork skills, particularly when addressing complex challenges that require collaborative problem-solving.
- Familiarity with software development methodologies and best practices, ensuring efficient project execution.
- A passion for technology and a desire to stay updated with industry trends and advancements.
Nice to have
- Knowledge of database internals, compiler design principles, or query language implementation techniques, which would enhance your contributions to the team.
- Experience with asynchronous or reactive programming paradigms, adding versatility to your skill set.
- Exposure to distributed systems, whether through development, operational roles, or practical usage, providing valuable insights into system behavior.
- A keen interest in current research in distributed systems, whether from academic sources or industry publications, to inform your work.
Skills & tools
- Proficient in Java or Scala, with a strong understanding of their respective ecosystems.
- Familiarity with distributed systems and cluster networking concepts, essential for optimizing database performance.
- Knowledge of the Cypher query language, which is integral to Neo4j's functionality.
- Experience with asynchronous and reactive programming techniques, enhancing your ability to build responsive applications.
Practical notes
- Neo4j has recently surpassed $200 million in annual recurring revenue, reflecting its strong market position.
- The company has successfully raised over $600 million in funding, including a significant $325 million in a Series F round, leading to a valuation exceeding $2 billion.
- Notable investors include Eurazeo, GV (formerly Google Ventures), and Inovia Capital, highlighting the confidence in Neo4j's vision and potential.
- An impressive 84% of Fortune 100 companies and 58% of Fortune 500 firms utilize Neo4j, underscoring its widespread adoption and trust within the industry.
- We encourage candidates who may not meet all specified qualifications to apply, as we value diverse experiences and perspectives.
Join us at Neo4j and be part of a team that is shaping the future of graph databases through innovative solutions and collaborative efforts. Your contributions will directly impact how organizations manage and query their data, making a difference in the technology landscape.
About the company
Neo4j is the graph intelligence platform that transforms data into knowledge to power the next generation of intelligent applications and AI systems. It includes enterprise-ready knowledge graphs for accurate, explainable, and governed AI; the most comprehensive, trusted, and easy-to-deploy graph capabilities across any environment and data source; and an unmatched ecosystem trusted by 84 of the Fortune 100 and supported by the world's largest graph community.