Trusted by 200,000+ engineers preparing for FAANG and top-tier interviews

The complete system design interview guide

A 4-step framework that holds up under pressure, the 11 building blocks of distributed systems, walkthroughs of 16 classic interview problems, and an 8-week study plan. All free.

0K+
Learners
4.7
Rating
0
Lessons
16
Problems

System design interviews are not about memorizing answers. They are about grokking the fundamentals deeply enough to reason through a real engineering problem out loud, in real time, under a clock. This guide gives you the framework, the building blocks, and the worked examples to do that confidently.

The page below covers everything in the right order. You will get a 4-step framework that works for any system design question, fluency with the 11 distributed systems concepts that every interviewer expects you to know, walkthroughs of the 16 classic design problems (URL shortener, Twitter feed, Uber, Dropbox, and the rest), an 8-week study plan you can follow, and a section on what changed in 2026 with the rise of AI-native systems.

The full handbook, linked throughout, contains 66 lessons across all of these topics. No signup, no paywall. If you only have an hour, read this page top to bottom. If you have eight weeks, follow the study plan. Either way, you will know the patterns by the time you walk into the room.

Four steps that work for any system design question

Most candidates fail system design interviews not because they lack knowledge, but because they have no structure to apply it. The framework below is what senior engineers use. Master these four steps and you will have a credible answer to any question, even ones you have never seen before.

1
Minutes 0 to 7

Clarify the scope and requirements

The biggest mistake candidates make is starting to design before they understand what they are designing. The first five to seven minutes belong entirely to questions, not architecture. You need to leave this step with three things on the board: functional requirements (what the system actually does), non-functional requirements (latency targets, availability, consistency expectations), and rough scale estimates (daily active users, queries per second, storage size, bandwidth).

Ask out loud. “Are we designing the full Twitter or just the timeline service?” “Read-heavy or write-heavy?” “Is eventual consistency acceptable for the feed?” “What latency budget should I optimize for?” The interviewer wants to see you scope a vague problem into a concrete one. They also want to see you do back-of-envelope math: if there are 500 million daily users posting twice on average, that is one billion writes per day, which is roughly 12,000 writes per second average and probably 3 to 5 times that at peak. Numbers anchor every decision that follows.

The trap

Drawing boxes before clarifying. If you start sketching servers and databases without naming the dominant scale and read-write ratio, every decision you make later will be unanchored. The interviewer is testing whether you treat ambiguity as something to resolve or something to ignore.

2
Minutes 7 to 17

Sketch the high-level design

Now you draw, but with discipline. Work top-down: the user, the entry point (load balancer or API gateway), the application services, the data stores, and any asynchronous paths (queues, workers, streams). Identify the core entities and define a minimal API for each. A good high-level design names roughly 6 to 10 components, not 30. Excess components signal panic, not thoroughness.

Talk through the data flow for the most important user action as you draw. “User posts a tweet. Request hits the load balancer, routes to the write service. Write service persists to the primary database, publishes an event to the fan-out queue. The fan-out worker materializes the post into followers’ feeds in the cache.” This narrative is more important than the diagram itself. It shows you understand how the pieces actually interact, not just that they exist.

The trap

Drawing without committing to tradeoffs. A diagram with a database labeled “DB” is not a design. Naming the actual choice (Cassandra, DynamoDB, Postgres with sharding, etc.) and the one-sentence reason for it transforms a sketch into a decision. The interviewer can argue with a decision. They cannot argue with a vague box.

3
Minutes 17 to 35

Deep dive on the hard parts

This is where the interview is actually scored. The interviewer will pick one or two components and push you on the details. Be ready for the obvious ones: the data model for the hottest table, the caching strategy, the partitioning scheme, the consistency story, the failure modes. For a feed system the deep dive is usually push versus pull versus hybrid fan-out. For a chat system it is message ordering and delivery guarantees. For a ridesharing system it is geospatial indexing and dispatch.

