When you see an application with a cool feature, is your first instinct to hop into the debugger and figure out how a clever developer implemented the functionality? Are you passionate about the idea of exploring the mind of another engineer, stepping through the code to paint an overall picture of what is happening and why? If so, the Software Compatibility Engineer team will be an excellent match for you!
Apple’s Software Compatibility team is looking for a curious and driven engineer who doesn’t settle for letting mysteries remain unsolved. We need a tenacious engineer with strong debugging and development skills to ensure that third-party applications continue to work on future macOS, iOS, visionOS, tvOS, and watchOS releases. Strong technical skills are important but most critical is a desire to understand how an app fits into Apple’s frameworks and operating systems.
Compatibility Engineers are responsible for application compatibility for macOS, iOS, visionOS, watchOS, and tvOS releases. We need to understand how applications are created and interact with the operating system. We ensure the broader organization understands how Developers are utilizing our OS and the impact future development has on existing applications and users.
Our tasks include, but are not limited to the support of day to day tracking of escalations from 3rd party developers, bug management (screening, reproducing, isolating and routing) for internally and externally originated problem reports, app debugging, and reporting on new OS features that impact app compatibility. We are also tasked with the development of automation for third-party apps, managing partnerships with key external developers, the creation and maintenance of debugging tools and infrastructure utilized by the team and by internal engineers.
Minimum of Bachelors Degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent experienceStrong programming language skills (pointers, memory management, algorithms) and language skills C, Objective C, or C++Excellent foundation in operating system architecture and system-level programmingStrong knowledge of at least one debugging or dynamic analysis tool (LLDB, GDB, Instruments, Visual Studio debugger, Valgrind, etc)