Compiler discipline
CoreOwnership, borrowing, lifetimes, enums, traits, and generics are taught as design tools, not as isolated syntax drills.
Live online systems programming
Dates to be announced / live cohort / project-first Rust
A practical Rust course for programmers who want to stop fighting the borrow checker by accident and start using Rust's type system deliberately. The course project is an emulator core with real binary data, memory maps, instruction decoding, tests, rendering, and performance constraints.
Course sheet
TBAThe course is built around code that must parse bytes, preserve invariants, explain failure, and run fast enough to be interesting.
Compiler discipline
CoreOwnership, borrowing, lifetimes, enums, traits, and generics are taught as design tools, not as isolated syntax drills.
Low-level model
ProjectEmulator work gives a concrete reason to care about memory layout, bytes, bit flags, instruction cycles, and deterministic tests.
Portfolio result
OutcomeYou leave with a project that demonstrates systems thinking, typed error handling, testing, documentation, and maintainable Rust code.
The final schedule will be published with dates. The current plan is a focused live cohort with practical work between sessions.
Install Rust, Cargo, rust-analyzer, rustfmt, and clippy. Set up the emulator workspace and testing harness.
Use ownership and borrowing to load ROM bytes, parse headers, and model data without accidental copies.
Represent registers, flags, opcodes, and execution state with precise data types.
Decode instructions, avoid giant unstructured conditionals, and keep impossible cases explicit.
Build the boundary between CPU, cartridge, RAM, IO registers, and display state.
Model invalid ROMs, unsupported features, parse failures, and emulator bugs with useful error types.
Advance the emulator one instruction at a time and make timing state inspectable instead of mysterious.
Use unit tests, golden traces, and small compatibility programs to keep the emulator honest.
Expose pixels, connect keyboard input, and separate emulator logic from presentation code.
Use traits where they simplify substitution, tests, frontends, and extension points.
Measure before optimizing, remove accidental allocation, and use Rust's abstractions without hiding costs.
Document the emulator, publish a clean repository, and explain design tradeoffs like an engineer.
Who it is for
What is included
Next cohort
Dates TBAThe course is being prepared independently by Lambda Symbolics. Dates, pricing, and cohort size will be announced separately.
If you want to be notified when the cohort opens, send a short email with your background and whether you prefer evenings, weekends, or an intensive format.
Contact