Skip to content

Career 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

Start → ship

1

You start with

C Fundamentals

11

You ship

Build an ELF Loader

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

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

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

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

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

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

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

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

    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