The strong move here is to volunteer the hardest tradeoff before the interviewer asks. “The interesting decision here is whether we materialize feeds on write or on read. For users with few followers, write-time fan-out is cheap. For celebrities with 100 million followers, write-time fan-out is catastrophic. So we do hybrid: regular users get pushed, celebrities get pulled at read time, and the application merges the two streams.” That paragraph in the deep dive does more for your interview score than 20 minutes of generic architecture.

The trap

Staying shallow on everything. Candidates who say a little about every component and a lot about nothing end up scoring as “broad but not deep.” Pick the hard parts before the interviewer picks them for you, and go deep there. Surface-level coverage of the easy parts is fine.

4
Minutes 35 to 45

Evaluate tradeoffs and scale

Close with what breaks. Name the bottleneck at 10x scale, the operational pain point, and the next architectural change you would make if traffic doubled. “At current scale we are fine. At 10x, the write fan-out queue becomes the bottleneck and we move to a streaming architecture with per-partition consumers. Beyond that, the geo-distribution story needs work.” A senior interviewer is listening specifically for this kind of forward thinking.

Also volunteer what you did not optimize and why. “I chose Cassandra here because writes dominate and we can tolerate eventual consistency. If the requirement had been strong consistency on reads, I would have used a different store and accepted lower write throughput.” Stating the road not taken is what separates engineers who understand tradeoffs from engineers who memorize patterns.

The trap

Ending with “and that’s the design.” A flat conclusion signals you treat the system as static. Real systems evolve under load. Showing that you know what changes first, and at what scale, is the senior signal that closes the interview strongly.

The 11 distributed systems concepts every interviewer expects you to know

These are the primitives that show up in nearly every system design interview: the system design fundamentals every senior engineer is expected to know. You will not be asked to recite definitions, but you will be expected to know when each one applies, what tradeoffs come with using it, and how it interacts with the rest of the stack. Each card below is a starting summary. Tap through for the full deep dive in the handbook.

01

Networking and Communication

How services talk to each other. HTTP, gRPC, WebSockets, long-polling, server-sent events, plus the DNS, routing, and load-distribution layers underneath them. Pick the wrong protocol for the use case and you pay for it in latency, cost, or both.

Read the deep dive
02

Storage and Databases

SQL versus NoSQL, key-value stores, document stores, wide-column stores, search engines, time-series databases. Plus partitioning, indexing, and the data modeling decisions that determine whether your system scales gracefully or hits a wall.

Read the deep dive
03

Caching

Client-side caches, CDN caches, application-layer caches (Redis, Memcached), database query caches, and the invalidation strategies that prevent stale data. Caching is the single highest-leverage tool in system design, and it is also where most candidates struggle on the deep dive.

Read the deep dive
04

Load Balancing

Distributing traffic across servers without creating bottlenecks. L4 versus L7 balancers, round-robin versus least-connections versus consistent hashing, sticky sessions and when they hurt you. Plus the health-check and failover mechanics that determine availability under partial failure.

Read the deep dive
05

Content Delivery Networks (CDN)

Putting content close to users globally. Push versus pull CDNs, edge caching strategies, cache invalidation across geographies, dynamic content acceleration. Critical for any system with global users or large static assets like video and images.

Read the deep dive
06

Proxies and Reverse Proxies

Forward proxies, reverse proxies, API gateways, and service meshes. Where they sit, what they handle (TLS termination, auth, rate limiting, observability), and why nearly every production system has at least one of them in front of application servers.

Read the deep dive
07

Message Queues and Async Processing

Kafka, RabbitMQ, SQS, Pub/Sub. Decoupling producers from consumers, smoothing traffic spikes, building reliable async pipelines. Includes the delivery guarantees (at-most-once, at-least-once, exactly-once) and the ordering tradeoffs that come with each.

Read the deep dive
08

Scalability

Vertical scaling versus horizontal scaling, stateless services, shared-nothing architectures, and the partitioning patterns (hash, range, geographic) that let a system grow by adding machines instead of rebuilding. Where scaling works smoothly and where it forces architectural changes.

Read the deep dive
09

Availability and Reliability

Replication strategies (leader-follower, multi-leader, leaderless), heartbeats, failure detection, automatic failover, and the redundancy patterns that turn a single point of failure into a recoverable component. Plus the math on what “five nines” actually costs.

