System design interview hub
System Design Interview Questions & Practice
Use this collection to practice system design as an interview conversation. Start from an open-ended problem, clarify requirements, define APIs and data, draw the architecture, then defend the design under scaling and failure follow-ups.
Problems to practice
- Design a URL Shortener: Practice the URL shortener system design interview: requirements, short-code generation, APIs, storage, caching, redirects, hotspots, analytics, and trade-offs.
- Design a Distributed Rate Limiter: Practice distributed rate limiter system design across algorithms, APIs, Redis-style shared state, atomicity, sharding, failure modes, and multi-region trade-offs.
- Design Google Drive or Cloud File Storage: Practice a Google Drive-like system design covering uploads, metadata, chunking, object storage, versioning, sharing, synchronization, consistency, and reliability.
- Design a Notification Service: Practice notification service system design across APIs, fan-out, queues, user preferences, retries, rate limits, providers, idempotency, tracking, and delivery guarantees.
- Design a Payment System: Practice payment system design across payment intents, idempotency, ledgers, provider integration, webhooks, retries, reconciliation, consistency, and failure handling.
- System Design Interview Practice with AI: Practice system design interviews with a live AI interviewer and architecture canvas. Rehearse requirements, APIs, data models, scaling, reliability, and trade-offs.
Use one repeatable interview framework
A consistent structure prevents you from jumping directly to technologies. Clarify functional and non-functional requirements, estimate scale, define APIs and data, draw the high-level design, then spend the rest of the interview on bottlenecks, failure modes, and trade-offs.
- Requirements and scope
- Capacity and traffic assumptions
- APIs and data model
- Architecture, failures, and trade-offs
Practice problems that expose different design skills
Different prompts reveal different strengths. URL shortening emphasizes read-heavy access and ID generation; rate limiting emphasizes distributed coordination; file storage emphasizes metadata and synchronization; notifications emphasize fan-out and retries; payments emphasize correctness and idempotency.
Prepare for the follow-ups
The real signal in a system design interview often appears after the initial diagram. Practice responding when the interviewer changes traffic, consistency, latency, regional, security, or reliability requirements.
- Hot keys and hotspots
- Consistency and replication
- Retries and idempotency
- Multi-region and disaster recovery
Common questions
How should I structure a system design interview?
A practical flow is requirements, rough scale estimates, APIs, data model, high-level architecture, key bottlenecks, scaling, reliability, security and observability, followed by explicit trade-offs.
How long should I spend on the initial architecture?
Avoid spending the entire interview drawing the first diagram. Build a coherent baseline quickly so there is time for the deeper follow-up discussion where many interview signals appear.