Full-stack embedded engineer — firmware to cloud, C++ to JavaScript, hardware to dashboard.
I design and ship the entire stack for energy IoT — from bare-metal ESP32 firmware in C++ to cloud orchestration in Node.js, running on 3500+ devices in production across Belgium and the Netherlands.
At Dots Energy — smart meter hardware (ESP32-S3) that reads Dutch/Belgian DSMR P1 ports, with NIS2-compliant encrypted transport, remote OTA firmware updates, and built-in Modbus gateways.
At Smart-E-Grid — the backend platform that controls solar inverters, batteries, heat pumps and EV chargers in real-time for energy flexibility markets (FCR, aFRR, imbalance).
┌─────────────────────────────────────────────────────────┐
│ HARDWARE ESP32-S3 / ESP32-C3 custom PCBs │
│ FIRMWARE C++ / FreeRTOS / nanopb / MQTT(S) │
│ PROTOCOLS Modbus TCP/RTU, MQTT, SunSpec, DSMR │
│ OTA Chunk-based firmware updates + SHA256 │
├─────────────────────────────────────────────────────────┤
│ BACKEND Node.js / Node-RED / Java │
│ DEVICE MGMT 3500+ devices, FlowFuse Cloud │
│ CONTROL 26 custom nodes for energy assets │
│ REAL-TIME <10ms grid response, VPP orchestration│
├─────────────────────────────────────────────────────────┤
│ BRANDS SMA, Huawei, SolarEdge, Sungrow, │
│ Fronius, GoodWe, Growatt, Sonnen, │
│ Alfen, ETREL │
└─────────────────────────────────────────────────────────┘
I don't just write firmware or just write backend — I build the complete pipeline from the copper trace on the PCB to the API call that dispatches a battery.
| 3500+ | devices in production |
| 26 | custom Node-RED nodes published |
| <10ms | grid frequency response time |
| 65% | bandwidth reduction via binary protocols |
| 10s | telemetry interval across entire fleet |
node-red/node-red — core runtime fixes, all merged into main:
#5438prevent uncaught exceptions in core node event handlers#5392prevent uncaught exceptions in http-request async hooks#5462fix race condition in localfilesystem context store during shutdown#5461fix double resolve in node close callback#5457fix incorrect array modification in delay node
yaacov/node-modbus-serial — the most used Modbus library for Node.js:
#610fix missing worker files in package
All found through running 3500+ devices in production — these are bugs you only find at scale.
| Layer | Stack |
|---|---|
| Firmware | C/C++, FreeRTOS, nanopb, Arduino, ESP-IDF |
| Hardware | ESP32-S3, ESP32-C3, STM32, custom PCBs |
| Protocols | Modbus TCP/RTU, MQTT/TLS, SunSpec, DSMR P1, OPC UA |
| Backend | Node.js, Java, Node-RED, FlowFuse |
| Data | InfluxDB, Grafana, FastAPI |
| Security | NIS2 compliant, TLS 1.3, SHA256 verification, encrypted OTA |
- Scaling the fleet from 3500 to 10000+ devices
- Sub-millisecond frequency detection for FCR markets
- Cross-brand Modbus middleware for residential and C&I assets
- Remote device management and OTA at scale
Building the infrastructure that turns every home and business into a grid participant.

