The Xcode team provides the tools to develop software for Apple's innovative iOS, macOS, watchOS, tvOS and VisionOS platforms. Because tools are our products, software engineers on the Xcode team have the unique and rewarding opportunity to apply personal experience to enhance and augment the tools they use everyday. The Xcode team is looking for a detail-oriented and focused Quality Engineer with deep curiosity about how complex systems fail - and the initiative to find those failures before developers do.
This position involves not only ensuring that each of these features work but they also coalesce into a cohesive development environment. Responsibilities include API/Integration testing, manual/LiveOn testing, building test tools, developing automation platforms, and working to continuously improve Xcode's runtime tools - including profiling, debugging and memory diagnostics.
We're looking for a highly creative and self-motivated individual, excellent at creating and maintaining tests/tools and communicating with the tools development team about feature quality - while also engaging compiler, runtime, and OS teams when issues cross those boundaries.
You'll be paired with a tools development team, and work with them to extend their automated testing to help ship a high quality Xcode and Instruments.
You'll have the opportunity to build shared APIs for testing, and be challenged to come up with testing strategies that maximize coverage of your component with minimal manual intervention. This includes reasoning about failure modes that span OS, compiler, and runtime boundaries - where the root cause of a bug may live far from where it surfaces.
In this position, you will:
BS in Computer Science or equivalent experience
Strong object-oriented programming experience in Swift and Objective-C, with Python or other scripting experience a plus.
Excellent troubleshooting skills with a passion for quality
Experience in writing automation tests at API, UI, and non-UI levels
Collaborative and curious contributor with a proactive communication and demonstrated ability to lead projects
Ability to reason about how failures in dependent systems (OS, compiler, runtime) can surface in higher-level tools
Experience with profiling, memory diagnostics, or other runtime analysis tools
Proven experience designing test strategies that account for complex failure modes and cross-system dependencies
We’re a diverse collection of thinkers and doers, continually reimagining what’s possible to help us all do what we love in new ways. The people who work here have reinvented entire industries with the Mac, iPhone, iPad, and Apple Watch, as well as with services, including iTunes, the App Store, Apple Music, and Apple Pay. And the same passion for innovation that goes into our products also applies to our practices — strengthening our commitment to leave the world better than we found it.
There’s a place here for every kind of brilliant. Everyone here is an innovator, or an innovator-to-be, no matter what your team or your role. So bring your passion, courage, and original thinking and get ready to share it, because every new product, service, or feature we invent is the result of people working together to make each others’ ideas stronger. Innovation at this level depends on people who represent the variety of the human experience and inspire us with their own fresh perspectives. Together, we’ll do amazing work that can make a difference in people’s lives. Including your own. Learn more about working at Apple.