HID - Software Engineer

San Diego, California, United States


Role Number:200361029
The Human Interface Devices Software team is a group of creative and passionate software/firmware engineers responsible for the next-generation sensing technologies across all Apple products. We have deep experience developing embedded systems software and building stacks that enable the best user-experience. We work closely with the Algorithms, Quality, Design, and UI teams to ensure sensor and firmware performance is optimized across all layers of the stack. We are looking for talented individuals who enjoy building firmware for embedded processors, prototyping concepts, investigating new technologies, and delivering high-quality products.

Key Qualifications

  • 2+ years experience developing embedded software such as firmware and device drivers
  • Strong skills in C/C++ for embedded systems
  • Experience in hardware bring-up and embedded debugging skills
  • Working knowledge of one or more communication protocols (e.g. USB, UART, SPI, I2C)
  • Ability to quickly familiarize yourself with code you’ve never seen before, and understand the pertinent functionality
  • Strong verbal and written communication skills
  • Self directed, analytical, and work well in a team environment
  • Comfortable working on both higher and lower levels of software


We are looking for an engineer to work on sensor drivers, frameworks, and tools for embedded platforms within the iPhone and audio products. In this role, you will bring up new sensing chipsets from initial specification to production for future products and maintain existing firmware components. Ideally, you have experience dealing with human factors, care deeply about user experience, enjoy supporting technology investigations, and are comfortable jumping between multiple levels of the software stack.

Education & Experience

BS or MS in CS/CE/EE

Additional Requirements

  • Experience designing SW interfaces or APIs
  • Familiarity with kernel device drivers
  • Debugging skills with JTAG, oscilloscopes, and logic analyzers
  • Development experience on Unix, Linux, or macOS is preferred
  • Familiarity with other programming languages such as Python is a plus

Pay & Benefits