Learn C. Then write real firmware.Sanitizers on. ARM in your browser. No videos.
Three courses that take a working programmer from pointers and undefined behaviour to GPIO, UART, interrupts and an RTOS — on an emulated ARM target, no dev board needed. Every exercise is graded by real tests with the sanitizers professionals use, so “it works” is never a vibe. Built for people who already program.
// Reverse the bytes of buf in place. No libc helpers.
// The grader compiles this with sanitizers on and runs real
// tests — one out-of-bounds read is a failing test.
void reverse_bytes(uint8_t *buf, size_t len) {
if (buf == NULL || len < 2) {
return;
}
uint8_t *lo = buf;
uint8_t *hi = buf + len - 1;
while (lo < hi) {
uint8_t tmp = *lo;
*lo = *hi;
*hi = tmp;
lo++;
hi--;
}
}Systems Programming in C
Understand the machine — pointers, memory, undefined behaviour and real C toolchains, graded with the sanitizers professionals use.
C++ for Firmware Readers
Read and modify C++ firmware — RAII, references, templates at consumer level, and the embedded C++ subset (and what shops ban).
Bare Metal to RTOS
Write real ARM firmware in your browser — GPIO, UART, timers, interrupts and an RTOS — run on an emulated target, graded on what the machine actually does.
The tests decide, not vibes
Your C runs under ASan/UBSan-class tooling against real tests; your firmware runs on an emulated ARM target and is graded on actual machine behavior. Pass/fail is deterministic — the AI never grades you.
It adapts to you
Struggle on a concept and the game diagnoses why and builds targeted practice. Already solid on pointers? It moves you up instead of making you sit through it.
Ship real firmware
Capstones like a fixed-block pool allocator, a serial command console and a multi-sensor data logger, with a senior-engineer code review — the answer to tutorial hell. Ship a portfolio, not just streaks.
Your first sanitizer-clean pass is minutes away.
Start the embedded track — freeFree tier is genuinely free — every banked exercise is playable. We gate AI help and fresh generation, never the content.