Proficiency in embedded C on 32-bit microcontrollers (ARM Cortex-M or similar), including interrupts, register-level peripheral work, and development under flash/RAM constraints.
Understanding of USB-C/USB-PD, including source/sink/DRP roles and power contract negotiation.
Experience with I2C/SPI/UART peripheral/companion-IC communication, configuration, and debugging.
Hands-on experience with hardware bring-up, from power-on to running firmware or debugging firmware against real hardware.
Ability to read and interpret datasheets and schematics to configure parts from register tables and confirm pin/power connections.
Competence in using standard bench debugging tools such as oscilloscopes, logic/protocol analyzers, SWD/JTAG debuggers, and UART logging.
Proficiency with Git for version control.
Experience with Cypress/Infineon MCU SDK/IDE and its middleware, such as ModusToolbox or STM32Cube, including creating/customizing board support packages.
Experience with firmware update/bootloader work, such as DFU or equivalent, including building and flashing update images.
Knowledge of power-path or regulator firmware, including VBUS control, fault detection/recovery, and enable/soft-start sequencing.
Experience with USB subsystems, including hubs, DisplayPort Alt Mode, redrivers/retimers, or billboard devices.
Familiarity with USB-IF PD compliance/USB-C requirements.