Senior Software Engineer (Distributed Databases)
- United Kingdom
- Senior Level
- Posted
Skills
Required
- relational database
- transaction processing
- concurrency control
- query execution
- storage engine
- transaction system
- isolation
- replication
- Rust
- Go
- C++
- PostgreSQL
- MySQL
- SQL
Preferred
- recovery
- concurrency
- query planning
- durable storage
- design reviews
- debugging
Join Cloudflare's Developer Platform as a Senior Software Engineer, where you'll work on stateful, data-intensive applications. You'll be responsible for shaping the consistency, durability, and latency guarantees that customer applications rely on. Your role will involve improving query planning and execution, building transaction and storage paths, designing deterministic simulations, and planning stateful upgrades. You'll also participate in the service's on-call rotation and incident response, own major changes from design through production, and mentor other engineers.
Your work on transaction processing or concurrency control has included defining snapshot visibility and recovery behavior
You've used deterministic simulation or another systematic method to uncover distributed-systems bugs that conventional tests missed
Responsibilities
- Participate in the design and implementation of the database stack, including query planning, execution, transaction processing, and durable storage.
- Make decisions that shape the consistency, durability, and latency guarantees of customer applications, and define and implement how queries read and modify data.
- Mentor other engineers through design reviews, debugging, and incident analysis involving concurrency, durability, and recovery.
- You have led investigations where failures crossed systems owned by several teams
- You've profiled database workloads and traced performance bottlenecks from query execution through durable storage
Requirements
- You have owned a database, storage engine, transaction system, or similarly correctness-sensitive stateful system from architecture through production. You can make architecture and implementation decisions when requirements or system boundaries are incomplete
- You understand how concurrency control, isolation, replication, and snapshots shape consistency, durability, and recovery. You can apply those concepts when operations arrive out of order, components fail independently, or the network partitions
- You understand how query execution, indexing, transaction processing, and durable state shape what developers and operators observe
- You have operated stateful systems through rollouts, scaling events, incidents, and recovery. You know the difference between transient unavailability and incomplete or incorrect recovery, and when a system is safe to return to service
- You write and debug concurrent production software in Rust, Go, C++, or another systems language. You can trace failures across process, network, and durable-state boundaries
- You've worked on the internals of PostgreSQL, MySQL, Amazon Aurora, or another relational database and can trace a SQL operation from planning through commit
jobapplier