Описание вакансии
Location: United States
Location:
Bellevue, Washington, hybrid, 3 days per week on-site.
Duration: 6-month W-2 contract with possibility of conversion to full time.
About the role:
This is an
embedded firmware
role, not application software. Bare-PCB bring-up to production firmware on
32-bit ARM Cortex-M
microcontrollers, in
embedded C
.
The product is built around
USB-C Power Delivery controllers
. Candidates must understand USB-C / USB-PD: source, sink and dual-role, power contract negotiation, fault handling.
Hands-on bench work is mandatory: oscilloscope, logic or protocol analyzer, SWD/JTAG debugger, UART logging, working from datasheets, register tables and schematics.
Companion-IC communication over
I2C, SPI, UART
.
Strong plus: Infineon EZ-PD / PMG1 or Cypress CCGx PD controllers, ModusToolbox or STM32Cube, bootloader / DFU work, power-path or regulator firmware (VBUS, OVP/UVP/OCP), USB hubs, DisplayPort Alt Mode, redrivers.
Role Description
We're bringing up new hardware built around USB-C Power Delivery controllers and are looking for an embedded firmware engineer to help take these boards from bare PCB to working, production-quality firmware. You'll write and debug firmware on 32-bit ARM microcontrollers, configure companion ICs over I2C/SPI/UART, and work hands-on at the bench in collaboration with our hardware team.
Job Responsibilities
Bring up new PCBs: validate power/clocks, connect a debugger, enable peripherals, and get firmware running on new hardware
Develop and debug embedded C firmware on ARM Cortex-M-class MCUs
Configure and drive companion ICs over I2C or other peripheral buses
Implement and debug USB-C / USB-PD behavior (power negotiation, source/sink roles, fault handling, etc.)
Debug at the bench with oscilloscope, protocol/logic analyzer, multimeter, and SWD/JTAG
Work from datasheets, register tables, and schematics
Document configurations and design decisions
Collaborate with hardware engineers to isolate hardware vs. firmware issues
Required Skills
Strong embedded C on 32-bit MCUs (ARM Cortex-M or similar): interrupts, register-level peripheral work, development under flash/RAM constraints
Working understanding of USB-C/USB-PD (source/sink/DRP roles, power contract negotiation)
I2C/SPI/UART peripheral/companion-IC communication, configuration, and debug
Hands-on hardware bring-up experience: taking a board from power-on to running firmware, or debugging firmware against real hardware
Datasheet and schematic literacy: able to configure a part from its register tables and confirm pin/power connections
Comfortable with standard bench debug tools: oscilloscope, logic/protocol analyzer, SWD/JTAG debugger, UART logging
Git proficiency
Preferred Skills
Experience with a Cypress/Infineon MCU SDK/IDE and its middleware (e.g. ModusToolbox, STM32Cube, or similar), including creating/customizing a board support package
Firmware update/bootloader work (DFU or equivalent): building and flashing update images
Power-path or regulator firmware: VBUS control, fault detection/recovery (OVP/UVP/OCP), enable/soft-start sequencing
USB subsystem experience: hubs, DisplayPort Alt Mode, redrivers/retimers, or billboard devices
Nice to have
Prior work with Infineon EZ-PD / PMG1 (or Cypress CCGx) PD controllers and ModusToolbox
CI for embedded builds
USB-IF PD compliance/USB-C requirements familiarity
Контакты работодателя доступны по кнопке «Откликнуться» после входа.