Device Automation Infrastructure Engineer, Platform Architecture
Santa Clara Valley (Cupertino), California, United States
Are you highly detailed and skilled at developing creative solutions? Do you love controlling even the smallest details to craft highly organized structures? Do you enjoy crafting elegant solutions to highly complex challenges? In this role, you'll build and deploy software development tools to test devices across all our platforms. This work is a vital component of the quality and efficiency of Apple’s future products. Join this group, and you’ll have a direct impact on the technology that shapes Apple’s customer experiences. Together, our work will be the reason millions of customers feel they can trust their devices every single day. Platform Architecture is looking for a passionate, driven engineer to design, implement and maintain the next-generation of our device power/performance testing infrastructure. We are looking for you to create a multi-platform automation infrastructure that should be able to accommodate a variety of device types, across different operating systems, at varying degrees of maturity, running arbitrary workloads and test vectors, gathering both performance and power data.
- Prior experience in building and maintaining a device automation test rack is a requirement, ideally one with both mobile and desktop devices.
- Strong software development skills with a good approach to designing a maintainable and reliable infrastructure.
- Strong knowledge of bash scripting, python, C/C++
- Strong web development skills, front end and back end. Prior experience building web services or applications.
- Strong visualization skills and able to present large sums of data in succinct graphics
- Experience with many different mobile and desktop platforms.
- Ability to be self-motivated and deliver work consistently. Passionate about delivering a robust well-designed solution.
As Device Automation Infrastructure Engineer, your responsibilities will include: Design, implement and maintain a multi-device test automation infrastructure. This automation infrastructure should be able to accommodate any instrumented device under test, whether development hardware, smartphone, tablet, laptop, desktop or otherwise. The infrastructure should automatically install relevant workloads or test cases on device, automatically run the tests while gathering power data using an attached data collection device, automatically collect and process performance/power data, store processed results into a database viewable through an internal web interface and exportable for offline use. Be able to accommodate devices that require dropping the connection to the host automation machine while executing tests. The infrastructure should be able to accommodate a wide variety of software platforms, each with their own behaviors. The infrastructure should minimize the burden of adding new devices or workloads to the rack. The infrastructure should properly handle errors (e.g. device crashes, test does not complete, system wasn’t completely idle, etc…). Build a web interface that allows engineering customers of the infrastructure to run experiments remotely on attached devices. Work with engineering customers of the automation infrastructure to ensure their needs are met.
Education & Experience
BS in CS/CE or equivalent