Core OS Accessories Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
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. Our team is 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.
- 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 Desired Experience:
- Protocol design and implementation.
- The ideal candidate will have 2+ years of 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