IoT developer
Connect devices to networks and the cloud, from the sensor on the wall to the dashboard on a phone.
What it is day to day
- Write firmware for small WiFi or Bluetooth boards that read sensors and control outputs.
- Send data to a server or a home automation system over HTTP or MQTT, and handle the network dropping out.
- Write the code on the other side too: a small web page, an API or a script that stores and shows the data.
- Think about power and security: devices that run on batteries for months and do not leak passwords.
- Test devices in the field, where WiFi is weak and people do unexpected things.
The courses, in order
Each course builds on the one before. Every lesson runs in your browser, free, with nothing to install.
- Step 1
Python from zero
Beginner Python on a Raspberry Pi: print, variables, decisions, loops, lists, functions, dicts and strings, then a button with gpiozero and a working pedestrian crossing.
- Step 2
Embedded on the Arduino Uno
One board, twenty pins and a C++ sketch. From a lamp you switch to a game you can play.
- Step 3
Interactive devices on the Uno
Read people and sensors without blocking, control an output, then finish with two playable builds.
- Step 4
Talk to chips: I2C, SPI and UART
The three buses every sensor, screen and radio speaks, on the Uno: serial between two boards, I2C scans and shared buses, SPI screens and an SD card, the logic analyzer, and a weather station that uses them all.
- Step 5
Embedded on the ESP32-C3
A 32 bit RISC-V board at 160 MHz. Its own peripherals, its own 3.3 V rules, and a console at the end of it.
- Step 6
Embedded on the Raspberry Pi Pico
A dual core Cortex-M0+ at 125 MHz. PWM on every pin, a 64 bit clock, and pins that do not forgive 5 V.
- Step 7
MicroPython on the Pico
Real Python on a Raspberry Pi Pico: blink and the REPL, buttons and if, loops and PWM, a knob on the ADC, lists and functions on an LED bar, an OLED on I2C, and a reaction game boss.
- Step 8
Connected devices
WiFi, APIs, a web server, MQTT, ESP-NOW and BLE on the ESP32, and a device that keeps going when the network does not.
- Step 9
Python with real habits
Advanced Python on a Raspberry Pi, after Python from zero: modules, classes, exceptions, files and logging, tests with plain assert, generators, and a sensor logger that uses them all.
- Step 10
Debug like an engineer
The multimeter, the oscilloscope, the logic probe and analyzer, Serial done right, and a method that finds any fault. Ends with a boss: three bugs in one circuit.
- Step 11
Low power products
Make a battery last years: where an Uno’s current goes, sleep modes and wake sources, a power budget on a bare chip, measuring with a meter and an INA219, battery life checked against a draining cell, and a coin cell node.
- Step 12
Software design and testing
How teams keep firmware right as it grows: readable code, modules behind narrow interfaces, fakes, tests on boot, test-first fixes, safe refactors and code review. Ends with a messy sketch refactored under test.
- Step 13
Firmware architecture
How a whole device is put together on the Uno: a scheduler and state machines, ISRs that only record, drivers behind interfaces, checked settings in EEPROM, error codes and the watchdog, safe updates, and a layered multi-sensor boss.
- Step 14
Portfolio and interviews
Turn finished projects into a job search: choose and document portfolio pieces, share links that run, read job posts and answer technical questions out loud.
Your skills checklist
- Python basics: data, functions and filesPython from zero
- Read sensors and drive outputs from a boardEmbedded on the Arduino Uno
- Non-blocking code that handles many things at onceInteractive devices on the Uno
- Sensors over I2C, SPI and UARTTalk to chips: I2C, SPI and UART
- WiFi boards and their 3.3 V rulesEmbedded on the ESP32-C3
- MicroPython on a real boardMicroPython on the Pico
- WiFi, HTTP, JSON and devices that talk to a serverConnected devices
- Python tools with modules, errors and testsPython with real habits
- Battery life: sleep modes and measuring currentLow power products
Projects to build and show
Open one, run it, change it, then share your version as a link that runs. The last course in this guide shows how to write each one up.
Home Assistant multisensor
Four sensors on one board, the way smart home devices are built.
After Mokxi, in the real world
Mokxi teaches the skills; employers, schools and licensing boards set their own rules. These are the common routes, and they vary by place.
Training and education
- IoT developers come from computer engineering, electrical engineering and computer science degrees, and from software or embedded jobs with strong connected projects.
- Community college programs in electronics, networking or computer engineering technology are a common start.
- Learn the basics of networking (IP addresses, DNS, HTTP, TLS) and one home automation platform. Build a device you leave running at home for a month.
Certifications
- No single certification is expected. Some people add a cloud provider certification or a networking certification for roles that lean that way.
- Security matters more every year in IoT. Learning the basics of keeping secrets off devices and updating firmware safely is worth more than a badge.
Entry-level titles to search
- Junior IoT developer
- IoT firmware engineer
- Embedded software engineer (connected devices)
- IoT solutions engineer
- Smart home technician
- Associate embedded developer
Questions you may be asked
Short answers drawn from the courses. Say each one out loud, then check it on a circuit.
What is MQTT, and why use it instead of HTTP?
MQTT is a light publish and subscribe protocol: devices send messages to topics on a broker, and anything subscribed gets them. It suits small devices and many listeners better than one HTTP request per reading.
What happens to your device when WiFi drops?
It should notice, keep working locally, retry with a growing delay, and buffer or drop readings on purpose. It should never hang waiting for the network.
How would you make a battery sensor last longer?
Sleep most of the time, wake on a timer or an interrupt, take a reading, send it in one short burst and sleep again. Measure the current in each state to know where the energy goes.
What is JSON?
A text format for structured data: objects with named fields, lists, strings and numbers. Most web APIs send and receive it.
Where should a WiFi password live on a device?
Not in code you share or put in version control. Store it in the device's settings storage, set during setup, and keep it out of logs.
Why do 3.3 V boards need care with 5 V parts?
Their pins are not 5 V tolerant in many cases. A 5 V signal can damage them, so you use a level shifter or a divider on inputs.
What is the difference between polling and an interrupt?
Polling checks again and again whether something happened. An interrupt lets the hardware call your code when it does, so the processor can sleep or do other work in between.
How do you update firmware on devices already installed?
Over the air: the device downloads a new image, checks it is complete and genuine, writes it to a spare slot and only switches if it boots correctly.
Tell me about a connected project you built.
Describe the device, the data path from sensor to screen, one problem with the network or power and how you solved it. Show the link.
Step 1 is Python from zero
Beginner Python on a Raspberry Pi: print, variables, decisions, loops, lists, functions, dicts and strings, then a button with gpiozero and a working pedestrian crossing.