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

What you'll be able to do

By the end of the path you will be able to:

  1. PO1 Explain how embedded and IoT systems differ from computers and web apps, and plan a device for the place it's installed (IO1).
  2. 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).
  3. 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).
  4. PO4 Make firmware reliable with interrupts, tasks, watchdogs, retries and safe state through resets and power cuts (IO4).
  5. PO5 Read and drive the physical world with GPIO, ADC and PWM, drive loads safely, and judge a sensor's accuracy (IO5).
  6. PO6 Talk to chips over I2C, SPI and UART, and write a driver from a datasheet that checks, waits, retries and saves power (IO6).
  7. PO7 Send data from devices to the cloud with MQTT or CoAP, with good topics, QoS, status, last wills and per-device security (IO7).
  8. 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).
  9. PO9 Secure devices and update them safely with signed images, two slots, trial boots, rollback and staged rollouts (IO9).
  10. 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:

  1. Install Python 3.11 or newer from python.org. Check: python --version (or python3 --version) prints 3.11 or newer.
  2. Download the starter kit from this path's Projects page and unzip it. In a terminal, go to the jalsetu folder.
  3. Create and activate a virtual environment: python -m venv venv, then source venv/bin/activate (on Windows, venv\Scripts\activate).
  4. 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.
  5. 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

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:

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
← BackIoT and Smart Systems Engineer
ProLearners Assist