Services

I’m available for contract engineering work, hourly or project-based, remote or on-site in Southern California.

Board bring-up and firmware

You have new hardware and need it running. I take unfamiliar boards from first power-on to a full-featured system, on bare metal, an RTOS (FreeRTOS), or embedded Linux.

  • C, C++, and Rust (including bare-metal embedded Rust)
  • ARM Cortex-M and Cortex-A, STM32, AVR, i.MX6
  • Peripherals: ADC, DMA, timers, flash, USB, Ethernet, eMMC, PMICs, sensors over I2C, SPI, and UART
  • Debugging with JTAG/SWD, GDB, logic analyzers, and oscilloscopes

Embedded Linux

Yocto images, U-Boot, kernel drivers, and device trees for custom boards, plus the userspace services that run on them.

Secure boot and OTA updates

Shipping firmware updates in the field without bricking or exposing your device: secure boot chains, image signing and authenticity checks, DFU bootloaders, and the cloud and desktop tools that deliver the update. I’ve built OTA updates end to end for a car ECU and a robotics product, and a four-stage secure boot chain for access control equipment.

EMC compliance problems

Your product is failing EMC testing and the schedule is slipping. I’ve solved EMC compliance issues under deadline pressure.

Vehicle networks

CAN, automotive Ethernet, and IEBus/AVC-LAN: ECU firmware, dashboard backends, and talking to existing vehicle systems.

Control and sensor algorithms

Motor control and power-assist algorithms, slip detection and safety logic, and real-time sensor fusion, with Python tooling to characterize and visualize how well they work.

Test automation

Hardware-in-the-loop testing, test servers that drive hardware over an API, and CI pipelines (GitLab, Jenkins) that deploy firmware and run tests on real devices.

Embedded GUIs

Touchscreen and dashboard interfaces in C++ with Qt/QML, and 3D visualization with OpenGL and GLSL.

Medical devices

Software for regulated medical devices, working within ISO 13485, IEC 60601, and FDA requirements.

Reverse engineering

Understanding undocumented hardware, firmware, and protocols. See the TC66C write-up and the Techstream / Mini-VCI write-up for examples.

Get in touch

See the about page for contact details.