Lead Software Engineer @ IBM · Open-source maintainer · ESP32 / Arduino developer · Photographer & astrophotographer
I build distributed software, work on embedded systems and connected devices, and spend clear nights collecting photons.
I'm a software engineer with 20+ years of experience across Java, C++, embedded systems, networking and distributed software.
- 💼 IBM — Terracotta R&D: Lead Software Engineer since 2015, working on distributed caching and data-storage technologies including Ehcache and Terracotta Store (Terracotta OSS).
- 🧩 Open source: creator and maintainer of a collection of Arduino / ESP32 projects and libraries, and an active maintainer of the ESP32Async ecosystem.
- ⚡ Embedded & energy: asynchronous networking, power metering, solar power diversion, MQTT, Home Assistant and ESPHome.
- 📷 Photography: my photography portfolio and Flickr photostream.
- 🌌 Astrophotography: deep-sky, lunar and solar imaging on AstroBin.
I enjoy moving between low-level firmware and large-scale software systems — and turning practical problems into documented, reusable projects.
An open-source ESP32 solar power diverter. It uses surplus photovoltaic production to drive a resistive load, typically a water heater, with fine-grained power control.
Project: yasolr.carbou.me · Source code · Documentation
🐝 Beelance
An autonomous, remotely connected beehive scale. It monitors hive weight and temperature, and sends measurements over LTE-M / NB-IoT or standard LTE / 4G connectivity.
Project: beelance.carbou.me · Source code
The original Maven plugin for managing source-file license headers. It supports checking, formatting and removing headers, reusable templates, custom properties, multi-licensing and dependency-license enforcement.
Project: Documentation · Source code
ESP32 firmware for measuring camera shutter speeds — a project where photography and embedded engineering meet.
Project: Documentation · Source code
A collection of reusable ESP32 building blocks, including MycilaESPConnect (Wi-Fi / Ethernet connectivity), MycilaJSY (energy metering), MycilaSafeBoot (OTA recovery), and MycilaDimmer (AC power control). The full catalogue is below.
I maintain two widely used asynchronous networking libraries in the ESP32Async organization:
- ESPAsyncWebServer — asynchronous HTTP and WebSocket server, with support for SSE, middleware, authentication, file serving and more.
- AsyncTCP — asynchronous TCP networking for ESP32 Arduino; the networking foundation used by ESPAsyncWebServer.
The repositories under ESP32Async are the active upstream projects. My older personal repositories for these libraries are archived.
I have contributed extensively to ESP-DASH and ESP-DASH Pro, the embedded dashboard projects created by Ayush Sharma, founder of SOFTT.
A notable contribution is the memory-optimized C++ backend introduced in ESP-DASH v5, which I reworked. Earlier contributions included memory and WebSocket improvements, transfer-performance work, and compatibility fixes for Arduino 3 / ESP-IDF 5.
- WebSerial / WebSerial Pro — fixes and performance improvements for browser-based serial monitoring.
- Arduino-ESP32 core — fixes and WebServer improvements, including middleware support.
- pioarduino — contributions and collaboration around the PlatformIO Espressif32 platform.
The Arduino Open Source Report 2025 lists Mathieu Carbou with 154 library releases in 2025 and ESP32 Asynchronous Networking with 40 releases. The report's ranking is based on release frequency.
Read the report · Arduino Forum discussion
A collection of small, focused libraries for building connected ESP32 applications. Most are published under the Mycila name.
⚡ Power, metering & control
- MycilaJSY — drivers for JSY single-phase and three-phase bidirectional energy meters.
- MycilaJSYApp — web application for JSY energy meters.
- MycilaPZEM — PZEM-004T power and energy meter.
- MycilaPulseAnalyzer — zero-cross pulse analysis.
- MycilaDimmer — TRIAC, SSR and voltage-regulator dimming.
- MycilaRelay — electromagnetic and solid-state relay control.
🌐 Connectivity & Home Assistant
- MycilaESPConnect — Wi-Fi / Ethernet network manager with captive portal.
- MycilaMQTT — MQTT / MQTTS helper based on Espressif's MQTT client.
- MycilaHADiscovery — Home Assistant MQTT Discovery.
- MycilaNTP — NTP time synchronization.
- MycilaWebSerial — lightweight browser-based serial monitor.
🧠 Runtime, diagnostics & system
- MycilaConfig — application configuration.
- MycilaDataLogger — remote serial logs, crashes and stack traces.
- MycilaLogger — logging utilities.
- MycilaSafeBoot — web-based OTA recovery partition.
- MycilaSystem — system-level helpers.
- MycilaTaskManager — task management utilities.
- MycilaTaskMonitor — FreeRTOS task priorities and stack monitoring.
- MycilaTrial — trial-period support for embedded applications.
- MycilaUtilities — time, string, circular-buffer and general utilities.
🖥️ Hardware & displays
- MycilaDS18 — Dallas / Maxim temperature sensors.
- MycilaEasyDisplay — OLED displays, virtual displays and carousels.
- MycilaTrafficLight — traffic-light LED control.
I also publish practical configurations, integrations and technical notes around solar production, energy metering and home automation:
- Home Assistant + OpenDTU: inverter zero-injection
- 3ERL Zero-Inject instructions & daily PRE+ estimate
- Linky Teleinformation (TIC) + ESPHome + Home Assistant
- Home Assistant + RTE Tempo + Shelly
- Home Assistant OpenEVSE integration via MQTT
Browse all my GitHub Gists for more snippets and examples. You can also explore all my public repositories.
- License Maven Plugin — Maven license-header management.
- Mycila Guice — extensions for Google Guice.
- Mycila PubSub — in-process publish / subscribe event system.
- Mycila XML Tool — fluent XML manipulation utilities.
Photography and astrophotography are a big part of my life outside software engineering.
- 📷 Photography portfolio: mathieu.photography
- 🖼️ Flickr photostream: flickr.com/photos/mathieucarbou
- 🌌 Astrophotography gallery: AstroBin — mathieucarbou
- Solar routing: Shelly Solar Diverter · Home Assistant Solar Router
- Power electronics: Zero-Cross Pulse Detection · Why a good ZCD circuit matters
- Energy metering: Everything about JSY meters · JSY-MK-194G · Remote JSY over UDP
- Bootstrap the Montreal Java User Group in 2010 and was involved for around 10 years.
- Formerly involved with Devoxx4Kids Québec.
Interested in embedded systems, asynchronous networking, distributed software, home automation, energy or photography?
GitHub · LinkedIn · Personal website · Photography · AstroBin






