Constraints → trade-offs → design

System Design

Practice the thinking, not the template. Start with requirements and constraints, then iterate.

Prompts

Run these drills weekly.

Even 20 minutes of constraints + bottlenecks builds strong intuition.

Design a URL shortener

Capacity planning, storage, caching, and collision strategy.

Design a feed

Fan-out models, pagination, ranking, and hot key mitigation.

Design a chat system

WebSockets, delivery guarantees, offline sync, and sharding.

Design file storage

Object storage, metadata, consistency, and CDN strategy.

Mental checklist
  • Clarify requirements and non-goals first.
  • Estimate scale: QPS, storage, bandwidth, and hot paths.
  • Choose data model + APIs. Then sketch components.
  • Identify bottlenecks and failure modes.
  • Iterate: caching, queues, replication, sharding, observability.