I/O Technologies Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
Are you a big-picture thinker who loves setting ambitious goals? Do you have a passion for understanding how each line of code affects all the others? In the Core Operating Systems group, you’ll ensure the OS is inseparable from each device’s identity as a whole. That’s because this group is committed to building fully integrated operating systems that combine hardware, software, and apps into a single Apple experience. Your dedication to cross-disciplinary collaboration will help develop groundbreaking technologies, such as iOS, macOS, watchOS, and tvOS. By crafting these distinct, holistic user experiences, you’ll continue to uphold and advance the excellence people expect from Apple devices. Apple’s I/O Technologies organization is seeking an excellent software focused engineer who is eager to learn firmware/driver debugging and development with a number of products. The engineer will be responsible for development and debugging of macOS/iOS device drivers and firmware projects. Will also help with developing instrumentation/tools for development, debugging, and automated testing. Engagement with various vendors will be an important responsibility. This position is the focal point for HW/SW integration, requiring a self-driven engineer with great initiative.
- Software development and debugging skills are a requirement. Experience with C is a plus.
- Knowledge of using a software debugger (e.g. LLDB/Xcode, gdb, Kiel µVision, Visual Studio, etc).
- Strong ambition to learn and push through obstacles to deliver on tight schedules.
- Demonstrated creative, critical thinking, and troubleshooting skills.
- Team player with excellent collaborative skills including written and verbal communication.
- Knowledge of UNIX kernel design (OS X, Linux, BSD, Solaris) is a plus.
- Experience developing and designing device drivers is a plus.
- Experience developing and designing firmware for microcontrollers is a plus.
- IOKit, Thunderbolt, USB, USB PD, Objective-C, Xcode, EFI, ACPI, and Git experience is advantageous.
Design, implement, and debug device drivers and firmware. Collaborate with other software teams, electrical engineering teams, architectural design teams, and vendors on software design. Thoroughly document and support implemented code. Work with Quality Assurance team to test implemented code. Work with vendors to debug issue with their code and support their development.
Education & Experience
Bachelor’s or Master’s degree in Computer Science, Computer Engineering, Electrical Engineering, or similar field, with sufficient hands-on work.