7 days ago
Malmö, SwedenMid Level
Responsibilities
- Design, profile, and implement core database features including storage formats, index structures, and recovery paths.
- Diagnose concurrency bugs, race conditions, and lock contention.
- Improve latency through CPU, memory, off-heap memory, and disk I/O performance engineering.
- Review designs and pull requests with emphasis on correctness, data integrity, and maintainability.
- Help determine technical direction and architectural trade-offs for the database engine.
Requirements
- Experience with systems programming and working close to hardware, particularly with Java or transferable experience in C++, Rust, or Go.
- Understanding of threads, locks, atomic operations, cache locality, and algorithmic complexity.
- Ability to write thorough tests and apply pragmatic engineering practices.
- Collaborative approach to technical discussion, benchmarking, and code review.
- Prior database internals, storage engine, or file-system experience is a bonus.
- Deep JVM internals knowledge, including garbage collection, JIT compilation, and off-heap memory, is a bonus.
- Hands-on experience with async-profiler, JFR, or perf is a bonus.
- Experience navigating and evolving large, mature codebases is a bonus.
Benefits
- The team is split between Malmö and London.
- Regular “Do What You Want” weeks provide dedicated time for personal prototypes or tooling improvements.
About Neo4j
Neo4j builds a native graph database and graph analytics platform for developers and data teams, available as self-managed software and the Aura managed cloud. It powers knowledge graphs, recommendations, fraud detection, and other relationship-centric applications via the Cypher query language and integrations across data tools. Founded in 2007 and headquartered in San Mateo, the privately held company commercializes the open-source Neo4j project with enterprise subscriptions and support.
