🚀🧩 How I Learned System Design
firaflashLet me be brutally honest with you:
There was a time I skipped anything labeled “System Design.”
I used to think:
“This stuff is for senior engineers… not for me.”
I was wrong.
Because one day, during an interview, they asked:
“Can you design a ride-sharing app like Uber?” 🚗
And I froze.
I talked about REST APIs.
I mentioned MySQL.
Then… silence.
No idea how to handle scale.
No clue how to store real-time location.
Didn’t even know queues were a thing.
That day I decided it wouldn’t happen again.
1) I Accepted I Knew Nothing (And That’s Okay) 🤝
System Design feels intimidating.
People throw words like:
Sharding, CQRS, Load Balancers, Eventual Consistency…
It made me feel dumb.
Then I realized:
Everyone is clueless in the beginning.
System Design isn’t a chapter you finish.
It’s about:
- how data flows 🌐
- how services communicate 🔁
- how systems survive huge traffic 💥
- how to build fault-tolerant, reliable systems 🔒
Once I accepted it would take time, it got easier.
I stopped chasing perfection.
I focused on small wins.
2) I Broke It Down Into Mini-Topics 🧩
System Design isn’t one topic.
It’s building blocks.
So I made myself a map:
a) Internet Basics
- What happens when you type a URL?
- DNS, CDN, Load Balancer
- TCP vs UDP, HTTP vs HTTPS
DNS is basically the internet’s phonebook 📇
CDNs are why YouTube loads fast ⚡
b) Data & Storage
- SQL vs NoSQL
- Indexing, Replication, Sharding
- MongoDB vs PostgreSQL
We once picked Mongo for transactional data.
We regretted it. 😅
c) Scaling
- Horizontal vs Vertical scaling
- Caching (Redis, Memcached)
- Load balancing strategies
This part made system design feel fun,
like thinking for millions of users 💡
d) Architecture Patterns
- Monolith vs Microservices
- Event-Driven Systems
- Queues & Pub/Sub (Kafka, RabbitMQ)
Netflix doesn’t use microservices because it’s trendy.
Their scale demands it.
3) I Watched People Think, Not Just Teach 🎥
Instead of tutorials, I watched mock interviews.
Game-changer.
When someone thinks aloud… hesitates… backtracks…
you learn how to think, not how to memorize.
Channels that helped:
- Gaurav Sen – builds from scratch
- Exponent – real interviews
- ByteByteGo – visuals + storytelling
I learned to:
- Ask clarifying questions ❓
- Define functional + non-functional requirements
- Talk about tradeoffs, not tools
4) I Started Drawing (Even on Paper) ✏️
I’m not an artist.
But drawing this:
Client → Load Balancer → App Servers → Database
made everything click.
Visualizing beats memorizing. 🎯
Final Thought
System Design isn’t something you study.
It’s something you grow into.
Start small. Stay consistent.
One building block at a time. 🧱
One day you’ll surprise yourself in an interview.