Read the deep dive
10

Consistency and Consensus

The CAP and PACELC theorems, the spectrum from strong consistency to eventual consistency, quorum reads and writes, leader election, Paxos and Raft at a level you can talk through. When to use which consistency model and what each one costs in latency, throughput, and complexity.

Read the deep dive
11

System Architecture Patterns

Monolithic versus microservices, event-driven architectures, CQRS, hexagonal architecture, layered architectures, plus the API design patterns (REST, GraphQL, RPC) on top. Choosing the right structural pattern is the first design decision and the hardest one to undo later.

Read the deep dive

The 16 classic design problems, with walkthroughs

There are not 100 system design questions. There are roughly 16 patterns, and almost every question you will encounter is a variant of one of them. Twitter, Instagram, and Threads are all the social feed pattern. Uber, Lyft, and DoorDash are all geospatial dispatch. Once you recognize the pattern in the first 60 seconds, the rest of the interview is just adapting a known solution to specific constraints.

Foundational

Design TinyURL

The canonical first question. Key tradeoff: how to generate short unique IDs at scale (encoding versus counter versus hash) and how to handle the read-heavy lookup pattern.

Walkthrough
Foundational

Design Pastebin

URL shortener plus blob storage. Key tradeoff: where to store the paste content (object store versus database) and how to handle expiration and access control.

Walkthrough
Foundational

Design a Rate Limiter

A favorite warm-up question. Key tradeoff: token bucket versus leaky bucket versus sliding window, plus where the rate-limiting state lives (in-process versus distributed cache).

Walkthrough
Foundational

Design a Notification System

Multi-channel delivery (push, email, SMS) at scale. Key tradeoff: fanout pipeline architecture, priority handling, and dedup across channels for the same logical event.

Walkthrough
Intermediate

Design Typeahead Suggestions

Sub-100ms autocomplete at scale. Key tradeoff: trie versus precomputed top-k versus inverted index, plus how to update the suggestion corpus in near-real time.

Walkthrough
Intermediate

Design a Web Crawler

Politeness, dedup, and scale. Key tradeoff: URL frontier design, per-domain rate limiting, content-hash dedup, and how to detect spider traps without slowing the crawl.

Walkthrough
Intermediate

Design Twitter / News Feed

The classic feed problem. Key tradeoff: push fan-out at write time versus pull at read time versus hybrid for celebrity accounts. The single most asked question in the entire interview category.

Walkthrough
Intermediate

Design Instagram

Feed plus media handling. Key tradeoff: the feed pattern from above, plus image processing pipeline, thumbnail generation, and CDN strategy for media at global scale.

Walkthrough
Intermediate

Design a Distributed Cache

Build Redis from scratch. Key tradeoff: consistent hashing for shard placement, replication for availability, eviction policy choice, and how to handle hot keys without rebalancing the cluster.

Walkthrough
Advanced

Design WhatsApp / Messenger

Real-time messaging at billion-user scale. Key tradeoff: connection management (persistent versus polling), delivery guarantees, message ordering per conversation, and offline message storage.

Walkthrough
Advanced

Design YouTube / Netflix

Video at planetary scale. Key tradeoff: adaptive bitrate encoding pipeline, CDN strategy for hot versus cold content, recommendation system at the edges, and ingest workflow for new uploads.

Walkthrough
Advanced

Design Dropbox / Google Drive

File sync, sharing, and versioning. Key tradeoff: chunking strategy, delta sync versus full upload, conflict resolution across devices, and the metadata-versus-content storage split.

Walkthrough
Advanced

Design Uber / Lyft

Geospatial dispatch under real-time constraints. Key tradeoff: geohashing versus quadtree versus S2 cells for location indexing, driver-rider matching algorithm, and surge pricing as a separate service.

Walkthrough
Advanced

Design Ticketmaster / Booking.com

Inventory under contention. Key tradeoff: seat or room reservation locking strategy, handling the thundering herd on popular events, and the consistency requirements that rule out simple caching.

