Build a database
A durable key-value store you wrote, with a B+tree, crash recovery and transactions, a small SQL layer on top, and enough knowledge of PostgreSQL's internals to read its source.
HN points per step
Course catalogue
Build a database, an interpreter and compiler, a GPT, an operating system, a network stack or your own Git from scratch. Each course strings together the tutorials HN kept upvoting, in learning order, with every score and every criticism left in.
Suggested order. Each course is a path through sources, not a single post; the bars show how its HN score is distributed across the steps.
A durable key-value store you wrote, with a B+tree, crash recovery and transactions, a small SQL layer on top, and enough knowledge of PostgreSQL's internals to read its source.
HN points per step
Two interpreters for one language (a tree-walker, then a bytecode VM with a garbage collector), a compiler that turns a real language into assembly you can run, and enough LLVM to know what you'd use in production.
HN points per step
An autograd engine you wrote, a GPT you trained from scratch with a tokenizer you wrote, and a from-scratch inference loop for a modern open-weights architecture. Enough to read a model's source and know what every line does.
HN points per step
A Unix shell you wrote; a small RISC-V operating system with processes, paging, user mode, system calls and a file system; an x86-64 kernel in Rust with interrupts, paging and a heap allocator; xv6 extended through MIT's nine labs; and Linux kernel modules you built and loaded, with enough Linux internals to read the kernel's source.
HN points per step
An HTTP server on raw sockets, a DNS resolver that walks from the root servers, a userspace TCP/IP stack (Ethernet, ARP, IPv4, ICMP, TCP) that answers ping and carries TCP connections, a toy TLS 1.3 client that talks to a real server, and a BitTorrent client that downloads a real file from real peers.
HN points per step
A terminal text editor in about 1,000 lines of C, with search and syntax highlighting; a Git in about 1,000 lines of Python that can init, add, commit, log, checkout and tag, compatible with real Git repositories; and a Redis-like server in C with an event loop, hashtables, sorted sets and key expiry.
HN points per step