About the service
I am an embedded systems engineer and write low-level software that makes hardware actually work. Every day I program in C for microcontrollers like STM32, ESP32, AVR, and Nordic, going from datasheets and schematics directly to registers when needed. I configure clocking, interrupts, DMA, and peripherals by hand, can read oscilloscope and logic analyzer traces to understand why a bus isn't behaving right. When a project needs structure, I spin up a real-time operating system, break work into tasks with considered priorities, and use queues, semaphores, and event flags to keep timing predictable rather than held together by hope and one big loop.
Most of my work is talking to the physical world. I write and debug drivers for sensors, displays, memory, and radio modules over I2C, SPI, and UART, and on top of them implement or adapt higher-level protocols. Power consumption matters to me: I profile current draw, configure sleep modes and wake sources, and build firmware so a battery device lasts months, not days. Reliability is also part of the result — I add watchdog timers, power-dip handling, CRC checks, and a careful bootloader so an out-in-the-field device can recover and safely update rather than become a brick.
You can hire me to bring up a new board from scratch, rescue a stuck firmware project, write a specific driver, hook up a sensor, or reduce power consumption of an existing product. I write readable code with clear comments, keep it under version control, and hand over something the next engineer can support. Tell me the chip, peripherals, and product goals — and I'll give you a realistic plan and firmware that works the same way on the bench and in production.
— Bare-metal and RTOS firmware in C (FreeRTOS, Zephyr)
— MCU startup: clocking, interrupts, DMA, timers, GPIO
— Device drivers for I2C, SPI, UART, and 1-Wire
— Connecting sensors, displays, memory, and radio modules
— Power efficiency: sleep modes, current profiling
— Bootloaders, firmware updates, and field recovery
— Debugging via JTAG/SWD, logic analyzer, and oscilloscope
Most of my work is talking to the physical world. I write and debug drivers for sensors, displays, memory, and radio modules over I2C, SPI, and UART, and on top of them implement or adapt higher-level protocols. Power consumption matters to me: I profile current draw, configure sleep modes and wake sources, and build firmware so a battery device lasts months, not days. Reliability is also part of the result — I add watchdog timers, power-dip handling, CRC checks, and a careful bootloader so an out-in-the-field device can recover and safely update rather than become a brick.
You can hire me to bring up a new board from scratch, rescue a stuck firmware project, write a specific driver, hook up a sensor, or reduce power consumption of an existing product. I write readable code with clear comments, keep it under version control, and hand over something the next engineer can support. Tell me the chip, peripherals, and product goals — and I'll give you a realistic plan and firmware that works the same way on the bench and in production.
— Bare-metal and RTOS firmware in C (FreeRTOS, Zephyr)
— MCU startup: clocking, interrupts, DMA, timers, GPIO
— Device drivers for I2C, SPI, UART, and 1-Wire
— Connecting sensors, displays, memory, and radio modules
— Power efficiency: sleep modes, current profiling
— Bootloaders, firmware updates, and field recovery
— Debugging via JTAG/SWD, logic analyzer, and oscilloscope