Walkthrough
Advanced

Design DoorDash / Uber Eats

Ridesharing meets inventory. Key tradeoff: three-sided matching (customer, restaurant, driver), real-time order tracking, and the asynchronous lifecycle of an order across multiple actors.

Walkthrough
Advanced

Design a Search Engine

Indexing the web. Key tradeoff: inverted index construction at scale, ranking signal pipeline, query-time fanout across shards, and the freshness-versus-comprehensiveness tradeoff that defines every search system.

Walkthrough

What changed: AI-era system design

The framework above still applies to every system you will be asked to design. But interviewers in 2026 increasingly weave AI-native concerns into the conversation. About one in three system design questions at top companies now touches generative AI, real-time inference, or LLM-backed product features. The four cards below cover what has actually changed and where the new patterns live in the handbook.

An 8-week plan to get interview-ready

Eight focused weeks is enough for most mid-level engineers. The schedule below assumes about 6 to 8 hours of study per week. Less experienced engineers may need ten weeks. Each week ends with a recommendation to practice out loud, because reading without speaking is the most common reason candidates feel ready and then freeze in the actual interview.

Week01

Framework and mental models

Internalize the 4-step framework. Read the introductory sections of the handbook and practice walking through one easy problem (URL shortener) end to end, out loud, using only the framework. The goal this week is fluency with the structure, not depth on any specific topic.

Week02

Building blocks part one: communication and storage

Networking, storage and databases, and caching. These three primitives appear in nearly every system. Focus on knowing when to choose what (SQL versus NoSQL, write-through versus write-behind cache, sync versus async communication) rather than memorizing definitions.

Week03

Building blocks part two: traffic and async

Load balancing, CDNs, proxies, and message queues. The infrastructure layer that sits between users and your application logic. Most candidates underweight async processing. Spend extra time on message queues and the delivery-guarantee tradeoffs.

Week04

System properties: scale, availability, consistency

The “-ilities” that interviewers grade you on. Scalability, availability, and consistency, with the CAP and PACELC theorems and a working understanding of leader election. This is where the deep-dive questions in step three of the framework usually go.

Week05

Easy design problems

URL shortener, pastebin, rate limiter, and notification system. Work each one out loud with a 45-minute timer, then read the handbook walkthrough, then redo it. The redo is where the learning happens. By the end of this week you should have four problems you can comfortably walk through in your sleep.

Week06

Intermediate design problems

Twitter feed, Instagram, typeahead, and web crawler. The fanout pattern alone will show up in roughly one in four interviews you take, so master it this week. Start practicing with a partner if you can. Mock interviews now beat solo practice four-to-one in returns.

Week07

Advanced design problems

WhatsApp, YouTube, Dropbox, and Uber. The hardest classics. These are the questions that separate L5 from L6 candidates because the right answer requires committing to several non-obvious tradeoffs in a row. Plan to repeat one problem each day rather than skim all four once.

Week08

AI-era patterns and mock interview blitz

Read the AI/ML and generative AI sections of the handbook. Then do at least three mock interviews this week with a partner, rotating who interviews whom. Pick problems you have not seen so you practice handling unfamiliar setups. The week before the interview is for pressure-testing, not for new material.

Eight mistakes that fail system design interviews

These are the patterns interviewers see daily. Recognize them in your own practice and the bar to “strong hire” moves dramatically closer. Every pitfall below comes with the fix and a reference to the handbook section that goes deeper.

1

Jumping to solutions before clarifying scope

If you are drawing boxes in minute two, the interviewer has already noted it. The first seven minutes belong entirely to questions. No exceptions, even on problems you have seen before.

2

Designing without naming the dominant tradeoff

Every system has one or two decisions that drive everything else. Read-heavy versus write-heavy. Latency versus consistency. Uniform load versus celebrity hot keys. Name yours in the first ten minutes and the rest of the design has a backbone.

3

Ignoring the data model

Candidates spend 40 minutes on the architecture diagram and three minutes on the actual data. The data model determines what the system can and cannot do. Sketch the hottest table and its access patterns explicitly.

4

Forgetting non-functional requirements

