Who this is for
- You have a device idea — a controller, a sensor node, a gateway — and need it to talk to a server reliably over LTE, Wi-Fi or a local radio link.
- You have an ESP32 project that works on the bench and fails in the field: reconnect storms, modem hangs, heap leaks, watchdog resets.
- You need a board designed or reviewed in KiCad and the firmware that brings it up.
- You want the whole thing — hardware, firmware, server, dashboard — from one person who has shipped exactly that.
What a session looks like
We open a Zoom / Yandex Telemost call, I share the screen, and the work happens in front of you: the editor, the serial console, the modem's AT log, the oscilloscope screenshot if it comes to that. You ask questions and redirect as we go. Commits go to your repository. The timer stops when you say stop; the first 15 minutes are free so we can check the fit. Longer blocks are the same rate; invoices per session or weekly.
What I actually do
- ESP-IDF 5.x, C/C++17, PlatformIO — task design, watchdogs, NVS, RTC memory, deep sleep, OTA with rollback.
- Cellular — SimCom A7672E / A7682E and SIM800C: PPP over 3GPP 27.010 CMUX with a parallel AT channel, PDP handling, SMS, and a recovery ladder that survives carrier CGNAT blackholes.
- Connectivity — MQTT (EMQX), ESP-NOW with acknowledgements and deduplication between boards, isolated RS-485, DALI.
- Hardware — KiCad schematics and layouts, mains and isolation design rules, LCSC/JLCPCB-stockable BOMs, gerbers and interactive BOMs, bring-up.
- Server side — FastAPI, PostgreSQL/TimescaleDB telemetry, schedulers, OTA pipelines, SvelteKit dashboards, Telegram bots.
Proof
- FOURLEDS Cloud Controllers — six KiCad boards (ESP32-C3 + A7672E core, relay, sensor, DALI), ESP-IDF firmware with a five-step recovery ladder and an RTC-surviving stability log, a fleet server and dashboard; ~18 sites of architectural lighting on heritage buildings, about 109 000 lines in total.
- Script-generated LTE controller — a complete 220 V lighting controller board (ESP32-S3, A7682E, four 16 A relays, eight opto-isolated mains inputs) generated from Python in one day.
- Ultralight IP CAM Viewer — 17 000 lines of C on FFmpeg/SDL2 running 15 cameras on an old office PC: the same discipline about threads and memory that firmware needs.
How to start
Write me what the device should do and what it does instead. I reply with a time slot. Bring the schematic, the repo or the serial log — whatever you have.