Topics

Open a topic to see every note in it with its status, or go straight to its overview.

Algorithms 40 notes Algorithms explained with intuition, formal models, proof sketches, and implementation tradeoffs.
Agentic Coding 15 notes Engineering habits for working with coding agents: design concepts, feedback loops, tests, and review.
Operating Systems 23 notes Operating-system design from the kernel boundary up: processes, threads, scheduling, synchronisation, memory, and I/O. Some pages are study plans for topics not yet written.
AI Engineering 8 notes How ML workloads run on hardware: GPUs, matrix multiplication, memory systems, compilers, and distributed training. Assumes basic linear algebra and some systems background.
Software Systems 12 notes How production software is built and operated: services, logs and event streams, testing, reliability, security, and team practice.

Open the Software Systems overview 12 working notes

Building Agents 7 notes Software-engineering principles for building agent applications (as opposed to using coding agents): when to use an agent, workflows, and memory.
C Deep Dive 9 notes The C language up close, built and tested with GCC on Linux: syntax, types, operators, pointers, memory, and files.
C++ Deep Dive 3 notes C++ from a C programmer's point of view: the build model, memory layout, and ownership with RAII and smart pointers. Examples assume C++14 or later (they use std::make_unique).

Guided paths

Learning algorithms

For readers who want a guided route through the Algorithms notes.

From recursion and invariants to graph search and dynamic programming.

  1. RecursionExplainer

    Recurrences and how to reason about recursive cost.

  2. Binary SearchExplainer

    Interval invariants on the simplest divide-and-conquer.

  3. SortingExplainer

    Comparison models, stability, and lower bounds.

  4. Graph TraversalExplainer

    Representations and BFS/DFS basics.

  5. DijkstraExplainer

    Shortest paths with non-negative weights.

  6. Dynamic ProgrammingExplainer

    States, transitions, and reconstruction.

Learning C and C++

For readers who want to understand memory from the language up.

C syntax and pointers, then how C++ builds, lays out memory, and manages ownership.

  1. Syntax in CExplainer

    What a C program is made of.

  2. Pointers in CExplainer

    Pointers as variables that hold addresses.

  3. Dynamic Memory Allocation in CExplainer

    malloc, realloc, and free.

  4. C++ BasicsExplainer

    How C++ is compiled and linked.

  5. C++ Memory ModelExplainer

    Stack, heap, and static storage.

  6. C++ Memory OwnershipExplainer

    RAII, smart pointers, and move semantics.

Reviews and corrections

No note has been marked reviewed yet, so every note is labelled a Working note.

Recent corrections:

All 19 corrections on the Errata page

Type to search every note and essay.