// map
Topics
The territory of software engineering, surveyed the same way: what happens, why it happens, and what breaks when it doesn't.
Programming & Algorithms
Turn a problem into a precise procedure, then account for its cost.
C++
Memory, speed, and systems programming.
Data Structures
Choose how data is laid out so the operations you need stay practical.
Computer Systems
Connect source code to the process and machine that execute it.
Operating Systems
See how the kernel shares processors, memory, storage, and devices.
Computer Architecture
Follow instructions through pipelines, caches, and the memory hierarchy.
Networking
Follow data from an application to another machine and back.
Databases
Trace a query from SQL text to pages, indexes, and durable results.
Programming Language Internals
Follow source text through parsing, checking, compilation, and execution.
Runtime & Execution
Watch functions, objects, events, and I/O move while a program runs.
Web Development
From HTML to HTTP to full-stack applications.
Backend Engineering
Build request handlers that remain understandable under load and failure.
Software Architecture
Make boundaries and trade-offs visible before they become code.
System Design
Turn product requirements into a system with explicit trade-offs.
Distributed Systems
Reason about software when machines, networks, and clocks can fail independently.