Software Compatibility Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
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 individual with strong debugging and development skills to ensure that third-party applications continue to work on future macOS, iOS, 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.
- Strong programming language skills (pointers, memory management, algorithms) and language skills C, Objective C, or C++
- Excellent foundation in operating system architecture and system-level programming
- Strong knowledge of at least one debugging or dynamic analysis tool (LLDB, GDB, Instruments, Visual Studio debugger, Valgrind, etc.)
- Understanding of and experience with the software development cycle
- Excellent interpersonal skills are a requirement due to the high level of interaction with engineering teams, management, and other organizations within Apple
- Creative thinker and problem solver with meticulous attention to detail
- Passionate, inquisitive, and seeks to take on everyday problems in innovative ways
Compatibility Engineers are responsible for application compatibility for macOS, iOS, 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.
Education & Experience
Minimum of Bachelors Degree in Computer Science, Computer Engineering, or equivalent experience.
- Experience in macOS or iOS programming a strong plus
- Experience with x86 assembly a plus
- Experience in automation
- Experience in performance analysis and reporting a plus
- Familiarity with Perl, Ruby, Python or Unix shell scripting