About The Position

The Embedded Firmware / Software Engineer will bring up new hardware platforms built around USB-C Power Delivery controllers and develop firmware from initial PCB power-on through production-quality implementation. This is a low-level embedded firmware role focused on hardware interaction rather than application-level software development. The engineer will develop and debug embedded C firmware on ARM Cortex-M-class microcontrollers, configure companion ICs over I2C, SPI, and UART, and work at the hardware bench alongside electrical and hardware engineers. The role combines embedded C development, PCB bring-up, USB-C and USB-PD functionality, peripheral communication, and hardware-level debugging. The engineer will validate power rails, clocks, interfaces, and peripherals; implement USB-PD source, sink, and dual-role power functions; troubleshoot power-delivery behavior; and support development from prototype through production readiness. The position is a six-month W-2 contract with potential for full-time conversion. Work is hybrid, with three days per week on-site in Bellevue, Washington, on a Monday–Friday schedule. Start date and compensation are TBD.

Requirements

  • Must be a U.S. Person: U.S. Citizen or U.S. Permanent Resident (Green Card holder).
  • Must be able to work on-site in Bellevue, Washington, three days per week.
  • Strong proficiency in embedded C.
  • Experience developing firmware on 32-bit ARM Cortex-M or similar microcontrollers.
  • Strong understanding of interrupts, register-level peripheral programming, memory-constrained embedded development, and flash and RAM limitations.
  • Working knowledge of USB-C and USB Power Delivery.
  • Understanding of USB-PD source, sink, and dual-role power (DRP) configurations, power-contract negotiation, and fault handling.
  • Hands-on experience with hardware and PCB bring-up.
  • Experience communicating with and configuring companion ICs through I2C, SPI, UART, or similar interfaces.
  • Ability to read and work from datasheets, register maps, and schematics.
  • Experience using oscilloscopes, logic/protocol analyzers, multimeters, SWD/JTAG debuggers, and UART logging.
  • Proficiency with Git.
  • Strong troubleshooting and hardware/firmware debugging skills.
  • Ability to collaborate closely with hardware and electrical engineering teams.

Nice To Haves

  • Experience with Infineon or Cypress MCU SDKs/IDEs and associated middleware.
  • Experience with ModusToolbox, STM32Cube, or similar development environments.
  • Experience creating or customizing a Board Support Package (BSP).
  • Experience with firmware bootloaders and update mechanisms, including DFU or equivalent.
  • Experience with power-path or regulator firmware, including VBUS control, over-voltage protection (OVP), under-voltage protection (UVP), over-current protection (OCP), fault detection and recovery, and enable and soft-start sequencing.
  • Experience with USB subsystems such as USB hubs, DisplayPort Alt Mode, redrivers, retimers, and Billboard devices.
  • Experience with Infineon EZ-PD / PMG1 or Cypress CCGx USB-PD controllers.
  • Experience implementing continuous integration (CI) for embedded firmware builds.
  • Familiarity with USB-IF Power Delivery compliance requirements and USB-C specifications.
  • Experience taking embedded products from prototype hardware through production.

Responsibilities

  • Bring up new PCBs from initial power-on through functional firmware.
  • Validate power rails, clocks, and hardware interfaces during board bring-up.
  • Connect and configure SWD/JTAG debuggers and enable and validate microcontroller peripherals.
  • Work with hardware engineers to isolate hardware versus firmware issues and resolve issues involving USB-PD controllers and associated circuitry.
  • Support development from initial prototype bring-up through production-quality firmware.
  • Develop and debug embedded C firmware on ARM Cortex-M-class microcontrollers.
  • Implement register-level peripheral programming and work within flash and RAM limitations.
  • Configure and communicate with companion ICs over I2C, SPI, UART, and other peripheral interfaces.
  • Use datasheets, register tables, register maps, and schematics to configure and troubleshoot hardware.
  • Implement and debug USB-C and USB-PD functionality, including source and sink roles, dual-role power (DRP), power-contract negotiation, fault handling, and recovery.
  • Validate USB-PD behavior and troubleshoot power-delivery issues.
  • Debug firmware and hardware at the bench using oscilloscopes, logic and protocol analyzers, digital multimeters, SWD/JTAG debuggers, and UART logging.
  • Investigate hardware and firmware issues using schematics, register maps, and measurement results; validate peripheral communication and hardware functionality.
  • Support troubleshooting throughout development and testing.
  • Document firmware configurations, implementation decisions, and design considerations.
  • Collaborate with hardware and electrical engineering teams, communicate debugging findings, and support root-cause investigations.
  • Use Git for source control and firmware development workflows.
  • Contribute to firmware quality and production readiness.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service