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. HTTP and REST Basics
  3. DNS, TCP, and TLS Essentials
  4. Caching Fundamentals
  5. Databases and Indexing
  6. Load Balancers and Reverse Proxies
  7. Stateless vs Stateful Services
  8. Message Queues and Async Processing
  9. Consistency and Availability Basics
  10. Designing Real Systems Step by Step

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