About the role
- 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
Text as published by HIKINEX. We don't edit postings; apply and ask questions on the employer's site.