> Markdown version of [/jobs/ext/4592682-software-engineer](https://www.wearedevelopers.com/jobs/ext/4592682-software-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Software Engineer - **Company:** Neo4j, Inc. - **Location:** UK - **Contract:** Permanent contract - **Skills:** Java (Programming Language), Systems Engineering, C++ (Programming Language), Profiling, Code Review, Databases, Data Integrity, Data Structures, Software Debugging, File Systems, Memory Management, Java Virtual Machine (JVM), Neo4j, Database Engines, System Programming, Concurrency, Indexer, Heap (Data Structure), Web Api - **Published:** November 6, 2026 - **Apply:** https://startup.jobs/software-engineer-database-kernel-neo4j-2-10688474 ## About the Role * Systems programming experience: You are comfortable working close to the hardware. Most of our codebase is Java, but if your background is in C++, Rust, or Go and you understand memory layouts and concurrency, that translates well. * Concurrency and data structures: You have a clear understanding of threads, locks, atomic operations, cache locality, and algorithmic complexity. * Pragmatic engineering: You write thorough tests because edge cases in database kernels are painful to debug in production. * Collaborative attitude: You are comfortable having your technical choices questioned, you back up decisions with data or benchmarks, and you treat code review as a two-way discussion rather than a hurdle., * Prior experience with database internals, storage engines, or file systems. * Deep knowledge of JVM internals, such as GC behavior, JIT compilation, and off-heap memory. * Hands-on experience with profiling tools like async-profiler, JFR, or perf. * Experience navigating and evolving large, mature codebases. ## Description The Kernel team builds the storage engine and transaction machinery inside Neo4j. If you join us, you will not be building web APIs or shuffling data between services. Instead, you will be working directly on the database engine itself. Our day-to-day is low-level systems engineering. We write and maintain custom storage engines, the page cache, transaction handling (WAL, ACID guarantees), indexing, and memory management. The code we write determines how fast queries run across billions of nodes and relationships, and how safely data is written when a machine crashes. We are a pragmatic, engineering-led group split between Malmö and London. We read and discuss database papers (VLDB, SIGMOD, and others) to see what ideas are worth pulling into the product. We also run regular "Do What You Want" weeks so everyone has dedicated time to experiment with their own prototypes or tooling improvements. What you will actually be doing: * Designing, profiling, and implementing core database features, including storage formats, index structures, and recovery paths. * Diagnosing tricky concurrency bugs, race conditions, and lock contention. * Performance engineering: profiling CPU, memory allocation, off-heap memory, and disk I/O to improve latency. * Reviewing designs and PRs with a heavy focus on correctness, data integrity, and long-term maintainability. * Helping decide technical direction and architectural trade-offs as our engine evolves.