Core OS Accessories Software Engineer

Santa Clara Valley (Cupertino), California, United States
Software and Services


Weekly Hours: 40
Role Number:200274268
The Core OS Accessories Team is looking for a Software Engineer to focus on iOS/macOS/tvOS/watchOS software support of wired and wireless accessories. In this role, you will be working on developing both existing and future Apple products. We create drivers used on iOS/macOS/tvOS/watchOS devices, as well as develop protocols used to communicate with 1st, 2nd, and 3rd party accessories (including Smart Connector accessories, Lightning accessories, Chargers, CarPlay, AirPods, HomeKit, AirPlay, and other 3rd party accessories). There is a wide breadth to this role; our team's stack has components in both userland and kernel. We are responsible for many aspects of accessory behavior, such as connectivity, charging, security, and more. The team is very fast paced and the right engineer has vast opportunities to learn.

Key Qualifications

  • Programming Languages: C/C++ (Objective-C a plus)
  • Device driver programming.
  • Operating System Experience: iOS, macOS, NetBSD, Linux.
  • Strong software debugging skills.
  • Solid understanding of protocols.


Develop wired and wireless accessory features, protocols, and technologies. Document code and create workable specifications including quantifiable system performance characteristics. Ensure products are instrumented to evaluate field system equivalence. Tool development for feature simulation, verification and system-level troubleshooting. Work with external technology partners to design and launch accessories and technology platforms.

Education & Experience

BS in Computer Engineering/Computer Science/Electrical Engineering or equivalent experience/skills

Additional Requirements

  • Additional Desired Experienced:
  • The ideal candidate will have related experience in consumer products and/or other product development.
  • Ability to use an oscilloscope and logic analyzer.
  • Strong electrical system understanding
  • Board bring-up.
  • Device Drivers: any of UART / SPI / SPMI / I2C / USB is a plus