For years, I built web applications. While the web provided a comfortable layer of abstraction, my curiosity, particularly my long-standing interest in how databases work, pulled me deeper. I decided to dive into the depths of systems programming, and the shift has been great. On the web, we are shielded from actual hard problems; here, the challenges of managing memory, concurrency, and durable, stateful storage are completely different. Below is a collection of resources I’ve found valuable on this journey:
Communities
The right community makes all the difference when you’re learning something challenging:
- Database Internals Discord – Active discussions about database design, storage engines, and implementation details.
- Software Internals Discord – Broader systems programming topics.
- r/databasedevelopment – A subreddit for people interested in building databases.
Video Content
I skip most podcasts and YouTube videos—too easy to fall down rabbit holes. I focus on structured lectures instead:
- CMU Database Group – Andy Pavlo’s database courses are legendary. These lectures cover everything from storage engines to query optimization. He is the goat.
- The Cherno’s C++ Series – While Zedis is written in Zig, understanding C++ helps you grasp systems programming concepts.
Books
These are the books I keep coming back to:
- Database Internals by Alex Petrov – The book that demystified storage engines and distributed systems for me.
- Designing Data-Intensive Applications by Martin Kleppmann – Essential reading for understanding how databases work in production.
- Database System Concepts - The classic textbook. Comprehensive and detailed.
Zig Resources
Zig is what made this journey possible for me. I tried C/C++ several times and bounced off hard, call it a skill issue if you want, but those APIs feel like they’re fighting you. Zig was built for low-level control with good ergonomics, and it’s become my comfort language. I can’t recommend it enough.
- The Zig Book – Great introduction to the language
- Zig Guide – Practical examples and explanations
- ziggit.dev – The Zig community forum
- Zig Discord – Incredibly helpful community
- r/Zig – Reddit discussions
Inspiration projects
- Build Your Own X – A curated list of tutorials for building your own databases, operating systems, compilers, and more.
- awesome-dbdev – More focused collection of database development materials.
- Tigerbeetle – The best database written in Zig.
Lastly, this blog, of course. Thanks for reading!