iOS GPU Driver Tools Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
Apple’s GPU Software team develops Metal, an API for GPU programming that allows efficient use of the GPU and minimizes CPU overhead. It has enabled developers to achieve far greater realism, detail, and interactivity in their games. It is the foundation for utilizing the GPU across all of Apple's innovative products, from iPhone, iPad, and iPod touch, to Apple TV, and MacOS, as well as Apple’s professional and consumer applications from Final Cut and Aperture to iLife and iWork. GPU Drivers provides the lowest layer of software stack that directly interacts with the GPU hardware to support Metal. It is fundamental to the performance and quality of the user experience on Apple devices.
- Experience in C/C++ production environment.
- Extensive experience in Python.
- Strong foundations in object-oriented programming.
- Experience in process automation, continuous integration, and automated testing.
- Experience with GPU APIs, preferably Metal, OpenGL, and/or OpenCL.
- iOS development with Objective-C and/or Swift a plus.
- Experience working with hardware, working with drivers and low-level code a plus.
- Strong verbal and written communications skills.
- Excellent debugging, trouble shooting, optimization, critical thinking and problem solving skills.
The iOS GPU Driver team is looking for a highly motivated software engineer, who is focused on product quality through development of tools that improve the software development process. GPU Driver Tools engineer will be reponsible for the following: Design and develop the tools & infrastructure for development, build, integration, test, and debugging the GPU driver. Design and develop driver features providing metrics and debuggability to streamline the driver development. Design and develop changes to the driver architecture to better enable debugging, test, and test automation. Work closely with driver engineers to understand their workflows and ensure that development tools, tests and processes are helping them deliver high quality software. Work closely with build and test team to improve the infrastructure to keep pace with the growing needs of driver development. Collaborate across teams to gather requirements and deliver reporting and management systems that allows to monitor and address build and test issues promptly. Maintain clear, comprehensive documentation that allows engineers to efficiently work with the tools and infrastructure.
Education & Experience
Technical BS/MS EE/CS degree