$sys-design-learn --interactive

SELECT JOURNEY

Learn system design through interactive scenarios. Start small, encounter bottlenecks, evolve.

Available Journeys[6 total]
[0]

URL Shortener

Beginner25-30 minutes

You built a tiny link toy for your friends. Then the internet happened. Tame the chaos and scale from “cute” to “credible” through six bottlenecks.

Topics:
Learn when indexing solves slow queries • Understand caching for read-heavy workloads with hot spots • Recognize when to use geo-distribution vs CDN
[1]

Scaling a Photo-Sharing App

Intermediate35–45 minutes

Evolve a tiny “for-friends-only” photo toy into a globally performant system. Things will be on fire, then slightly less on fire.

Topics:
Choose the right storage for large binaries vs. metadata • Apply CDNs for immutable, highly shared content • Precompute vs. compute-on-read tradeoffs for feeds
[2]

Real-Time Chat Application

Intermediate35–45 minutes

Build a chat app for your study group. Then your university adopts it. Navigate seven feature decisions—from message delivery to presence tracking—learning real-time systems without the vendor sales pitch.

Topics:
Understand message delivery semantics (at-most-once, at-least-once, exactly-once) • Design ephemeral state systems (typing indicators, presence) • Implement efficient message history with cursor pagination
[3]

Collaborative Document Editor

BETA
Advanced45–55 minutes

You built a shared doc app for your study group. Now half the dorm uses it, paragraphs vanish when two people type at once, and someone keeps asking for Google Docs features. Time to build them.

Topics:
Design document versioning strategies from snapshots to operation logs • Handle concurrent editing with optimistic locking and real-time sync • Build WebSocket-based presence and collaboration infrastructure
[4]

Cloud File Storage & Sync

Intermediate40–50 minutes

Build a file-sharing app for your study group. Then everyone starts syncing their entire hard drives. Learn chunking, delta sync, conflict resolution, and deduplication—the building blocks of Dropbox, without the "Premium Trial Expired" nag screens.

Topics:
Implement resumable uploads with chunking for large files • Use delta sync (block-level diffing) to minimize bandwidth • Detect and resolve concurrent edit conflicts with versioning
[5]

Ride-Hailing Dispatch System

Intermediate45–55 minutes

Build a campus rideshare for late-night library runs. Then the whole city wants in. Learn geospatial indexing, real-time matching, state machines, and surge pricing—the building blocks of Uber, without the regulatory headaches.

Topics:
Implement geospatial indexing for location-based queries • Handle high-frequency location updates efficiently • Design state machines for complex entity lifecycles
↑/↓ or j/k to navigate, Enter to select
[hide beta]