System design interview questions - 20 with answer outlines

By interview type - Guide

Mid-level and senior engineers preparing for architecture rounds where depth should match the team you applied to - not generic FAANG templates. Samples below are illustrative. Your kit is traced to the posting you paste.

Overview

  1. System design interviews reward candidates who clarify goals before drawing boxes.

    The bar still depends on the job description: a consumer feed role cares about fan-out and caching - a fintech posting cares about correctness, idempotency, and auditability - an internal tools role may care more about simplicity and operability than global scale theater.

  2. Read the JD for scale clues (QPS, multi-region, realtime), data sensitivity, on-call expectations, and whether you'll own APIs used by other teams.

    Those clues tell you which failure modes to rehearse.

  3. This guide is a design-prep companion to your posting - not a replacement for drawing systems on a whiteboard with a timer.

Clarify before you architect

  1. In the first two minutes, lock: users, read/write ratio, consistency needs, latency target, data size, and what "good enough" means for v1.

    Write the non-goals. Interviewers often grade the questions you ask as highly as the diagram.

  2. If the JD is compliance-heavy, ask about audit logs and retention early.

    If it is marketplace/realtime, ask about freshness and spike traffic early.

Junior vs senior design bar (same prompt)

  1. A solid mid-level answer: clear API, data model, basic scaling (cache, queue), and one bottleneck called out.

  2. A senior answer adds: failure modes, backpressure, migration/rollback, ownership boundaries, cost, and what you'd monitor in week one.

    Match the seniority language in the posting - don't perform staff-level complexity for a role that wants pragmatic builders.

System design interview questions with answer outlines

  1. Twenty design prompts with what to clarify, a v1 shape, and a follow-up.

    Scope depth to the posting's queues, caches, SLAs, and domain - not a generic FAANG template. Time-box: clarify, one diagram, two deep dives, risks.

What interviewers usually test

  1. Requirements clarification and scope control

  2. High-level architecture and data flow

  3. Bottlenecks, failure modes, and scaling paths

  4. Trade-off communication without over-engineering

Signals to read in your job description

  1. Distributed systems, queues, caches in requirements

  2. Scale numbers or SLA mentions

  3. Data storage technologies listed

  4. Security and multi-tenant hints

How rounds differ

  1. Prompt + requirements

    Ask clarifying questions - restate goals and constraints - propose a v1 scope.

  2. High-level design

    Core components and data flow. Keep the diagram readable.

  3. Deep dives

    The 1-2 risks that match the JD (consistency, hot keys, fan-out, multi-tenant isolation, PII).

  4. Operate & evolve

    Metrics, alerts, rollout, and what you'd change at 10x traffic.

Common prep mistakes

  1. Jumping to microservices before requirements are clear

  2. Ignoring the consistency and compliance cues in the JD

  3. Drawing every buzzword (Kafka, CQRS, mesh) without a reason

  4. No discussion of failure, retries, or observability

  5. Over-designing for a role that wants a simple, operable system

Last-hour prep playbook

  1. JD risk list

    From the posting, list the top risks: scale, correctness, latency, multi-tenant, privacy.

  2. Two timed drills

    Run two 30-minute designs in their domain - force a recommendation and a kill list.

  3. One deep dive card

    Cache invalidation, exactly-once illusion, or hotspot handling - pick what the JD implies.

  4. Operate the design

    Name three metrics and one rollback plan for your diagram.

  5. Last-hour pass

    Requirements checklist + your risk list - no new patterns.

20 interview questions with answer outlines

