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:
- Explanations assumed I already had a decade of senior engineering experience.
- 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
- Read in order.
- Pause when something feels unclear.
- Compare your understanding with the examples.
- 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:
- How the Web Works
- HTTP and REST Basics
- DNS, TCP, and TLS Essentials
- Caching Fundamentals
- Databases and Indexing
- Load Balancers and Reverse Proxies
- Stateless vs Stateful Services
- Message Queues and Async Processing
- Consistency and Availability Basics
- Designing Real Systems Step by Step
Alright, let's get into it. Moving on to our first topic: How the web works.