Firmware Engineer

Paul Lopez

I write the code that lives closest to the metal.

I'm a firmware engineer with 8+ years spent between the oscilloscope and the debugger, shipping embedded software for consumer and industrial products. My comfort zone is the boundary layer: bring-up of new PCBs, squeezing firmware into tight memory budgets, and making hardware behave when the datasheet said it wouldn't. Most recently I led firmware for a line of connected environmental sensors — from bootloader to OTA updates, with 60k+ devices in the field. I care about firmware that is observable, testable on CI, and boring in the best way: it just works. When I'm not flashing boards, I'm usually reflowing my own prototypes at home or writing about embedded Rust and modern C.

Available Grenoble, France

Proficiency

Depth across 8 skills

12skills
Embedded C Modern C++ Python FreeRTOS Zephyr RTOS ARM Cortex-M STM32 nRF52 / BLE

Languages 1

Python

Other 11

Embedded CModern C++FreeRTOSZephyr RTOSARM Cortex-MSTM32nRF52 / BLEI2C / SPI / CANBootloaders & OTAKiCadUnity / CppUTest

Experience

3

Education

2

Proof of work

6

A fleet of 60,000 sensors running my stack

Aurea Sensors — atmospheric monitoring product line

0k+
devices in the field
0.00%
OTA success rate

Booted 8.5× faster without new silicon

Novatek Devices — camera module family

0.0s → 210ms
boot time
0M+
units shipped

CI on real hardware, not mocks

Every firmware pull request flashes and runs on physical boards

0
boards in the farm
0 min
median cycle

Projects

4

OpenTag — BLE 5.3 asset tag

OpenTag — BLE 5.3 asset tag

Open-source asset tag built on the nRF52840: accelerometer-driven motion detection, months of battery on a coin cell, and a Zephyr-based firmware with OTA out of the box. Rev C boards are running in three maker workshops.

CZephyr RTOSnRF52840BLE
FieldLogger — rugged environmental logger

FieldLogger — rugged environmental logger

A battery-powered logger for harsh environments: STM32L4 + LoRa, LittleFS journaling on flash, and a sealed enclosure that survived six months on a glacier. My most-over-engineered weekend project.

STM32L4FreeRTOSLittleFSLoRa
PowerScope — current-probe amplifier

PowerScope — current-probe amplifier

A precision current-sense front-end for profiling firmware power modes: KiCad board, chopper-stabilised amplifier, and a Qt desktop app that overlays current traces against source-code execution.

KiCadModern C++QtUSB
Bootsnap — dual-bank OTA bootloader

Bootsnap — dual-bank OTA bootloader

A tiny, dependency-light bootloader for Cortex-M: verified boot, A/B image banks, and a Windows/macOS/Linux flashing tool. Extracted from years of shipping OTA to devices that must never brick.

Embedded CARM Cortex-MMCUboot

Gallery

Bench & boards

1 / 6
Main board of the PowerScope front-end, rev B

Main board of the PowerScope front-end, rev B

JTAG bring-up on the first OpenTag prototype run

JTAG bring-up on the first OpenTag prototype run

Chasing sleep-current ghosts at 2 a.m.

Chasing sleep-current ghosts at 2 a.m.

The bench: hot air, flux, and far too many probes

The bench: hot air, flux, and far too many probes

Reflow day for the OpenTag pilot batch

Reflow day for the OpenTag pilot batch

Somewhere between build and flash

Somewhere between build and flash

YouTube

Watch

Booking

Book a meeting

Does this role fit?

Paste a job posting link to see how Paul Lopez matches it.

Olivia assistant

Ask me anything

Chat with Olivia assistant about my work

Paul
Portiqo