Build Your Own X: systems and tools from scratch
The planned outline of 19 modules. Lessons are written, run and reviewed before they are published.
Planned outline
- Module 1
Start here: stages, testers and bytes
Coming soon - Module 2
A grep with its own regex engine
Coming soon - Module 3
A POSIX-flavoured shell
Coming soon - Module 4
A terminal text editor
Coming soon - Module 5
An HTTP/1.1 server and a first look at HTTP/2
Coming soon - Module 6
A DNS server and an iterative resolver
Coming soon - Module 7
A userspace TCP/IP stack over TUN/TAP
Coming soon - Module 8
A Redis-compatible key-value server
Coming soon - Module 9
Version control in Git's repository format
Coming soon - Module 10
Reading and writing the SQLite file format
Coming soon - Module 11
A broker that speaks the Apache Kafka protocol
Coming soon - Module 12
An interpreter for Kolam in any language
Coming soon - Module 13
An emulator: a CHIP-8 interpreter, then a 6502 computer
Coming soon - Module 14
A template engine with contextual auto-escaping
Coming soon - Module 15
A browser engine: HTML, CSS, layout and paint
Coming soon - Module 16
A BitTorrent client
Coming soon - Module 17
A terminal coding agent
Coming soon - Module 18
A container runtime for Linux
Coming soon - Module 19
Make it solid: fuzzing, differential tests and speed
Coming soon
Related tools
Hex Viewer & File Inspector A private hex viewer for files of any size, with a data inspector and file-type detection. Hash Generator Hashes and HMACs of text or huge files, plus checksum verification. CRC Calculator (CRC-8/16/32/64) Every catalogued CRC, custom parameters, checksums and C code — for text, hex or files. Regex Tester Live matches, capture groups and replace preview — safe from runaway patterns. SQLite Online (SQL Playground) A full SQLite database in your browser — open, query, import, export. DNS Lookup Every DNS record type, straight from a public DNS resolver, explained in plain words.
Official documentation
- redis.io/docs/latest/develop/reference/protocol-spec (redis.io)
- git-scm.com/docs/gitformat-pack (git-scm.com)
- www.sqlite.org/fileformat2.html (sqlite.org)
- www.rfc-editor.org/rfc/rfc9112 (rfc-editor.org)
- www.rfc-editor.org/rfc/rfc1035 (rfc-editor.org)
- kafka.apache.org/43/design/protocol (kafka.apache.org)
More in Computer science fundamentals
- Object-Oriented Programming (coming soon)
- Database Management Systems (coming soon)
- Operating Systems (coming soon)
- Computer Networks (coming soon)
- All CS fundamentals tracks
- How we make lessons