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

Splitting an IoT back end into ingest, state, API and jobs, and drawing its boundaries

taught

Taught in

Local knowledge map

Local knowledge map

Authenticating devices and users to an API with per-device… 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… Splitting an IoT back end into ingest, state, API and jobs,… Analysing agriculture and water IoT systems Analysing connected robotics and scientific instruments Analysing environmental and infrastructure… Analysing home and building automation systems --… Calling a REST API from an ESP32 with JSON bodies, and… Deciding between a gateway and direct-to-cloud… Drawing a system's architecture and writing down the… Explaining why IoT security differs -- physical consequences… Placing C# in an IoT system -- gateways, back ends, tools and… Querying device history with time windows, aggregates… Weighing what a managed IoT service does against its… Comparing local-only, self-hosted, managed-cloud and… Ingesting telemetry from a broker into a store with validation… Choosing a relational table, a time-series database or a documen… Choosing clean or persistent sessions and reasoning about… Naming the roles in a connected system (device, gateway,… Recognizing at-least-once delivery and making a receiver…

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.