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.
- Design a URL shortener and explain key generation, redirects, storage, caching, and abuse controls.
- Design a chat or messaging system with delivery state, unread counts, ordering, and offline clients.
- Design a news feed with fan-out choices, ranking, pagination, and hot-key protection.
- Design a video streaming platform with upload, transcoding, CDN delivery, and playback analytics.
- Design a notification service that supports retries, preferences, templates, and provider failures.
- 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.