Skip to content
Dev Tools Article

Rebuild Redis Once. The Black Box Stops Winning

From-scratch platforms turn Feynman’s rule into a practical systems workout for mid-level engineers.

Rachel Goldstein
Rachel Goldstein
Dev Tools Editor · Jul 11, 2026 · 7 min read
Rebuild Redis Once. The Black Box Stops Winning

Most backend engineers treat Redis as a fast key-value box with a polite SET/GET surface. Git is a black box that mostly works. The database is whatever the ORM hides. That posture holds until latency spikes, a replication lag appears, or a merge that should have been clean explodes. Rebuilding a stripped-down version of those systems remains one of the highest-leverage exercises a working developer can do. The method is old. The packaging is new.

Ship That Code is the latest free entrant: 80+ build-from-scratch courses across nine languages, automated tests that pass or fail in tens of milliseconds, and career paths that sequence them. It sits next to CodeCrafters and longer-form books such as the free Build Your Own Redis with C/C++. The common claim is simple and still true: if you can implement the core loop yourself, infrastructure stops feeling like magic.

The format matured past blog posts

For years the genre lived in scattered series and books. You followed a socket tutorial, then a hash table chapter, then hoped the pieces stuck. Platforms tightened the loop. Every lesson is choose, write, run. The test harness rejects partial understanding. One user quote on Ship That Code captures the constraint cleanly: “You can’t cheat — you either solve the problem or you don’t.”

CodeCrafters popularized the same idea earlier with paid challenges for Redis, Git, and SQLite that run against real protocol suites in your own IDE. Coding Challenges and similar free lists keep the bar lower. Ship That Code’s differentiator is breadth and price: Redis, a database, Git, a container runtime, a shell, an OS kernel, a Raft KV store, a load balancer, even a neural network and a ray tracer, offered free with no credit card. Languages include Python, Go, Rust, C, C++, and more. The career tracks package the projects (Backend Engineer roughly 80 hours, DevOps/SRE roughly 70) but the individual systems are the product.

This is not revolutionary pedagogy. It is Feynman’s line made operational: “What I cannot create, I do not understand.” The platforms simply remove friction and give you a fail/pass oracle.

What a Redis rebuild actually forces

Early lessons look almost trivial. Ship That Code’s Redis track shows the shape immediately:

def handle_set(args):
    store[args[0]] = args[1]
    return "+OK\r\n"

def handle_get(args):
    val = store.get(args[0])
    if val is None:
        return "$-1\r\n"
    return f"${len(val)}\r\n{val}\r\n"

That is the RESP protocol in miniature: simple strings, bulk strings, the exact wire format clients expect. You write a TCP server, parse commands, maintain an in-memory map, and return the right bytes. Then the work escalates. Concurrent connections force an event loop or threads. TTL and expiration force timers and lazy or active deletion. Lists, sets, and sorted sets force real data-structure choices instead of textbook diagrams. Persistence (even a crude RDB or AOF) surfaces the durability versus latency trade-off every production cache eventually hits.

The same pattern appears in the Git rebuild (object store, trees, commits, refs) and the database rebuild (storage engine, simple query path, perhaps a B-tree or LSM sketch). You do not produce production Redis. You produce the skeleton that makes production Redis legible. After one of these, reading the real source or a design doc stops being pure archaeology.

How a working developer should actually use this

Treat it as deliberate practice, not a certificate. Pick one system in the language you already ship. Redis in Go or Python is the highest ROI for most backend engineers; Git is better if you live in version-control edge cases; a tiny database is better if you debug ORM or index problems weekly.

Budget 10–25 focused hours for a first pass, not a weekend binge. Run the tests. Break the protocol on purpose and watch the client fail. Once the suite is green, stop. Do not immediately start the next course. Open the real Redis source or the Redis documentation and re-read the sections on the event loop, expiration, or the encoding of small strings. The second pass is where the value compounds.

What it replaces: endless high-level “how Redis works” videos and the fantasy that you will one day read the entire Redis codebase for fun. What it does not replace: production experience, capacity planning, or the hard parts of clustering and memory fragmentation. Toy implementations omit jemalloc tricks, the real complexity of Redis Cluster, and years of edge-case hardening. That is fine. The goal is mental models, not a drop-in replacement.

Caveats are real. Automated tests can encourage minimal solutions that pass the harness without teaching the harder design choices. Free platforms still need you to resist the completionist urge to collect every badge. If your day job is pure frontend or pure data science, the Backend Engineer track’s ~80 hours is mostly overhead; cherry-pick instead.

Who this is for (and who should skip it)

Mid-level backend, platform, and SRE engineers get the most. You already know the APIs. You need the internals so that the next outage or design review is less guesswork. Junior engineers can use the language fundamentals tracks first, then a single systems project. Senior staff who already maintain similar systems will find diminishing returns unless they are switching languages (Rust after years of Go, for example).

The career-path packaging is optional marketing. The useful unit is still one system, rebuilt under test, then compared against the real thing. CodeCrafters remains stronger if you want a polished multi-language challenge with a git-based workflow and are willing to pay. Ship That Code wins on free breadth and the “write until the test passes” loop. The older books win if you want deeper prose and are happy without an automated grader.

Do one rebuild. Make the tests green. Then go back to the real system with new eyes. That sequence still beats another polished tutorial that leaves the black box intact.

Sources & further reading

  1. Show HN: Learn by rebuilding Redis, Git, a database from scratch — shipthatcode.com
  2. hckr news - Hacker News sorted by time — hckrnews.com
  3. GitHub - giaming/redis-learn: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps. · GitHub — github.com
  4. Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++ — build-your-own.org
Rachel Goldstein
Written by
Rachel Goldstein · Dev Tools Editor

Rachel has been embedded in the developer tooling ecosystem for nearly eight years, covering everything from IDE wars and package-manager drama to the quiet rise of AI-assisted coding. She has a soft spot for open-source maintainers and an unhealthy number of terminal emulators installed on a single laptop.

Discussion 0

Join the discussion

Sign in or create an account to comment and vote.

No comments yet

Be the first to weigh in.

Related Reading