🚀🧩 How I Learned System Design

 🚀🧩 How I Learned System Design

firaflash

Let 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.


Report Page