system-design

The Reading List

This repo is a complete course, but system design is a lifelong subject. This is the curated reading list to go deeper — the books and courses worth your time, roughly ordered from beginner to advanced, with a note on when to read each. You don’t need all of them; pick based on where you are.

Time to read: ~10 minutes; a lifetime to work through


How to use this list

🚨 Don’t try to read everything — that’s a procrastination trap. This repo + deliberate practice is enough to pass interviews. Use this list to (a) go deeper on topics you love, (b) fill a specific gap, or (c) keep growing after you land the job. Pick one book at a time, and apply it (build something, redo a case study) rather than just reading.


Books — the essentials

Start here (beginner-friendly)

The one book to truly understand data systems (essential)

Going deeper (intermediate → advanced)

Adjacent but valuable


Courses & structured learning


A suggested reading order

flowchart LR
    A[This repo +<br/>case studies] --> B[Alex Xu vol 1-2<br/>interview reps]
    B --> C[DDIA<br/>true understanding]
    C --> D[Pick specialties:<br/>microservices / SRE /<br/>DB internals / 6.824]
  1. Now (interview prep): this repo + practice + Alex Xu’s worked examples. Enough to pass interviews.
  2. Next (real understanding): DDIA, cover to cover, applying it to the case studies.
  3. Then (depth by interest): pick specialties — microservices, SRE, database internals, or the 6.824 course.
  4. Ongoing: engineering blogs and papers.

🚨 Reading order matters less than applying what you read. After any chapter, redo a case study or build something with the new lens.


🛠️ Try it

1. Buy/borrow DDIA and start it. Read one chapter, then map it onto a case study in this repo (e.g. the replication chapter → the KV store). Applying it makes it stick.

2. Pick one course to commit to. If you want depth, enroll in (or bookmark) MIT 6.824 or a database course and schedule it. One deep course beats ten half-watched videos.

3. Don’t hoard. Choose one book to actually finish next, and ignore the rest until you do. The list is a menu, not a to-do list.


Further reading