Brian C.
Senior Embedded Firmware Engineer
I'm a Senior Embedded Software / Firmware Engineer with 25+ years of experience, specializing in STM, NXP and Xilinx platform firmware, CAN, CANopen/CiA402 motion control, reverse-engineering, and real-time embedded systems. I help fix hard problems, including: - STM32 and NXP, board bring-up, driver development - Xilinx FPGA design and bring-up issues - CANopen communication failures (SDO/PDO issues, object dictionary, NMT (Network Management) , heartbeat) - CiA402 drive state machine problems and motion-control tuning - Hard faults, lockups, illegal memory access, watchdog resets - Real-time timing issues, jitter, and scheduling bugs (RTOS or bare-metal) - Bootloaders, firmware updates, and startup issues - FDCAN and CAN bus filtering, FIFO routing, and interrupt design - System optimization and stability improvements - Architecture and/or design improvements - SPI bus and ADC timing and power issues If your embedded device is crashing, stalling, locking up, misbehaving, or failing to meet deadlines, I can diagnose and repair it quickly. What I deliver * Project proposals and estimates * Root-cause Analysis documentation * Clean, maintainable embedded C/C++ * Fast and accurate debugging * Real-time scheduling and timing corrections * NXP and STM32 HAL/LL driver development * AMD Xilinx Vivado FPGA development * FDCAN, CAN, and CANopen stack configuration and integration * CiA402 motion control implementation * Bootloaders, startup code, low-level drivers * Documentation and long-term fixes Why clients hire me - 25+ years of embedded experience - Deep expertise with STM32 and NXP ARM Cortex-M, and industrial protocols - Specialization in motion control and CANopen, where skilled engineers are rare - Fast response, clear communication, professional results - Ability to join a project mid-stream and quickly stabilize it Embedded Skills - Embedded Systems - Embedded C - Embedded C++ - ARM Cortex-M - STM32 - STMicroelectronics STM32Cube, STM32MX, STM32IDE - STM32 HAL - STM32 LL Drivers - Xilinx Vivado, Verilog, VHDL - Microcontroller Programming - Real-Time Operating Systems (RTOS) - FreeRTOS - Bare-Metal Programming - Device Drivers Communication Protocols - TCP/IP - UDP - FDCAN - CAN Bus - CANopen - CiA402 - RS485 - I2C - SPI - UART - USB Device Firmware - 1553 Debugging & Tools - Hard Fault Debugging - Real-Time Debugging - JTAG/SWD - Logic Analyzer - Oscilloscope Debugging - Segger J-Link - Tracealyzer - Timing Analysis System Architecture - Firmware Architecture - Bootloaders - BSP Development - Memory Management -Low-Level Software - Real-Time Scheduling - Safety-Critical Systems Other - Linux Embedded - CMake - Git - CI/CD for Firmware - Technical Documentation
Earnings and projects
Last 6 months ÷ 6
Last 6 months: $20k
Billed in all: $48,842$49k
$4k in the last 6 months
Earnings, last 30 days
Skill rankings: #1 in 4 skills of 20
Rarest: top 3% in Systems Development, of 229. Ranked by MRR among everyone on Upwork with the skill.
- OpenAI Codex Prompt29 freelancers · 🇺🇸 #1Top 3%🇺🇸#1 of 3
- UART18 freelancers · 🇺🇸 #1Top 6%🇺🇸#1 of 5
- Real-Time Computing9 freelancers · 🇺🇸 #1Top 11%🇺🇸#1 of 2
- RS-2327 freelancers · 🇺🇸 #1Top 14%🇺🇸#1 of 1
- VHDL73 freelancers · 🇺🇸 #1Top 3%🇺🇸#1 of 11
- ARM Cortex-M68 freelancers · 🇺🇸 #2Top 4%🇺🇸#2 of 6
- #4Real-Time Operating System71 freelancers · 🇺🇸 #1Top 6%🇺🇸#1 of 10
- #5CAN Bus61 freelancers · 🇺🇸 #2Top 8%🇺🇸#2 of 10