Free course · 14 lessons · Intermediate

System Design Interviews, Step by Step

A repeatable method for system design interviews, then worked walkthroughs of the questions asked most: URL shortener, rate limiter, chat, news feed, notifications, file storage, autocomplete, ride-hailing, payments and video streaming. Each walkthrough runs the interview in order, from requirements and estimates to deep dives and trade-offs, with a small runnable model of the key idea.

Start the course

1. The Method: How to Run a System Design Interview

A step-by-step framework for the 45 minutes, quick estimation you can do on a whiteboard, and the dozen building blocks every design is made of.

  1. How to Run a System Design Interview — A six-step framework with a time budget: clarify, estimate, define the API and data, sketch the high-level design, go deep on two parts, and wrap up with trade-offs. Interviewers grade the process as much as the boxes.
  2. Back-of-the-Envelope Estimation — Turn 'a lot of users' into requests per second, storage per year and bandwidth, with a handful of numbers worth memorising. Two minutes of arithmetic tells you whether one database is enough.
  3. The Building Blocks Every Design Uses — Load balancers, caches, SQL and NoSQL databases, replication, sharding, queues, object storage and CDNs: what each one is for, when to add it, and what it costs. Most designs are these blocks arranged differently.

2. Classic Walkthroughs, Part 1

Five of the most-asked questions, each run as a full interview: URL shortener, rate limiter, chat, news feed and a notification system.

  1. Design a URL Shortener — The classic warm-up: turn long links into short codes and redirect fast. Covers code generation (counter + base62 vs hashing), a read-heavy cache design, and analytics without slowing redirects.
  2. Design a Rate Limiter — Limit each client to N requests per window across many servers. Compare fixed window, sliding window and token bucket, then make it distributed with Redis and decide what happens when the limiter itself fails.
  3. Design a Chat App — One-to-one and group messaging with online presence and delivery receipts. The key ideas: persistent WebSocket connections, a per-conversation message order, and offline delivery through push notifications.
  4. Design a News Feed — Show each user recent posts from the people they follow. The core decision is fan-out on write (precompute feeds) vs fan-out on read (build at request time), and the hybrid that handles celebrities.
  5. Design a Notification System — Send push, email and SMS notifications reliably at scale: accept requests fast, queue per channel, respect user preferences and rate limits, retry with backoff, and never send the same notification twice.

3. Classic Walkthroughs, Part 2

Five more interview favourites: cloud file storage with sync, search autocomplete, a ride-hailing app, a payment system, and video streaming. Finish with a capstone you design yourself.

  1. Design Cloud File Storage and Sync — Store files in the cloud and keep them in sync across a user's devices. Split files into chunks, store each unique chunk once, upload only what changed, and resolve edits made on two devices at once.
  2. Design Search Autocomplete — Suggest the top completions as a user types, in under 100 ms. Precompute the top suggestions for every prefix from query logs, serve them from memory, and rebuild periodically.
  3. Design a Ride-Hailing App — Match riders with nearby drivers in real time. Drivers send locations every few seconds, a geospatial index finds the closest available ones, and matching must never give one driver two rides.
  4. Design a Payment System — Take money from customers reliably: never charge twice, never lose a payment, and keep books that always balance. Idempotency keys, a payment state machine, a double-entry ledger and daily reconciliation.
  5. Design a Video Streaming Platform — Upload once, watch anywhere: transcode each video into several qualities split into short segments, serve them from a CDN, and let the player switch quality as the network changes.
  6. Capstone: Design a Ticket Booking System — Your turn: design concert ticket sales where a million fans arrive at once for 50,000 seats. Work through the six steps yourself, then compare with the model answer and rubric for each part.

Was this page helpful?