Compiler Engineer
Build the tools that turn source into something the CPU can run. Rust and Haskell for the type theory that powers modern compilers; OCaml for ML lineage; then implement progressively harder compilers and interpreters yourself.
Course sequence
- 01
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 - 02
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 - 03
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 - 04
Haskell Fundamentals
Not startedLearn Haskell: a pure, lazy, statically-typed functional language. Algebraic types, type classes, monads. Will rewire how you think about programs. Every lesson is hands-on with real GHC execution.
advancedhaskell15 lessons~4h - 05
Haskell Intermediate
Not startedLevel up from Haskell Fundamentals. Type classes, IO and the Monad pattern, Maybe/Either chains, do-notation. The features that make Haskell expressive — and how to write IO without breaking purity.
intermediatehaskell9 lessons~2h - 06
Haskell Advanced
Not startedBeyond Haskell Intermediate. Applicatives, State and Reader monads, GADTs intro, lenses basics, type families. The features you actually use in production Haskell.
advancedhaskell7 lessons~2h - 07
OCaml Fundamentals
Not startedLearn OCaml: the rigorous functional language behind F#, Reason, and Jane Street's trading systems. Has the strictest type system you'll meet outside Haskell, with type inference so good you barely write a type. The language that taught me what 'expressive' really means.
intermediateocaml9 lessons~2h - 08
OCaml Intermediate
Not startedLevel up from OCaml Fundamentals. Modules, records, mutable references, option/result combinators, the standard library. The features that scale OCaml from a teaching language to industrial use.
intermediateocaml7 lessons~2h - 09
OCaml Advanced
Not startedBeyond OCaml Intermediate. Functors, GADTs, polymorphic variants, lazy evaluation, the Pervasives module. The features behind Jane Street's libraries and the Coq proof assistant.
advancedocaml7 lessons~2h - 10
Build Your Own JSON Parser
Not startedBuild a fully RFC 8259-compliant JSON parser from scratch. You'll tokenize structural characters, decode escape sequences and Unicode, parse numbers with strict grammar, and recursively assemble objects and arrays. By the end you'll deeply understand how json.loads, JSON.parse, and every other parser actually works.
beginner12 lessons~3h - 11
Build Your Own Regex Engine
Not startedBuild a regex engine from first principles — literal matching, character classes, quantifiers, anchors, alternation, capture groups. You'll implement Thompson's NFA construction (1968!) and the parallel simulation algorithm that guarantees linear time. By the end you'll understand what makes RE2, Go's regexp, and Rust's regex crate fast and safe.
intermediate16 lessons~4h - 12
Build a Lisp Interpreter
Not startedBuild a Scheme/Lisp interpreter in ~200 lines: tokenize, parse to nested lists, evaluate atoms and expressions, support define and if, lambda + closures, recursion, list operations, and macros. The textbook (SICP) classic — every CS curriculum has this.
intermediate13 lessons~3h - 13
Build a Code Formatter
Not startedBuild a Wadler-style pretty printer like prettier/black/gofmt: parse to AST/CST, define a Doc algebra (text/line/group/nest), make line-break decisions based on width, preserve comments through formatting, support hanging indent + alignment. The toolchain backbone of every modern codebase.
intermediate10 lessons~3h - 14
Build a Linter
Not startedBuild an ESLint/Pylint-style static analyzer: tokenize source, build an AST, walk it with visitor pattern, check naming/complexity/unused names/dead code, parse suppressions, load config from pyproject.toml, emit human/JSON/GitHub formats. The toolchain backbone of every modern codebase.
intermediate10 lessons~3h - 15
Build a C Compiler
Not startedBuild a C compiler from scratch: lexer, recursive-descent parser, type checker, IR generation, x86-64 code generation, optimization passes (constant folding, dead code, register allocation), and linking. Builds the full pipeline like chibicc, GCC, and Clang.
advanced14 lessons~4h - 16
Build a Programming Language from Scratch
Not startedBuild a complete programming language from first principles. You'll implement a scanner, recursive descent parser, tree-walk interpreter, bytecode compiler, stack-based virtual machine, garbage collector, closures, classes with inheritance, and a type inference engine. This is the definitive course on programming language implementation — based on the same techniques used by Python, Ruby, Lua, and JavaScript engines.
advanced38 lessons~10h
Create a free account to track your progress across this path.