Skip to content

Career path

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.

advanced11 courses133 lessons~33 hoursFree
Start pathor sign up to track progress

Start → ship

1

You start with

C Fundamentals

11

You ship

Build an OS Kernel

11 courses in order, every exercise graded on the executor.

Course sequence

Follow it in order. Each course is its own certificate.

  1. 1

    C Fundamentals

    Not started

    Learn 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
  2. 2

    Rust Fundamentals

    Not started

    Learn 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
  3. 3

    Rust Intermediate

    Not started

    Level 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
  4. 4

    Rust Advanced

    Not started

    Beyond 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
  5. 5

    Assembly Fundamentals (x86_64 NASM)

    Not started

    Learn 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
  6. 6

    Build a Memory Allocator

    Not started

    Build 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
  7. 7

    Build Your Own Shell

    Not started

    Build 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
  8. 8

    Build a CPU (RISC-V)

    Not started

    Build 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
  9. 9

    Build an ELF Loader

    Not started

    Build 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. 10

    Build a File System

    Not started

    Build 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. 11

    Build an OS Kernel

    Not started

    Build 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.

Systems Engineer