Databricks·Software Engineer·Onsite - System Design / Architecture
Jul 2026
System design round at Databricks for a software engineer role, focused entirely on building a durable key-value store from scratch. The depth they expected was pretty intense, covering everything from WAL design to concurrency models to back-of-envelope math. Left feeling like I'd been wrung out.
- Design a durable key-value store with put, get, and delete operations. Walk through how you'd use a write-ahead log to guarantee durability, lay out your on-disk data structures, and explain how the system recovers after a crash.
- How would you handle torn writes in your WAL, and what's your fsync and batching strategy?
- Describe your compaction and garbage collection strategy for the on-disk data structures.
- What concurrency model would you use: single-writer with multiple readers, or multiple writers? Would you use lock-based or optimistic concurrency, and how do you ensure correctness?
- What consistency guarantees does your design provide, and how do read-after-write semantics work under concurrent access?
- Do some back-of-the-envelope estimates for the resource requirements of this system.
- What would a minimal testing plan look like for this system, specifically around failure injection and recovery?
“This was the core of the whole interview and it ate up most of the time.” The rest of the author's notes on Software Engineer interview at Databricks, Onsite - System Design / Architecture round, covers how they worked through the question, what the panel pushed back on, and what they would do differently.
View Post