Skip to content
Learning path

Embedded / Firmware Engineer

Tight memory budgets, no GC, direct hardware access. C and Rust for the firmware itself; assembly for the CPU layer; then build the kernels and emulators that run on bare metal.

advanced11 courses118 lessons~30 hoursFree
Start pathor sign up to track progress

Course sequence

  1. 01

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

    C++ Fundamentals

    Not started

    Learn modern C++: the language behind game engines, browsers, and high-performance systems. Strong static types, manual control where you need it, an enormous standard library (STL). Every lesson is hands-on with real g++ execution.

    intermediatecpp15 lessons~4h
  3. 03

    C++ Intermediate

    Not started

    Level up from C++ Fundamentals. Pointers in depth, dynamic memory, smart pointers, RAII, the Rule of Five, move semantics, templates, and exception safety. The features that turn working code into idiomatic modern C++.

    intermediatecpp7 lessons~2h
  4. 04

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

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

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

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

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

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

    Build a CHIP-8 Emulator

    Not started

    Build the simplest possible emulator: 35 opcodes, 4KB RAM, 16 registers, 64x32 display. Plays Pong, Tetris, Space Invaders. The on-ramp to NES, Game Boy, and bigger emulator projects.

    intermediate13 lessons~3h
  11. 11

    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

Create a free account to track your progress across this path.

Embedded / Firmware Engineer