Embedded systems · Full-stack
I build embedded firmware
and full-stack web
applications.
I am a freelance engineer specialising in embedded software, with experience in full-stack web development. Based in France and available for remote work with clients across Europe.
Profile
Embedded software engineer with full-stack experience.
I am an embedded software and electronics engineer. Over the past few years I have worked in C and Python on real-time systems, across both industry and academic projects in France and Egypt. My work focuses on low-level development: writing and debugging drivers, working with registers over JTAG, and integrating hardware with software, from NAND flash error correction to USB device stacks.
More recently I have also worked on the web side, building progressive web applications with Next.js and PostgreSQL. This allows me to contribute across the full stack, from the microcontroller on the board to the user-facing application.
Selected work
Project index
A selection of client and personal projects.
01 NAND flash integrity & FATFS reliability FAMECA Electronics · Client EMB · FW ’25-26
I implemented BCH4 and BCH8 error-correcting algorithms in the NAND flash drivers to maintain data integrity despite wear and bit-flips. I also debugged and fixed issues in the FATFS file system, improving file handling and storage stability on the production devices.
02 Progressive web apps & APIs iN! SA, Switzerland · Client WEB ’25
Development of progressive web applications with Next.js and PostgreSQL, with a focus on performance and scalability.
03 LightButtonBox, a sim-racing controller Personal project · Personal EMB · HID ’25
A complete project covering both firmware and desktop software. The firmware sends button and analog-pedal events over USB as formatted messages such as (BTN1_PRESSED) and (THROTTLE:12345). A Windows application maps these to either keyboard input or a virtual joystick through the vJoy driver, and handles port selection, mode switching, analog pedals, a developer console, and automatic configuration saving. ESP32-C3 firmware and a flashing kit are planned.
04 LazyOS, a micro-OS for embedded Personal project · WIP · Personal EMB · RTOS ’25
A work-in-progress micro-operating system for embedded boards, currently targeting the ESP32-C3. I developed it to deepen my understanding of operating-system design and to provide a reusable base for my own projects. It includes a lightweight kernel, a cooperative and priority-based scheduler, a task manager, a hardware abstraction layer for GPIO, timers and peripherals, an IPC system, timer utilities, and a serial command-line shell for debugging over USB-JTAG. It is designed to be modular and portable across microcontroller families. Written in C and under active development.
05 USB device stack & One-Wire drivers FAMECA Electronics · Client EMB · FW ’24
I developed the low-level drivers for the USB-CDC and USB-MSC device classes and the One-Wire bus, and integrated a local file system for efficient on-device data storage. I later returned as a freelancer in 2026 to resolve edge cases in the CDC driver.
06 Production gauge auto-flashing FAMECA Electronics · Client EMB · TOOLING ’24
I automated the firmware flashing process for gauges on the production line, removing a manual bottleneck and making device programming fast and repeatable.
07 LIDAR navigable-area detection Academic project · Academic ROBOTICS · PERCEPTION ’23-24
A real-time navigation system that converts LIDAR scans into occupancy grids, detects obstacles, and plans a path that adapts as the environment changes. It performed autonomous navigation through complex routes with dynamic obstacle handling, demonstrating that low-cost LIDAR is sufficient for accurate navigation.
08 Facial-recognition attendance system Academic project · Academic VISION ’22-23
A face detection and recognition system built in Python and OpenCV and connected to a student database. It logged recognised students automatically with timestamps to prevent proxy attendance, and achieved over 95% accuracy under controlled conditions.
Track record
Experience
Maintenance and bug fixes for the USB-CDC driver.
NAND error correction (BCH4/BCH8) and FATFS reliability.
Development of Next.js and PostgreSQL progressive web applications. Ongoing engagement.
USB and One-Wire drivers, gauge flashing automation, local file system.
Image processing for object sorting and classification, and early-stage hardware/software integration.
Toolbox
What I work with
Languages
- C
- Embedded C
- C++
- Python
- Bash
- TypeScript
Embedded & RTOS
- Real-time systems
- Driver development
- RTOS / kernel design
- HAL
- JTAG debug/flash
- FreeRTOS
Serial protocols
- I²C
- SPI
- UART
- One-Wire
- CAN
- USB
Vision & robotics
- OpenCV
- Image processing
- LIDAR / occupancy grids
- Path planning
Web
- Next.js
- PostgreSQL
- PWAs
- Node
Toolchains & tools
- VS Code
- Espressif IDE
- Renesas E2 Studio
- TI Code Composer
- Git
- MATLAB / Simulink
- RTMaps
Education
Education background
Engineering degree (Diplôme d’ingénieur)
Contact