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

Calling a REST API from an ESP32 with JSON bodies, and telling safe and idempotent methods apart

taught

Taught in

Requires

Local knowledge map

Local knowledge map

Authenticating devices and users to an API with per-device… Choosing JSON, CBOR or Protobuf and versioning a message… Modelling telemetry as timestamped points with tags and fields,… Pushing live device updates to a browser with server-sent… Reading the same back-end service in Python, TypeScript an… Testing a back end with unit tests and integration tests… Validating API input against a schema, returning useful… Building a small Python service that consumes MQTT into… Building and parsing JSON on a microcontroller with… Choosing between HTTP, MQTT and WebSockets by direction, overhead,… Reading CoAP requests and responses -- confirmable messages,… Calling a REST API from an ESP32 with JSON bodies, and… Choosing between polling an HTTP endpoint and a… Describing UDP datagrams, their size limits, and what UDP… Explaining publish/subscribe through a broker and… Explaining what plaintext HTTP exposes on a network and what… Getting Wi-Fi credentials onto a device without… Joining Wi-Fi and getting an address from Rust with… Reasoning about Wi-Fi range, interference, coexistence and… Serving a local status page and a small JSON endpoint from an ESP3… Splitting an IoT back end into ingest, state, API and jobs,… Telling bytes from text, reading a hex dump, and reading and… Joining a Wi-Fi network from an ESP32 in station mode,… Reading an HTTP request and response -- method, path,… Explaining Wi-Fi bands, channels, SSIDs, CSMA/CA and… Explaining how a device gets an address with DHCP and finds a… Tracing a TCP connection's handshake, byte strea…

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.