Skip to content
Learning path

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.

advanced16 courses198 lessons~50 hoursFree
Start pathor sign up to track progress

Course sequence

  1. 01

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

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

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

    Haskell Fundamentals

    Not started

    Learn 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
  5. 05

    Haskell Intermediate

    Not started

    Level 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
  6. 06

    Haskell Advanced

    Not started

    Beyond Haskell Intermediate. Applicatives, State and Reader monads, GADTs intro, lenses basics, type families. The features you actually use in production Haskell.

    advancedhaskell7 lessons~2h
  7. 07

    OCaml Fundamentals

    Not started

    Learn 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
  8. 08

    OCaml Intermediate

    Not started

    Level 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
  9. 09

    OCaml Advanced

    Not started

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

    Build Your Own JSON Parser

    Not started

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

    Build Your Own Regex Engine

    Not started

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

    Build a Lisp Interpreter

    Not started

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

    Build a Code Formatter

    Not started

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

    Build a Linter

    Not started

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

    Build a C Compiler

    Not started

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

    Build a Programming Language from Scratch

    Not started

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

Compiler Engineer