“Highly available, low latency, scalable” is not a requirement. It is filler. Specify the actual numbers. 99.9 percent availability is a different system from 99.99 percent. 100ms p95 latency is a different system from 1 second.

5

Missing celebrity and hot-key cases

Every feed, every chat, every messaging system has the same edge case: a small number of entities with massive load. Push fan-out works for everyone except the celebrity. Address this explicitly or the interviewer will, and the points go to whoever raised it first.

6

Over-engineering for scale that will not happen

A system for a million users does not need the architecture of a system for a billion. Over-engineering signals lack of judgment, which interviewers penalize. State the scale you are designing for and stop there. Volunteer where you would add complexity if traffic grew.

7

Skipping the back-of-envelope numbers

Storage estimates, queries per second, bandwidth, request size. These numbers anchor every database, cache, and bandwidth decision. Candidates who skip the math end up making choices that contradict the numbers without realizing it.

8

Treating async paths as an afterthought

Real systems use queues, workers, and event streams for everything that does not need to happen in the request path. Candidates who design everything synchronous build systems that cannot scale. Identify what can be async and route it there explicitly.

What top companies actually ask

The framework and building blocks are universal. The favorite questions vary by company because each one’s products and infrastructure shape what their interviewers find natural to test. Below is what to expect at the six companies that hire the most system design candidates.

Google
Search, indexing, large-scale data

Google interviews lean on questions where the underlying problem is search or indexing. Design a search engine, design a web crawler, and design typeahead are perennials. Expect deep dives on data structures, partitioning, and the ranking pipeline.

Meta
Social graph, feeds, messaging

Meta interviewers favor problems where the answer hinges on the fanout pattern or the social graph. Design news feed, design Messenger, and design Instagram dominate. Hot-key handling for celebrity accounts comes up in nearly every answer.

Amazon
Availability, ops, scale

Amazon prizes availability, operational thinking, and cost. Common questions include design a notification system, and design a rate limiter, and “design Amazon” itself. Expect the interviewer to push on what happens when things fail.

Netflix
Streaming, CDN, recommendations

Streaming and content delivery dominate. Design Netflix is asked verbatim with surprising frequency. The recommendation system question often appears as a follow-up. Strong CDN and adaptive bitrate knowledge is the table stakes.

Microsoft
Enterprise, collaboration, distributed systems

Microsoft varies by org but commonly asks design OneDrive/Dropbox, design Teams (chat plus video), and other collaboration systems. Distributed consensus and conflict resolution come up frequently in the deep dive.

Apple
Privacy, on-device, services

Apple’s bar weights privacy, on-device tradeoffs, and the boundary between client and server processing. Expect questions about iMessage, iCloud, or Apple Music. The “what runs on device versus what hits the server” decision is asked explicitly.

Prefer a guided video course?

The handbook above is everything you need to prepare. If you want a guided video format with worked examples, hiring-manager-built lessons, and a mock interview review feature, the original Grokking the System Design Interview is the natural complement.

Explore the Course

What learners say

A small selection from the engineers who have worked through Grokking the System Design Interview and the accompanying material on this site.

Just completed the "Grokking the System Design Interview". It's amazing and super informative. Have come across very few courses that are as good as this!

A
Arijeet
Software Engineer

Just wanted to say thanks for your Grokking the System Design Interview resource - it helped me immensely when I was interviewing from Tableau (very little system design exp) and helped me land 18 FAANG+ jobs!

S
Steven Zhang
Software Engineer

I've completed my first pass of "Grokking the System Design Interview" and I can say this was an excellent use of money and time. I've grown as a developer and now know the secrets of how to build these really giant internet systems.

E
Eric
Software Engineer

Hey, I wasn't looking for interview materials but in general I wanted to learn about system design, and I bumped into 'Grokking the System Design Interview' on designgurus.io - it also walks you through popular apps like Instagram, Twitter, etc.

V
Vivien Ruska
Software Engineer

The famous "Grokking the System Design Interview course" on designgurus.io is amazing. I used this for my MSFT interviews and I was told I nailed it.

