Learn
Topic paths
Curated routes through the chapters, a project and the explorers for one subject.
- Computer Architecture · 7 chapters
- Operating Systems · 13 chapters
- Compilers · 10 chapters
- Applied: finance, data and statistics
Computer systems, learned by building
Structured paths through computer architecture, operating systems and compilers. Build each one from scratch, then take it apart in interactive explorers.
Three ways in
Learn
Curated routes through the chapters, a project and the explorers for one subject.
Build
Long-form series with a repository, a branch per chapter and a verified toolchain.
Visualize
Full-page sandboxes you drive yourself, with time travel and shareable state.
Featured
Hand-picked series and guides to start with, each with every chapter linked from its first page.
Programming
A step-by-step compiler tutorial in C++: design a language, build a lexer and parser, add semantic analysis, and generate native Linux x86-64 programs.
4 min Intermediate
Operating Systems
A bare-metal journey from a powered-on AArch64 CPU to a working interactive shell. Thirteen chapters of writing a kernel from scratch, covering the bootloader, MMU, interrupts, allocator, processes, syscalls, filesystem and a Rust no_std module, all running on QEMU's virt machine.
3 min Intermediate
Computer Architecture
Learn how computers work from transistors and logic gates to ALUs, control units, memory, instruction execution, I/O, GPUs, multicore CPUs, and SoCs.
4 min Intermediate
Visualize
Type your own input, change the parameters and step backwards through every operation.
Operating Systems
Walk an AArch64 page table, watch the TLB fill and trigger page faults.
Computer Architecture
Tune associativity and block size, replay access patterns, see every hit and miss.
Compilers
Type an expression and watch the tokens, the recursive-descent call stack and the AST.
Databases
Insert and delete keys, watch nodes split and merge, and follow a range scan along the leaves.
Computer Architecture
Flip the bits of an IEEE 754 float and see sign, exponent, fraction and rounding error update.
Computer Architecture
Store an integer and see its bytes land in memory: little- or big-endian, high or low word first.
Computer science, systems programming and quantitative engineering
Build an IR optimiser in C++ with constant folding, branch simplification, unreachable-code removal and dead code elimination while preserving behaviour.
Implement compiler control flow in x86-64 assembly by lowering IR comparisons, conditional branches, if/else statements and while loops.
Add System V AMD64 function calls to a C++ compiler with x86-64 argument registers, stack alignment, return values, a NASM runtime and ELF64 linking.
Build a compiler backend in C++ that translates checked IR into x86-64 NASM assembly with stack frames, arithmetic operations and native Linux executables.
Build an intermediate representation in C++. Lower a checked AST into three-address-style instructions with temporaries, variables, basic blocks, branches, loops and function calls.
Learn semantic analysis in a compiler by building symbol tables, nested scopes and static type checking in C++, with diagnostics and CTest tests.
Build a recursive descent parser in C++ that converts lexer tokens into an AST, handles operator precedence, reports syntax errors, and runs CTest tests.
Build a lexer in C++ that converts source code into tokens, recognises keywords and operators, applies maximum munch, and reports useful errors.
Coming next
Pager → B+tree → WAL → transactions → SQL, reusing the compiler series' parser.
The newsletter announces every new chapter and guide the day it publishes, including the first database chapter. No spam, unsubscribe in one click.
We send your address to Kit, our email provider, and ask you to confirm by email before anything is sent. See our Privacy Statement.