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