System Design Interview Prep

Curated system design interview questions, foundational concepts, distributed-system patterns, and end-to-end design problems.

Topics covered:

  • Fundamentals: CAP, PACELC, ACID vs BASE, consistency models, latency vs throughput, back-of-envelope estimation
  • Scalability: vertical vs horizontal, stateless services, load balancing, CDN
  • Data: SQL vs NoSQL, indexing, sharding, replication, partitioning, secondary indexes
  • Caching: layers, eviction, write strategies, invalidation, cache stampede
  • Messaging: queues, pub/sub, brokers (Kafka, Rabbit, SQS), exactly-once
  • Communication: REST, gRPC, GraphQL, WebSockets, Server-Sent Events, long-polling
  • Distributed systems: consensus (Raft, Paxos), clocks (Lamport, vector), gossip, leader election
  • Reliability: redundancy, retries, backoff, circuit breakers, bulkheads, idempotency
  • Patterns: CQRS, event sourcing, saga, outbox, sidecar, strangler fig, BFF
  • Security: AuthN/AuthZ, OAuth2/OIDC, JWT, rate limiting, OWASP
  • Observability: metrics, traces, logs, SLO/SLI/SLA, error budgets
  • Top design problems: URL shortener, news feed, chat, ride-share, rate limiter, distributed cache, search, notifications, video streaming, payments, ad-click pipeline, recommendation, file storage, web crawler