IoT and Smart Systems Engineer · path guide
IoT and Smart Systems Engineer: path guide
Read this before you start. It explains what the role is, what you'll be able to do at the end, which core lessons you need, how to set up your tools, what it may cost and how long it really takes.
The role
An IoT and smart systems engineer builds connected devices and the systems around them: the firmware on a small chip, the sensors and parts it talks to, the way its data reaches the cloud, and the way thousands of devices are kept secure and up to date. They work with limits a web app rarely meets: a battery that must last a year, a few hundred kilobytes of memory, networks that drop for days, power that can be cut mid-write, and devices nobody can reach once they're installed. They read datasheets, write drivers, plan power budgets, design messaging that copes with drops, and release signed updates in stages. Success is measured by devices that keep working, and keep their data, in the place they're installed, not by how they behave on the developer's desk.
Everyday applications
- A water tank monitor in a village that reports a failed pump within the hour and runs for over a year on one battery.
- A cold-chain tracker in a lorry that logs temperatures without signal and uploads them at the depot.
- A smart meter that keeps hourly readings through a week-long network outage, and counts each one once.
- A farm soil sensor that sends a reading only when something changes, and checks in every hour so silence means a problem.
- A firmware fix that reaches 5% of devices first, rolls back by itself on any device where it fails, and stops before it reaches the rest.
What you'll be able to do
By the end of the path you will be able to:
- PO1 Explain how embedded and IoT systems differ from computers and web apps, and plan a device for the place it's installed (IO1).
- PO2 Write and organise firmware in MicroPython-style Python with a wake cycle, non-blocking timing and planned memory, and test it without hardware (IO2).
- PO3 Work out a device's power use, use sleep modes and radio time well, and write and check a power budget for a year or more on a battery (IO3).
- PO4 Make firmware reliable with interrupts, tasks, watchdogs, retries and safe state through resets and power cuts (IO4).
- PO5 Read and drive the physical world with GPIO, ADC and PWM, drive loads safely, and judge a sensor's accuracy (IO5).
- PO6 Talk to chips over I2C, SPI and UART, and write a driver from a datasheet that checks, waits, retries and saves power (IO6).
- PO7 Send data from devices to the cloud with MQTT or CoAP, with good topics, QoS, status, last wills and per-device security (IO7).
- PO8 Keep data through drops and power cuts with a flash buffer, backoff and edge filtering, and handle duplicates and gaps on the server (IO8).
- PO9 Secure devices and update them safely with signed images, two slots, trial boots, rollback and staged rollouts (IO9).
- PO10 Combine all of this in three tested projects and a capstone on the JalSetu practice kit (IO10).
The coverage of each outcome by lessons, quizzes and the path test is listed at the end of this guide.
How it compares with neighbouring paths
| Path | Main question | Overlap with this path | Working together |
|---|---|---|---|
| Backend Developer | Does the server do its job correctly? | APIs, idempotency, databases | They build the service that stores readings; you agree its formats, keys and how resends are handled |
| Cloud / DevOps Engineer | Does the system run, deploy and recover? | Brokers, monitoring, release pipelines | They run the broker and update servers; you build the devices and the firmware they release |
| Mobile App Developer | Does the phone app work offline and in people's hands? | Offline sync, battery, Bluetooth | They build the app people use to see and set up devices; you build the devices it talks to |
| Cybersecurity Specialist | Where are the weaknesses, and how are they tested? | Device identity, signing, keys | They test devices and their update path; you build signing, per-device credentials and safe defaults in |
| Data Engineer / Analyst | Is the data correct, and what does it show? | Time series, gaps, duplicates | They analyse the readings; you make sure each one arrives once, with its own time and units |
The difference in one line: other paths build for computers that are always on and reachable; this path builds for small devices that sleep, lose power and lose signal, in places you can't get to.
Before you start: core lessons to know
The path opens after you pass the final examination. These core modules matter most; revisit them if the entry diagnostic shows a gap:
| You'll need | Core modules |
|---|---|
| How computers and systems work | Module 1, Module 2, Module 63 |
| Networks | Module 4, Module 5 |
| Programming | Module 17, Module 21, Module 22, Module 23, Module 24 |
| APIs, data and testing | Module 25, Module 26, Module 57 |
| Cloud and delivery | Module 68, Module 71, Module 72 |
| Security and privacy | Module 73, Module 76, Module 77, Module 79 |
| Systems at scale | Module 94, Module 96 |
Setup guide
Tested on 2 November 2026 on Linux. Versions change, so check each tool's official page when you install. The practice kit pins its
packages in requirements.txt, so everyone installs the same versions.
| Tool | Version tested | What it's for | Cost for learning |
|---|---|---|---|
| Python | 3.13.18 (3.11 or newer works) | Running the firmware on the simulated board, the tests and the tools | Free, open source |
| pytest | 9.2.0 (installed from requirements.txt) |
The kit's 28 tests | Free, open source |
| paho-mqtt | 2.1.0 (installed from requirements.txt) |
A standard MQTT client the tests use to check your messages | Free, open source |
| cryptography | 50.0.2 (installed from requirements.txt) |
Ed25519 keys and signatures for updates | Free, open source |
| A code editor | VS Code or any editor | Editing firmware, settings and documents | Free |
| An MQTT client (optional) | not verified | Watching messages from the practice broker on port 1884 | Free, open source options exist; not needed to pass |
| A development board and sensor (optional) | not verified | Trying your firmware on real hardware, for example an ESP32-class board with MicroPython | Boards and sensors cost money; not needed to pass |
Install:
- Install Python 3.11 or newer from python.org. Check:
python --version(orpython3 --version) prints 3.11 or newer. - Download the starter kit from this path's Projects page and unzip it. In a terminal, go to the
jalsetufolder. - Create and activate a virtual environment:
python -m venv venv, thensource venv/bin/activate(on Windows,venv\Scripts\activate). - Run
pip install -r requirements.txt. It installs the three packages and their dependencies (about 46 MB) in under a minute on a good connection. - Run
python tools/simulate.py --days 7. You should see a report of wakes, Wi-Fi attempts, charge used and battery life.
Verify your setup: run pytest in the jalsetu folder. In the starter all 28 tests fail on purpose; what matters is that the
tests start, list 28 checks and finish, which takes a few seconds.
Windows and macOS: we could only verify Linux on 2 November 2026, so Windows and macOS are marked "not verified" in the kit. The commands are the same apart from activating the virtual environment.
Hardware and accounts
- Computer: a laptop from the last 6 to 8 years with 4 GB of memory and about 500 MB of free disk space.
-
No hardware or paid accounts are needed. The kit runs on your own computer, with a simulated board, sensor, flash, Wi-Fi, update server and MQTT broker. JalSetu's water committee, site and device (listed by ID only) and its tank readings are invented, and the current figures are illustrative. Passing the tests shows your firmware handles these cases; it doesn't prove a real board, sensor or network behaves the same way.
-
Optional: if you try real hardware, use low voltages, follow each part's datasheet, keep water away from the electronics, and keep Wi-Fi passwords and keys out of shared files.
Workload
Times are realistic estimates for a learner who has finished the core programme. They are not measured averages.
| Part | Reading | Practice (Try it tasks) | Module assignment | Total |
|---|---|---|---|---|
| IO1–IO9 (each module) | about 2½ to 3 hours | about 2 to 3 hours | about 3 to 5 hours | about 7½ to 11 hours |
| IO1–IO9 together | about 26 hours | about 26 hours | about 36 hours | about 88 hours |
| IO10 capstone: the three projects and the capstone checks | about 2 hours | about 2 hours | about 40 to 50 hours | about 44 to 54 hours |
| Path test and revision | — | — | — | about 3 hours |
| Whole path | about 135 to 145 hours |
At 8 to 10 hours a week that is about 14 to 18 weeks.
How completion works
You complete the path when all of these are true, as shown on your completion record:
- every lesson is marked done;
- every module quiz is passed (70% or more);
- the path test is passed (70% or more);
- the three projects and the capstone are self-checked complete, with evidence links and your explanations.
Projects are self-checked for now: you tick the marking guide yourself and save your evidence on this device. Review by a team is planned for later; until then nothing on this site says a reviewer has approved your work. Progress is saved in this browser only, so download a backup from My progress now and then.
Outcome coverage
| Outcome | Taught in | Practised in | Assessed in |
|---|---|---|---|
| PO1 | IO1 lessons 1–5 | IO1 assignment | IO1 quiz; path test IO1 questions; capstone design notes (section 1) |
| PO2 | IO2 lessons 1–5 | IO2 assignment | IO2 quiz; path test IO2 questions; Project 1 (tests 5, 6); capstone design notes (section 1) |
| PO3 | IO3 lessons 1–5 | IO3 assignment | IO3 quiz; path test IO3 questions; Project 1 (tests 4, 5, 7 to 10) |
| PO4 | IO4 lessons 1–5 | IO4 assignment | IO4 quiz; path test IO4 questions; Project 1 (tests 3, 6); Project 3 (test 6) |
| PO5 | IO5 lessons 1–5 | IO5 assignment | IO5 quiz; path test IO5 questions; capstone design notes (section 2) |
| PO6 | IO6 lessons 1–5 | IO6 assignment | IO6 quiz; path test IO6 questions; Project 1 (tests 1, 2, 3, 4); capstone design notes (section 2) |
| PO7 | IO7 lessons 1–5 | IO7 assignment | IO7 quiz; path test IO7 questions; Project 2 (tests 4, 5, 6, 8); capstone design notes (section 3) |
| PO8 | IO8 lessons 1–5 | IO8 assignment | IO8 quiz; path test IO8 questions; Project 2 (tests 1, 2, 3, 7, 9, 10); capstone design notes (section 3) |
| PO9 | IO9 lessons 1–5 | IO9 assignment | IO9 quiz; path test IO9 questions; Project 3 (tests 1 to 8); capstone design notes (section 4) |
| PO10 | IO10 lessons 1–5 | Projects 1–3 | IO10 quiz; path test IO10 questions; capstone self-check |
