Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

iot

Naming the ways a device's connection fails (access point, DHCP lease, broker restart, weak signal) and how each is noticed

taught

Taught in

Requires

Local knowledge map

Local knowledge map

Buffering readings in a bounded offline queue with a drop… Capturing reset reasons and core dumps and reporting them… Publishing telemetry and handling commands from an ESP32 with th… Reading a partition table with two app slots and otadata, an… Running a back end as a service or container on a small Linux box,… Writing event-driven rules that react to device messages… Writing state so a brownout mid-write never corrupts it --… Listing what can go wrong during an over-the-air update… Scheduling reconnect attempts with exponential backoff,… Stating what each part of a system does when any one of its links… Watching device health through heartbeats, metrics, logs and… Naming the ways a device's connection fails (access point,… Addressing a program with a port and a socket, and reading… Building a room controller around a table-driven state… Drawing a system's architecture and writing down the… Finding devices on a local network by name with mDNS and DNS-SD Joining a Wi-Fi network from an ESP32 in station mode,… Recognizing which embedded-systems skills (non-blocking… Running several timers and state machines in one loop as a tiny… Timing with millis() and rollover-safe unsigned subtraction Using retained messages for last-known state and… Designing a finite state machine with states, events and… Explaining how a device gets an address with DHCP and finds a… Debouncing a button in firmware with a time window or a state… Explaining default gateways, private addresses and NAT, an…

Click to expand

Solid arrows are required prerequisites; dashed are recommended or helpful. Lower rows are more foundational. Click any box to jump to that concept.