B
Brandon Lyons
Software Engineer

My newest course recommendation for all of you is to check out Grokking the System Design Interview on designgurus.io. I'm working through it this month, and I'd highly recommend it.

N
Nathan Thomas
Software Engineer

The courses which have "grokking" before them, are exceptionally well put together! These courses magically condense 3 years of CS in short bite-size courses and lectures. The Grokking courses are godsent, to be honest.

M
MO JAFRI
Software Engineer

My offer from the top tech company would not have been possible without this course. Many thanks!!

A
ABHISHEK GUPTA
Software Engineer

Thanks for a great resource! You guys are a lifesaver. I struggled a lot in design interviews, and this course gave me an organized process to handle a design problem. Please keep adding more questions.

K
KAUSHIK JONNADULA
Software Engineer

Whoever put this together, you folks are life savers. Thank you :)

A
AHMET HANIF
Software Engineer

Frequently asked questions

What is a system design interview?

A system design interview is a common part of the technical hiring process at top tech companies like FAANG. It evaluates your ability to design scalable, efficient, and robust systems such as web apps, APIs, or distributed services. Candidates are expected to demonstrate their understanding of architecture, databases, caching, load balancing, and trade-offs.

How do I prepare for a system design interview?

To prepare for a system design interview, study fundamental design patterns, scalability principles, and real-world systems. Use structured frameworks to approach problems, and practice designing systems like URL shorteners, social media feeds, or file storage. Enrolling in a focused course like "Grokking the System Design Interview" can provide real questions, expert guidance, and a step-by-step approach.

What is the Grokking the System Design Interview course?

Grokking the System Design Interview is a comprehensive online course created by FAANG hiring managers. It teaches you how to approach system design problems with reusable patterns, real-world examples, and expert-reviewed solutions. It's one of the most popular resources for mastering the system design interview.

Who should take the system design interview course?

The course is ideal for software engineers, backend developers, SDE-II/SDE-III candidates, and anyone preparing for technical interviews at companies like Google, Amazon, Meta, or Microsoft. It's especially useful for those with 2+ years of experience aiming to level up.

Does the course cover microservices and cloud architecture?

Yes, the course includes lessons on Microservices Design Patterns, Cloud Design Patterns, and trade-offs in distributed systems. It covers modern architectures used in real-world applications.

Is this course suitable for beginners in system design?

Absolutely. The course starts with basic design principles and gradually builds up to advanced topics. It's structured to guide both beginners and experienced engineers step-by-step through system design interviews.

How long does it take to complete the course?

Most learners complete the course in 3 to 6 weeks, depending on their pace and prior experience. It includes over 25+ in-depth system design problems with detailed walkthroughs.

Is Grokking the System Design Interview worth it?

Yes. It's widely recommended by engineers who've received offers from FAANG and other top-tier companies. The structured approach, real-world examples, and depth of content make it a top-rated resource for interview preparation.

What is the best way to practice system design questions?

Practice by walking through real interview scenarios. Use a whiteboard or notepad to structure your thoughts, outline components, and justify trade-offs. Courses like "Grokking the System Design Interview" offer curated problems and frameworks to simulate real interview conditions.

Do system design interviews require coding?

No, most system design interviews focus on architecture, scalability, and trade-offs rather than actual code. However, you should be able to discuss APIs, data models, and flow diagrams clearly.

What makes a good system design interview answer?

A good answer covers: Requirement clarification, High-level architecture, Component breakdown, Scalability and fault tolerance, and Trade-offs and justifications. The ability to communicate clearly and think aloud is crucial.

Can I access the course materials anytime?

Yes, once you enroll, you get lifetime access to all course materials and updates. You can learn at your own pace and revisit topics anytime.

Is there any refund policy for the course?

Please refer to the website's purchase or refund policy section. Generally, most premium courses offer refunds within a certain period if you're not satisfied.

Will this course help me crack interviews at FAANG companies?

Yes. Many candidates have successfully landed offers at companies like Amazon, Google, Facebook, and Microsoft after taking the course. The problems and patterns are aligned with the expectations of top-tier tech interviews.