System Design Notes

Learning systems
by building them.

A working study log for Staff-level system design interviews. Each entry documents the full design process — requirements through deep dives — with diagrams, tradeoffs, and honest reasoning throughout.

Foundation

The 6-Step Interview Framework

The structured approach behind every design on this site. Requirements, estimation, interface, data model, high-level design, and deep dives — with timing guidance and interview signals for each step.

Worked Examples
01
URL Shortener · Read-Heavy · Caching · Hashing

Design TinyURL

A URL shortening service handling 100M creates/day and 1B redirects/day. Covers short code generation, cache strategy, redirect semantics, and abuse prevention.

In Progress
02

Design a Rate Limiter — coming soon

03

Design Instagram Feed — coming soon

04

Design a Notification Service — coming soon

📐

How these notes are structured

Every design follows the 6-step framework. Each page starts simple — a base case that works — then adds complexity in layers. Diagrams are always inline. Tradeoffs are named explicitly, not buried. The goal is a page you can study from, not just skim.