If you are trying to learn system design, you probably know this exact feeling: you read a highly recommended tutorial, nod along, and then three weeks later realize you actually have no idea how a reverse proxy works.

That kept happening to me. I kept running into the same two roadblocks:

  1. Explanations assumed I already had a decade of senior engineering experience.
  2. I would "learn" a concept, only to realize later my foundational mental model was completely wrong.

So, I started writing these notes to fix my own understanding. I write each post like the exact guide I wish someone had handed me on day one.

What This Series Is (and Is Not)

This series is:

  • a learning journal in public
  • beginner-first explanations
  • focused on intuition and mental models

This series is not:

  • a complete reference
  • interview-prep "final answers"
  • professional technical documentation

I care more about making ideas click than sounding formal.

How to Use These Notes

  1. Read in order.
  2. Pause when something feels unclear.
  3. Compare your understanding with the examples.
  4. Revisit older posts after newer ones.

System design understanding grows in layers. The second read is usually better than the first.

Current Learning Path

The path will evolve as I learn, but this is the current order:

  1. How the Web Works
  2. Intro to Architecture (Mental Models)
  3. Load Balancers
  4. Reverse Proxies
  5. DNS
  6. CDN
  7. Consistency and Availability Basics
  8. The CAP Theorem
  9. Caching Fundamentals
  10. Databases and Indexing
  11. Stateless vs Stateful Services
  12. Message Queues and Async Processing
  13. Designing Real Systems Step by Step

Alright, let's get into it. Moving on to our first topic: How the web works.