SIGN IN

A WORKSHOP, NOT A LIBRARY

The classic engineering books,
learned by building.

You don't read about Redis — you build one. Guided sheets on this site, code on your machine, a local test harness certifies every stage. The harness is the truth; we just keep your logbook.

OPEN TRACK 02 — BUILD YOUR OWN REDIS →

The Volumes — books, done by hand

VOL 01 · DATA-INTENSIVE, BY HAND
Designing Data-Intensive Applications cover

Designing Data-Intensive Applications — Martin Kleppmann

Storage engines, replication, consensus — built small instead of read about.

11 MODULES

VOL 02 · PATTERNS, BY HAND
Head First Design Patterns cover

Head First Design Patterns — Freeman & Robson

The gang-of-four patterns that matter, each earned through a refactoring bench.

12 MODULES

VOL 03 · CLEAN CODE, BY HAND
Clean Code cover

Clean Code — Robert C. Martin

Names, functions, tests, refactoring — practiced on real messes, not slides.

12 MODULES

The Tracks — build your own X

TRACK 01 · BUILD YOUR OWN SHELL · GO
Build Your Own Shell blueprint plate

Processes, pipes, signals — the terminal stops being magic.

6 STAGES · STARTER

TRACK 02 · BUILD YOUR OWN REDIS · GO
Build Your Own Redis blueprint plate

A real key-value server: sockets, RESP, concurrency, TTLs, crash-safe persistence.

6 STAGES · CORE

TRACK 03 · BUILD YOUR OWN INTERPRETER · GO
Build Your Own Interpreter blueprint plate

Lexer, parser, evaluator — a small language that actually runs.

6 STAGES · CORE

TRACK 04 · BUILD YOUR OWN LOAD BALANCER · GO
Build Your Own Load Balancer blueprint plate

Reverse proxying, health checks, graceful drain — infra 101, by hand.

6 STAGES · CORE

TRACK 05 · BUILD YOUR OWN DATABASE · GO
Build Your Own Database blueprint plate

Pages, B-trees, a WAL, a tiny SQL — the storage engine DDIA describes.

6 STAGES · ADVANCED

TRACK 06 · BUILD YOUR OWN RAFT · GO
Build Your Own Raft blueprint plate

Consensus from the paper: elections, replication, and a cluster that survives kills.

6 STAGES · ADVANCED

Writing

May 2026 · 9 MIN READ

Building Resilient HTTP Clients: A Deep Dive into Retry Logic

Most distributed-system incidents aren't caused by hard failures. They're caused by transient ones handled badly.

May 2026 · 7 MIN READ

How Django's get_or_create Quietly Solves Race Conditions You Thought Were Your Problem

When concurrent requests race to insert the same record, most teams reach for retry logic. Django's get_or_create handles it in one line.

How it works

01 · CLONE
One starter repo per track — a minimal skeleton plus a graded test suite. Your editor, your tools, your git history.
02 · BUILD
Each sheet explains the concept in plain language, then hands you assembly steps with optional hints. You write every line.
03 · CERTIFY
make check STAGE=n runs the acceptance tests on your machine. Pass, and ink the component into your logbook.