Every course

Four complete courses and three being written. All of them free and open source, with a machine and a quiz in every chapter.

Databases in Depth

How a database stores rows, finds them fast and keeps them through a crash: pages, B-trees and LSM-trees, the write-ahead log, transactions, replication, Paxos and Raft. Then you write PocketDB in Java.

  • 32 chapters
  • 28 machines
  • 165 questions
Read chapter 1
The consistent-hashing machine from Databases in Depth: three nodes on a ring, keys coloured by owner.

RAG in Depth

Everything between a question and a grounded answer: chunking, embeddings, BM25, HNSW, IVF and product quantization, hybrid search, reranking, agents and graphs, and how to measure any of it. Then you build PocketRAG.

  • 36 chapters
  • 42 machines
  • 402 questions
Read chapter 1
The HNSW machine from RAG in Depth: three graph layers and a search reaching recall 0.900.

LLM in Depth

What a language model is, one layer at a time: tokenizers, attention and the block, pretraining and scaling laws, decoding and tool use, LoRA and DPO, quantization and serving, evaluation and security. Then you build PocketLM in Python and C.

  • 41 chapters
  • 81 machines
  • 462 questions
Read chapter 1
The attention machine from LLM in Depth: a causal weight matrix for 'the cat sat on the mat because it was warm'.

DSA by Patterns

Data structures and algorithms as mechanisms, not recipes. Why two pointers touches each element once, why a hash table goes quadratic on chosen inputs, why knapsack is not polynomial. Every routine in Python and Java, tested against brute force.

  • 49 chapters
  • 88 machines
  • 492 questions
Read chapter 1
The two-pointers machine from DSA by Patterns: a sorted array with a pointer at each end.

Operating Systems in Depth

Processes, schedulers, virtual memory, file systems and the system-call boundary: the machine your programs run on.

  • Being written

Networking in Depth

From a voltage on a wire to HTTP/3: routing, congestion control, TLS, and why the internet works anyway.

  • Being written

Compilers in Depth

Lexers, parsers, type checkers, intermediate forms and optimisers: the road from source text to machine code.

  • Being written

Want a course that isn't here? Open an issue on GitHub and say what it should cover.