Back to Blog

System Design 101 - Part 1: A Beginner’s Guide to Building Scalable Systems

2025-10-285 min read

AD
By Amika Deshapriya
System Design 101 • Part 1
System Design 101 - Part 1: A Beginner’s Guide to Building Scalable Systems

System Design 101: Why It Matters


The Pizza Shop Problem

Imagine you open a pizza shop.

On day one, you get 10 customers. You're the cook, the cashier, and the delivery person. Everything works fine.

Six months later, you're getting 100 customers a day. Now you're overwhelmed. Orders are getting mixed up. Pizzas are burning. Customers are waiting an hour for delivery.

You have two choices:

  • Work harder (stay open 20 hours, run faster, stress more)
  • Work smarter (hire staff, get more ovens, organize the kitchen better)
Option 2 is system design.

What Is System Design, Really?

System design is figuring out how to build software that works well for 10 users, 1,000 users, or 1 million users.

It's not about writing better code. It's about organizing your entire system—servers, databases, storage—so it can handle growth without breaking.

Think of it like city planning. A village doesn't need traffic lights. But a city with a million people? Without planning, you get chaos.


Why Should You Care?

1. Your App Will Grow (Hopefully)

Your side project might get featured on Product Hunt tomorrow. Your startup might go viral. Your company might 10x in users.

If your system isn't ready, here's what happens:

Bad design:

  • App crashes during peak hours
  • Users see error pages
  • You lose customers to competitors
  • Emergency fixes at 3 AM
Good design:
  • App stays fast under load
  • Users have smooth experience
  • You sleep well at night
  • Growth is exciting, not terrifying

2. Career Growth

Mid-level and senior developer interviews include system design rounds.

Companies like Google, Amazon, Meta, and Netflix don't just want coders. They want people who can design systems that scale.

What they ask:

  • "Design Instagram"
  • "Design a URL shortener"
  • "How would you handle 1 million concurrent users?"
Without system design knowledge, you hit a career ceiling.

3. Save Money

Poor design = wasted money.

Real example: A startup once spent $50,000/month on servers because they didn't use caching. After adding Redis (a caching tool), their bill dropped to $8,000/month.

Same users. Same features. Better design.


When Do You Actually Need It?

You DON'T need complex system design for:

  • Personal portfolio websites
  • Small internal tools (under 50 users)
  • MVPs testing an idea
  • Prototypes or demos
Start simple. A single server is fine.

You DO need system design thinking when:

  • Expecting 1,000+ daily users
  • Handling payments or sensitive data
  • Downtime = lost revenue
  • Multiple developers working together
  • Users in different countries

Real Story: Instagram's First Week

Day 1 (October 2010):

  • Instagram launched on a single server
  • They hoped for 1,000 users in the first month
Day 1 (Reality):
  • 25,000 users signed up
  • Server crashed repeatedly
  • Co-founders couldn't sleep
Week 2:
  • Migrated to AWS (cloud servers)
  • Added load balancer (distributes traffic)
  • Split database from app server
  • Added caching
The lesson? They didn't over-engineer on day 1. But they knew system design principles, so when growth hit, they could scale fast.

By 2012, Instagram had 30 million users and got acquired by Facebook for $1 billion.


The Four Pillars (Simple Version)

1. Scalability

The question: Can your system handle more users?

The pizza shop version: Can you serve 100 customers if you currently serve 10?

How: Add more servers, optimize databases, use caching.

2. Reliability

The question: Does your system keep working when things break?

The pizza shop version: If one oven breaks, can you still make pizzas?

How: Backup servers, multiple databases, automatic failovers.

3. Maintainability

The question: Can your team update it without breaking everything?

The pizza shop version: Can a new cook understand your kitchen without you explaining everything?

How: Clean code, good documentation, monitoring tools.

4. Performance

The question: Is it fast enough?

The pizza shop version: Do customers wait 5 minutes or 50 minutes for their order?

How: Caching, efficient databases, content delivery networks (CDNs).


Common Myths (Busted)

Myth 1: "I need microservices from day one"

Truth: Instagram started as one simple application (monolith). Twitter did too. Shopify still runs mostly as a monolith.

Start simple. Split things up only when you have a real reason.

Myth 2: "System design is only for backend engineers"

Truth: Frontend engineers make design decisions constantly:

  • Where to cache API responses
  • How to handle slow networks
  • How to load images efficiently
  • How to manage application state
Myth 3: "More servers = better performance"

Truth: If your database query takes 5 seconds, adding 10 more servers won't help. Fix the slow query first.

Always find the bottleneck before throwing money at it.


What You'll Learn This Week

This is Part 1 of a 5-part series. Here's what's coming:

Part 2: Vertical vs Horizontal Scaling (adding bigger servers vs more servers)

Part 3: Load Balancing (distributing traffic smartly)

Part 4: Caching (making everything faster)

Part 5: Database Fundamentals (storing and retrieving data efficiently)

By Friday, you'll understand how apps like Netflix, Discord, and Shopify handle millions of users.


Your Challenge

Think about an app you use every day (Reddit, Spotify, notion, whatever).

Ask yourself:

  • How many users does it probably have?
  • What happens when everyone uses it at the same time?
  • How do they keep it fast?
You'll start noticing system design everywhere.


Key Takeaways

  • System design = building software that can handle growth
  • You don't need it on day 1, but you need to understand it early
  • Instagram, Twitter, Shopify all started simple and scaled up
  • Good design saves money, time, and sanity
  • It's essential for career growth in tech

Next up: Part 2: Vertical vs Horizontal Scaling →

Learn when to upgrade your server vs when to add more servers—and why it matters.


Written by Amika Deshapriya Making system design simple, one story at a time.

Connect: LinkedIn | GitHub | Newsletter