About iot-engineer
iot-engineer is a development skill for designing IoT systems, embedded firmware, and device connectivity. It covers the path from device to cloud, including power management, edge AI, and security considerations.
Key features
- 01End-to-end IoT architecture guidance
- 02Firmware for ESP32, STM32, and Nordic nRF
- 03MQTT v5 and wireless protocol selection
- 04Battery and power optimization
- 05TinyML deployment guidance
- 06IoT security review guidance
Use cases
- 01Planning a device-to-gateway-to-cloud system
- 02Implementing MQTT messaging patterns
- 03Reducing power use in battery devices
- 04Deploying anomaly detection on ESP32
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill iot-engineerAfter installing, type/iot-engineerin Claude Code to confirm it loaded.
Details
From the project READMEIoT Engineer
Purpose
Provides Internet of Things development expertise specializing in embedded firmware, wireless protocols, and cloud integration. Designs end-to-end IoT architectures connecting physical devices to digital systems through MQTT, BLE, LoRaWAN, and edge computing.
When to Use
- Designing end-to-end IoT architectures (Device → Gateway → Cloud)
- Writing firmware for microcontrollers (ESP32, STM32, Nordic nRF)
- Implementing MQTT v5 messaging patterns
- Optimizing battery life and power consumption
- Deploying Edge AI models (TinyML)
- Securing IoT fleets (mTLS, Secure Boot)
- Integrating smart home standards (Matter, Zigbee)
2. Decision Framework
Connectivity Protocol Selection
What are the constraints?
│
├─ **High Bandwidth / Continuous Power?**
│ ├─ Local Area? → **Wi-Fi 6** (ESP32-S3)
│ └─ Wide Area? → **Cellular (LTE-M / NB-IoT)**
│
├─ **Low Power / Battery Operated?**
│ ├─ Short Range (< 100m)? → **BLE 5.3** (Nordic nRF52/53)
│ ├─ Smart Home Mesh? → **Zigbee / Thread (Matter)**
│ └─ Long Range (> 1km)? → **LoRaWAN / Sigfox**
│
└─ **Industrial (Factory Floor)?**
├─ Wired? → **Modbus / Ethernet / RS-485**
└─ Wireless? → **WirelessHART / Private 5G**
Cloud Platform
| Platform | Best For | Key Services |
|---|---|---|
| AWS IoT Core | Enterprise Scale | Greengrass, Device Shadow, Fleet Provisioning. |
| Azure IoT Hub | Microsoft Shops | IoT Edge, Digital Twins. |
| GCP Cloud IoT | Data Analytics | BigQuery integration (Note: Core service retired/shifted). |
| HiveMQ / EMQX | Vendor Agnostic | High-performance MQTT Broker. |
Edge Intelligence Level
- Telemetry Only: Send raw sensors data (Temp/Humidity).
- Edge Filtering: Send only on change (Deadband).
- Edge Analytics: Calculate FFT/RMS locally.
- Edge AI: Run TFLite model on MCU (e.g., Audio Keyword Detection).
Red Flags → Escalate to security-engineer:
- Hardcoded WiFi passwords or AWS Keys in firmware
- No Over-The-Air (OTA) update mechanism
- Unencrypted communication (HTTP instead of HTTPS/MQTTS)
- Default passwords (
admin/admin) on gateways
Workflow 2: Edge AI (TinyML) on ESP32
Goal: Detect "Anomaly" (Vibration) on a motor.
Steps:
-
Data Collection
- Record accelerometer data (XYZ) during "Normal" and "Error" states.
- Upload to Edge Impulse.
-
Model Training
- Extract features (Spectral Analysis).
- Train K-Means Anomaly Detection or Neural Network.
-
Deployment
- Export C++ Library.
- Integrate into Firmware:
#include <edge-impulse-sdk.h> void loop() { // Fill buffer with sensor data signal_t signal; // ... // Run inference ei_impulse_result_t result; run_classifier(&signal, &result); if (result.classification[0].value > 0.8) { // Anomaly detected! sendAlertMQTT(); } }
4. Patterns & Templates
Pattern 1: Device Shadow (Digital Twin)
Use case: Syncing state (e.g., "Light ON") when device is offline.
- Cloud: App updates
desiredstate:{"state": {"desired": {"light": "ON"}}}. - Device: Wakes up, subscribes to
$aws/things/my-thing/shadow/update/delta. - Device: Sees delta, turns light ON.
- Device: Reports
reportedstate:{"state": {"reported": {"light": "ON"}}}.
Pattern 2: Last Will and Testament (LWT)
Use case: Detecting unexpected disconnections.
- Connect: Device sets LWT topic:
status/device-001, payload:OFFLINE, retain:true. - Normal: Device publishes
ONLINEtostatus/device-001. - Crash: Broker detects timeout, auto-publishes the LWT payload (
OFFLINE).
Pattern 3: Deep Sleep Cycle (Battery Saving)
Use case: Running on coin cell for years.
void setup() {
// 1. Init sensors
// 2. Read data
// 3. Connect WiFi/LoRa (fast!)
// 4. TX data
// 5. Sleep
esp_sleep_enable_timer_wakeup(15 * 60 * 1000000); // 15 mins
esp_deep_sleep_start();
}
6. Integration Patterns
backend-developer:
- Handoff: IoT Engineer sends data to MQTT Topic → Backend Dev triggers Lambda/Cloud Function.
- Collaboration: Defining JSON schema / Protobuf definition.
- Tools: AsyncAPI.
data-engineer:
- Handoff: IoT Engineer streams raw telemetry → Data Engineer builds Kinesis Firehose to S3 Data Lake.
- Collaboration: Handling data quality/outliers from sensors.
- Tools: IoT Analytics, Timestream.
mobile-app-developer:
- Handoff: Mobile App connects via BLE to Device.
- Collaboration: Defining GATT Service/Characteristic UUIDs.
- Tools: nRF Connect.