Practice set for this path: question, round, short answer outline, and a follow-up. Your kit is generated from the posting you paste - not copied from this list.

  1. What do you clarify first in a system design interview, and why?

    Round: Phone / early round. Answer outline: Users, QPS, consistency, latency, cost, non-goals. Follow-up: What if the interviewer wants you to start drawing immediately?

  2. Design a URL shortener with analytics. Where do you start?

    Round: Technical / role-core. Answer outline: Write path, read path, ID generation, hot keys, analytics lag. Follow-up: How do you handle a celebrity URL?

  3. Design a news feed. What is v1 vs later?

    Round: Technical / role-core. Answer outline: Fan-out, ranking, cache, pagination, celebrity problem. Follow-up: Where does ranking live?

  4. Design file upload for images at scale.

    Round: Technical / role-core. Answer outline: Direct-to-object-store, virus scan, thumbnails, CDN, retries. Follow-up: What if the client dies mid-upload?

  5. How would you design rate limiting for a public API?

    Round: Technical / role-core. Answer outline: Token bucket vs sliding window, where to store, fairness, 429 shape. Follow-up: Per user, IP, or API key?

  6. Design a chat system for a team product.

    Round: Technical / role-core. Answer outline: Channels, presence, delivery, ordering, search, retention. Follow-up: What is acceptable lag?

  7. Walk through designing a job queue that must not lose work.

    Round: Technical / role-core. Answer outline: At-least-once, idempotency, poison messages, visibility timeout. Follow-up: How do you prove no silent drop?

  8. Design search for a catalog of 10M documents.

    Round: Technical / role-core. Answer outline: Index, ranking, freshness, typos, multi-region. Follow-up: How stale can results be?

  9. How do you design multi-tenant isolation for a B2B SaaS?

    Round: Technical / role-core. Answer outline: Authn/z, data keys, noisy neighbor, backup. Follow-up: A tenancy bug you have seen.

  10. Design notifications: email, push, in-app.

    Round: Technical / role-core. Answer outline: Fan-out, preference center, retries, quiet hours. Follow-up: How do you prevent storms?

  11. Where would you put a cache, and how do you invalidate it?

    Round: Technical / role-core. Answer outline: Read-through, TTL, stampede, write path. Follow-up: A cache bug that served wrong data.

  12. Design a metrics pipeline for 100k events/sec.

    Round: Technical / role-core. Answer outline: Ingest, buffer, aggregation, query, cost. Follow-up: What do you drop first under load?

  13. How would you approach a payments ledger?

    Round: Technical / role-core. Answer outline: Idempotency, double-entry, reconciliation, audit. Follow-up: What is the recovery story?

  14. How do you time-box a 45-minute design interview?

    Round: Hiring manager / final. Answer outline: Clarify, 1 diagram, 2 deep dives, risks. Follow-up: What do you skip on purpose?

  15. Design session storage for a globally distributed app.

    Round: Technical / role-core. Answer outline: Sticky vs JWT vs server session, revocation, latency. Follow-up: How do you log someone out everywhere?

  16. How would you migrate a monolith read path to a new service?

    Round: Technical / role-core. Answer outline: Dual write, shadow reads, cutover, rollback. Follow-up: What is the abort metric?

  17. Talk through CAP in a real system you would actually ship.

    Round: Technical / role-core. Answer outline: Which partition, what users see, how you communicate. Follow-up: Where is eventual OK?

  18. The posting names queues, caches, and SLAs. How does that change your design drill?

    Round: Phone / early round. Answer outline: Map JD nouns to components you will draw. Follow-up: What would you not design because the JD never asks?

  19. Design abuse detection for sign-up.

    Round: Technical / role-core. Answer outline: Signals, latency, false positives, human review. Follow-up: How do you avoid locking real users?

  20. How do you communicate a design trade-off to a non-engineer interviewer?

    Round: Hiring manager / final. Answer outline: User impact, cost, risk, one diagram. Follow-up: An example that landed.

FAQ

  1. Do I need to memorize famous system designs?

    Know patterns, not scripts. Interviewers change constraints. Practice transferring patterns to the domain in the JD.

  2. How detailed should data models be?

    Enough to discuss access patterns and consistency. Avoid drowning in every column unless they pull you there.

  3. Short on time?

    One clarifying checklist, one timed drill in their domain, one failure-mode card.

  4. Guide vs kit?

    Guide = design interview craft. Kit = JD-traced questions/outlines for your round, including design-leaning prompts when relevant.

  5. Next?

    Paste the JD and choose a system-design (or technical) round when you generate the kit.

When you have a posting

  1. Get the right interview questions for the job you applied for by pasting the complete job description from the company's careers page - free preview, $2 for the full kit. No account needed. Paste the job description.