Free system design interview preparation

System design interview questions, explained with a roadmap.

Use this page to understand what interviewers are looking for, choose the right study order, and practice the questions that appear most often. The complete topic reader is free in the browser, with an optional PDF ebook for offline study.

What is tested?

Interviewers evaluate requirement clarification, capacity estimation, API and data modeling, architecture choices, bottleneck analysis, reliability, and how clearly you communicate trade-offs.

How to answer

Start broad, state assumptions, quantify scale, draw the request path, identify one bottleneck, and deepen only where the interviewer wants detail. A coherent simple design beats a catalog of technologies.

Common system design interview questions

Practice these prompts in increasing difficulty. For each one, explain requirements, traffic, storage, APIs, consistency, failure handling, and a path to scale.

  1. Design a URL shortener and explain key generation, redirects, storage, caching, and abuse controls.
  2. Design a chat or messaging system with delivery state, unread counts, ordering, and offline clients.
  3. Design a news feed with fan-out choices, ranking, pagination, and hot-key protection.
  4. Design a video streaming platform with upload, transcoding, CDN delivery, and playback analytics.
  5. Design a notification service that supports retries, preferences, templates, and provider failures.
  6. Design a rate limiter for a multi-tenant API and compare local, Redis, and distributed approaches.

System design roadmap for beginners

1. Learn the building blocks

Study networking, HTTP, DNS, load balancing, caching, SQL and NoSQL databases, indexes, replication, sharding, queues, object storage, and observability.

2. Learn the interview method

Practice clarifying functional and non-functional requirements, estimating requests per second and storage, defining APIs, sketching components, and discussing trade-offs.

3. Complete case studies

Design a URL shortener, chat app, feed, video service, ride-sharing system, and search service. Revisit each design after adding ten times the traffic and a regional outage.

4. Add AI system design

For RAG and AI applications, add ingestion, chunking, embeddings, hybrid retrieval, reranking, evaluation, prompt and model versioning, safety, token budgets, and human fallback to the architecture.

HLD vs LLD in interviews

High-level design (HLD) covers system boundaries, services, databases, APIs, messaging, scaling, availability, and disaster recovery. Low-level design (LLD) covers classes, interfaces, object responsibilities, SOLID principles, design patterns, and implementation details.

Many companies use both rounds. After this guide, practice the 37 JavaScript LLD problems, including parking lot, elevator, Splitwise, notification, and movie ticket booking systems.

Free resources