Learning path
Practice
Full walkthroughs ordered by difficulty — warm up on primitives, then media, social, marketplace, and hot-path systems.
- Design a URL shortener Junior-friendly Bit.ly walkthrough: requirements, entities, API, create + redirect flows, 301 vs 302, unique short codes (hash vs counter vs batching), caching, read/write split, and what interviewers expect at each level.
- Design a rate limiter Token bucket vs sliding window, distributed enforcement, and where to place limits — worked through Tatkal-style booking quotas end to end.
- Design a Distributed Cache Single-node hash map to LRU + TTL, then distribute: replication for HA, consistent hashing for shards, napkin math for 1TB / 100k RPS, and hot-key read/write mitigations — with interview bars by level.
- Design Dropbox Junior-friendly Dropbox walkthrough: requirements, entities, APIs, presigned S3 upload/download, CDN, sharing, hybrid sync, multipart large files, CDC + compression, security, and what interviewers expect by level.
- Design YouTube Upload and stream videos at YouTube scale: presigned S3 multipart, segment + multi-format processing DAG, adaptive bitrate streaming, resumable uploads, CDN and metadata cache — plus mid/senior/staff interview bars.
- Design Instagram Junior-friendly Instagram walkthrough: create posts, follow, chronological feed — fan-out on read → write → hybrid celebrity, presigned multipart upload, CDN + media variants, and interview bars by level.
- Design a news feed Fan-out on write vs read, celebrity users, and hybrid timelines — with the arithmetic that turns a 50-million-follower post into the whole design problem.
- Design WhatsApp Messaging walkthrough: WebSocket commands, group chats (cap 100), durable inbox for offline delivery, presigned media, Redis pub/sub across chat servers, multi-device clients, heartbeats, and last-seen — with interview bars by level.
- Design Strava Fitness-tracking walkthrough: start/pause/save runs and rides, GPS routes, offline-first client recording, friends activity feed, optional live follow via polling, Redis leaderboards — with interview bars by level.
- Design Tinder Junior-friendly Tinder walkthrough: swipe stacks with geo filters, atomic match detection (lost-match race → Redis Lua / same-partition Cassandra), cached+ES feeds, bloom filters to avoid re-shows, and interview bars by level.
- Design Yelp Junior-friendly Yelp walkthrough: search/view/review requirements, Business Service vs Review Service, average rating with optimistic locking, UNIQUE one-review constraint, geo + full-text + category indexes (ES vs PostGIS), neighborhood polygons, and interview bars by level.
- Design Gopuff Junior-friendly Gopuff walkthrough: Item vs Inventory, nearby DCs for 1-hour delivery, availability union, ACID orders without double-booking, travel-time pruning, Redis cache + replicas for ~20k QPS, and interview bars by level.
- Design Ticketmaster Junior-friendly Ticketmaster walkthrough: view/search/book events, no double-booking with Redis seat holds, event cache, virtual waiting room, Elasticsearch + CDC, and interview bars by level.
- Design an Online Auction List and bid on auctions with strong consistency on the max bid, durable Kafka ingest, SSE realtime updates, and scale to 10M concurrent auctions — OCC, contention, and interview bars by level.
- Design LeetCode Coding-platform walkthrough: list/view problems, sandboxed multi-language execution, competition leaderboards with Redis ZSETs, queues for 100k contestants, and language-agnostic test harnesses — with interview bars by level.