KnowSys
12 projects · roadmaps, not recipes

Build it yourself

The fastest way to understand a system is to build a small one. Each project here tells you why it’s worth doing, breaks it into milestones you can finish one weekend at a time, names the ideas each milestone teaches and the traps that catch everyone, and points you at the chapters and references that fill in the rest. You write the code.

◆

A game engine

A small 2D engine with a fixed-timestep loop, an entity-component system, a batched sprite renderer, input, collisions and sound, built so it can grow a third dimension later.

C++RustCZig
Ambitious8–14 weekends
See the roadmap
◎

A web browser engine

A browser that fetches real pages over HTTPS, parses HTML into a DOM, applies CSS, lays out boxes and text, paints them to a window and follows links, with JavaScript as the final stretch.

PythonRustC++Go
Ambitious8–12 weekends
See the roadmap
⬢

A tiny kernel with a superpower

A kernel that boots in QEMU on x86-64 or RISC-V, handles interrupts, pages memory, runs user programs on a preemptive scheduler, and then does one thing general-purpose kernels don't: run a single app, meet deadlines, or pass messages.

RustCZig
Serious side project10–16 weekends
See the roadmap
▣

Docker, from scratch

A container runtime in a few hundred lines: namespaces, a root filesystem, cgroup limits, layered images and a network, until docker run stops being magic.

GoRustC
Intermediate4–6 weekends
See the roadmap
⛁

A database storage engine

A key-value store that grows into a real engine: fixed-size pages on disk, a B+tree or an LSM tree, a write-ahead log, crash recovery and a buffer pool, with a small SQL layer on top if you keep going.

RustGoCC++
Ambitious6–10 weekends
See the roadmap
◈

A Redis clone

A single-threaded server that speaks RESP to the real redis-cli, holds strings, lists, hashes and sorted sets, expires keys, persists to disk with snapshots and an append-only file, and streams its writes to a replica.

GoRustCPython
Intermediate4–7 weekends
See the roadmap
⇅

A TCP/IP stack in userspace

A network stack that runs as an ordinary process on a TAP device: Ethernet, ARP, IPv4, ICMP and UDP, then a TCP that handshakes, retransmits, respects windows and backs off under congestion, until curl can fetch a page through it.

CRustGo
Serious side project8–12 weekends
See the roadmap
⬡

A replicated key-value store with Raft

A key-value store that runs on three or five nodes, elects a leader, replicates every write through a Raft log, survives crashes and restarts, compacts with snapshots, and stays linearizable while a test harness cuts the network apart.

GoRustJava
Serious side project6–10 weekends
See the roadmap
λ

A programming language

A small language of your own design, first as a tree-walking interpreter and then as a bytecode VM with a garbage collector, fast enough to run real programs.

CRustGoJava
Ambitious6–10 weekends
See the roadmap
$

A Unix shell

A working interactive shell with pipes, redirection, builtins and job control, small enough to read in one sitting and good enough to use for a day.

CRustGo
Beginner-friendly3–5 weekends
See the roadmap
◧

A Game Boy emulator

A CHIP-8 interpreter in a weekend, then a Game Boy emulator with a real CPU, memory map, cartridge banking, timers, graphics, input and sound that plays the cartridges you own.

CC++RustGo
Intermediate6–10 weekends
See the roadmap
⎇

Git, from scratch

A version control tool that writes real Git objects, so the actual git binary can read your commits and yours can read its repositories, packfiles included.

PythonGoRustC
Intermediate4–7 weekends
See the roadmap