Systems Engineer
The metal layer: C, Rust, and assembly. Then build the things underneath your usual abstractions — memory allocators, CPU emulators, file systems, OS kernels.
Course sequence
- 01
C Fundamentals
Not startedLearn C: the language behind operating systems, embedded firmware, and the foundation of nearly every modern language. Manual control, explicit memory, no surprises. Every lesson is hands-on with real gcc execution.
intermediatec13 lessons~3h - 02
Rust Fundamentals
Not startedLearn Rust: a systems language with the safety of a high-level one. Ownership, borrowing, pattern matching, zero-cost abstractions. Every lesson is hands-on with real cargo execution.
intermediaterust15 lessons~4h - 03
Rust Intermediate
Not startedLevel up from Rust Fundamentals. Ownership in depth, traits and trait objects, generics, lifetimes, iterator chains, Result/Option chaining, closures. The features that make Rust feel like Rust.
intermediaterust9 lessons~2h - 04
Rust Advanced
Not startedBeyond Rust Intermediate. Smart pointers (Box, Rc, RefCell), interior mutability, trait objects, declarative macros, unsafe basics. The features that close the gap between Rust and C++.
advancedrust7 lessons~2h - 05
Assembly Fundamentals (x86_64 NASM)
Not startedLearn x86_64 assembly: the instructions your CPU actually runs. Once you've written a hello world by directly invoking the Linux write syscall, you understand programs and the OS in a way no high-level language can teach.
advancedassembly5 lessons~1h - 06
Build a Memory Allocator
Not startedBuild malloc/free from scratch: bump allocator, free lists, splitting and coalescing, size classes, thread-local caches. By the end you'll understand what every allocator (jemalloc, tcmalloc, ptmalloc) actually does.
intermediate14 lessons~4h - 07
Build Your Own Shell
Not startedBuild a real Unix shell from the ground up: tokenize quoted command lines, parse pipelines and redirections, expand variables and glob patterns, fork/exec child processes, and dispatch built-ins like cd, export, and history. By the end you'll deeply understand how bash, zsh, dash, and every other shell actually drive the Unix process model.
intermediate16 lessons~4h - 08
Build a CPU (RISC-V)
Not startedBuild a RISC-V RV32I simulator: register file, instruction decoding (R/I/S/B/U/J formats), ALU + load/store + branch + jump execution, calling convention, syscalls, and the fetch-decode-execute loop. Same architecture as Spike, QEMU's RISC-V mode.
advanced10 lessons~3h - 09
Build an ELF Loader
Not startedBuild an ELF executable loader: parse the ELF header, walk program headers, mmap PT_LOAD segments, set up the initial stack and auxv, hand off to dynamic linker (ld-linux.so), apply relocations, and resolve symbols via GOT/PLT.
advanced10 lessons~3h - 10
Build a File System
Not startedBuild an ext-style file system: superblock, allocation bitmaps, inodes (with extents), directory entries, path resolution, journaling for crash safety, and the design choices behind ext4/xfs/btrfs/ZFS.
advanced10 lessons~3h - 11
Build an OS Kernel
Not startedBuild an educational kernel like xv6: boot in QEMU, set up paging + virtual memory, implement processes/threads, schedule with round-robin/MLFQ/CFS, dispatch system calls, handle interrupts, build a simple file system, and explore the gap between toy and Linux.
advanced24 lessons~6h
Create a free account to track your progress across this path.