HID, Firmware Engineer - Standalone Input Devices

San Diego, California, United States


Role Number:200123933
Come join a team of creative, energetic, and enthusiastic firmware engineers responsible for next-generation Human Interface Devices for iPhone, iPad, Mac, and more. We are looking for talented individuals who enjoy creating firmware for microcontrollers, prototyping concepts, investigating new technologies, and ultimately delivering high-quality products. This is a great opportunity to be at the focal point of many multi-functional interactions with the Hardware, Software, Quality Engineering, and Product Design teams.

Key Qualifications

  • Solid C or C++ coding ability for Embedded Systems
  • Experience working with microcontrollers with analog and digital sensors
  • Experience implementing firmware in bare-metal or RTOS environments
  • Proven capability in applying coding best-practices to firmware designs
  • Working knowledge of one or more communication protocols (e.g., UART, I2C, SPI, Bluetooth, USB, Ethernet)
  • Proven board bring-up and debug skills
  • Strong communication and collaboration skills


As a HID firmware engineer working on many of Apple's input devices ( keyboards, trackpads, mice, pencils, etc ), you will be expected to: -bring up new sensors and processors from initial specification to production -quickly debug and effectively close out system issues related to your firmware -architect, implement, and maintain complex firmware designs -write clean, easy to understand, robust, and sustainable code tailored for embedded systems and/or test platforms -help select microcontrollers and peripherals, define power management strategies, and review schematics with the Hardware team -negotiate, specify and document communication protocols, system states, and feature requirements with Hardware and Software teams -collaborate with the Quality Engineering team to inform and craft their white-box testing

Education & Experience

BS or MS in CS/CE/EE or equivalent industry experience

Additional Requirements

  • Experience with one or more microcontrollers cores ( ARM, AVR, MSP430, PIC, 8051 )
  • Debugging skills with JTAG, SWD, Oscilloscopes, and Logic analyzers
  • Some assembly experience is helpful
  • Development experience on Unix, Linux, or macOS is preferred
  • macOS and/or iOS programming experience is helpful
  • Familiarity with input technologies is helpful

Pay & Benefits