Software Engineer Test, Location
Santa Clara Valley (Cupertino), California, United States
Software and Services
Our mission is to personalize the user experience on Apple devices based on where you go, when, and what those places mean to you. You’re experiencing our work whenever you see a suggested location in Maps or Calendar, or browse your Memories in Photos. We’re working for you whenever your phone engages Do Not Disturb While Driving or remembers where you parked. We’re looking for motivated software engineers to help take our product to the next level of reliability and performance. Do you work well in a high-energy, experiment-driven work environment? Do you like taking things apart to figure out how they work? Do you have a background in GPS, WiFi location, or embedded sensing, and are looking to move up the stack? If any of these describe you, read on. Real passion for the location domain. We believe that mobility is transformative, and that to realize that transformation, your devices need to understand the places you go and what they mean to you. That’s what we do. If you have experience in location estimation—GPS/GNSS, WiFi positioning, indoor localization, or discrete localization—we're especially eager to speak with you.
- Strong coding and software design skills. You’ll work in Python most of the time, and occasionally in Objective-C, Swift, or Java.
- Excellent problem solving. When things go wrong, you need great debugging skills—and part of your job is to make things go wrong.
- An attention span that outlasts a single project or a single phase of the software development lifecycle. Quality assurance isn’t about filing a report at the end of the year; you will share ownership of shipping features from end to end.
- A proven track record of working effectively across teams. One of the cool things about Apple is how much you will work with people who have different expertise and responsibilities than you: business code and QA, apps, sensors, connectivity, and others. You’ll need to communicate clearly, plan collaboratively, execute flexibly, and cope with what will sometimes feel like a high degree of uncertainty.
- Experience analyzing and visualizing real-world data. The test rack is the kiddie pool; we need to measure how our product performs in the real world. That means experimenting, collecting data, and processing it, at a variety of scales. Not every candidate will have a background with tools like S3, PySpark, Zeppelin, or Tableau, but the best ones will.
- Deep understanding of SQA test methodologies, practices, and concepts a plus
We believe in a work environment in which every engineer is responsible for the performance of his or her own software. As a Software QA engineer, you will “co-pilot” customer-facing features, with responsibility for ensuring that we all execute with a high degree of rigor, from the beginning of the project to the end. You will: Help define innovative new software features, and the plans to bring them to life. Design and implement test plans to identify where our software breaks—before that software leaves our team. Build and use automation effectively to achieve repeatable results without repeated effort. Focus on system-level interactions and performance across multiple components and teams, in a highly collaborative environment. Dog-food the team’s work, as we all do, regardless of job title. Identify issues, measure performance, and iterate. Don’t forget to sweat the edge cases—an issue that impacts 1% of a billion devices is a big issue. You will challenge the processes, designs, and implementations of our team in a way that’s critical to achieving the great user experiences for which we’re known.
Education & Experience
Bachelors or Masters Degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent experience.