Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Computer science fundamentals

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.

Coming soon 19 modules

Coming soon. This track is being written. Below is its planned outline: a lesson appears here once its examples have been run and its technical review is signed off.

Planned outline

  1. Module 1

    Start here: stages, testers and bytes

    Coming soon
  2. Module 2

    A grep with its own regex engine

    Coming soon
  3. Module 3

    A POSIX-flavoured shell

    Coming soon
  4. Module 4

    A terminal text editor

    Coming soon
  5. Module 5

    An HTTP/1.1 server and a first look at HTTP/2

    Coming soon
  6. Module 6

    A DNS server and an iterative resolver

    Coming soon
  7. Module 7

    A userspace TCP/IP stack over TUN/TAP

    Coming soon
  8. Module 8

    A Redis-compatible key-value server

    Coming soon
  9. Module 9

    Version control in Git's repository format

    Coming soon
  10. Module 10

    Reading and writing the SQLite file format

    Coming soon
  11. Module 11

    A broker that speaks the Apache Kafka protocol

    Coming soon
  12. Module 12

    An interpreter for Kolam in any language

    Coming soon
  13. Module 13

    An emulator: a CHIP-8 interpreter, then a 6502 computer

    Coming soon
  14. Module 14

    A template engine with contextual auto-escaping

    Coming soon
  15. Module 15

    A browser engine: HTML, CSS, layout and paint

    Coming soon
  16. Module 16

    A BitTorrent client

    Coming soon
  17. Module 17

    A terminal coding agent

    Coming soon
  18. Module 18

    A container runtime for Linux

    Coming soon
  19. Module 19

    Make it solid: fuzzing, differential tests and speed

    Coming soon

Related tools

Official documentation

More in Computer science fundamentals

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.