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