Tools & Automation Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
There are more than a billion active Apple devices worldwide, we are striving for a billion more. Come join a small team of highly-focused engineers that provide engineering, automation, and systems support to make that possible. If you're passionate about software development, automation, and release engineering, we may have the job for you. We are looking for a Software Automation & Tools Engineer, with excellent Python programming and problem solving skills. You will have a desire to "automate all the things," and identify areas that can be vastly improved with automation, and provide well-documented, well-tested, and well-written software solutions.
- Python 2 or 3 (Proficiency)
- Strong experience with object oriented programming
- Strong fundamentals in data structures & algorithms
- Requirements Engineering
- Git (or other distributed VCS)
- Agile, and Test-Driven Development
- Monitoring and maintaining a fleet of macOS machines
- Unix / Linux
- Ability to investigate and debug difficult problems
- Creative thinker and strong problem solver
- Ability to multi-task well and change focus quickly
- Ability to work in a fast-paced and dynamic environment
- Extremely organized, detail oriented, and thorough in every undertaking
- Excellent communication skills.
- 3+ years in a software development role
You will be responsible for creating, maintaining, and improving applications, tools, and automation infrastructure to support engineering project management teams. You will identify areas to provide tooling and automation support, and deliver well-documented, well-tested, and well-written software solutions all the while reaching scheduled landmarks, and meeting deadlines. You should be able to work independently on individual projects, and we will work collaboratively on larger projects. We subscribe to the agile software development methodology, as a development team we are expected to iterate frequently, deliver continuously, and improve constantly. Many of the tools we work on have real-world implications, we reduce the stress and probability of any consequences by implementing comprehensive unit testing, functional testing, integration testing, and system testing. You should suggest and drive process improvements along with the desired tooling solution (propose the car when asked for a faster horse.) You will work rapidly, but also have a natural inclination towards following widely accepted industry best practices, along with the perseverance, persistence, and motivation that goes along with it. Excellent communication skills are a requirement, because of the high level of interaction with various engineering teams, management, and other organizations within Apple. The ideal candidate will be highly technical, detail-oriented, creative, motivated, and focused on achieving results.
Education & Experience
BS/MS in EE/CS/CE or equivalent knowledge and experience