You Can Build a Database (Here's How I'm Learning)

November 17, 2025

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:

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:

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.

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!