iOS System UI Performance Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
The iOS System UI team is looking for creative, talented, and hard-working software engineers to join a new performance team. You will contribute to performance tools, analysis, design, and implementation across the home screen, lock screen, notifications, control center, and multitasking UI on both iPhone and iPad. You will care about metrics across different hardware generations including frames per second, cold and warm app launch, boot, first unlock, and behind the scenes details like memory growth. You’ll be part of a team that cares deeply about how these aspects combine into the look, feel, and function of iOS, and drives those qualities across the release cycle.
- Excellent programming skills, focused on C and Objective-C
- Excellent understanding of optimization and performance issues across OS software layers
- Scripting language experience in support automating profiling and analysis
- Strong UI prototyping and implementation experience
- Experience with performance analysis including Instruments and DTrace
- Experience with graphics technologies like CoreAnimation, Metal, and OpenGL
- Excellent communication and collaboration skills
- Passion for product quality and attention to detail
- Comfortable with rapid development cycles, tight schedules
In this role, you’ll work with HI to analyze and understand the performance implications of future System UI designs and iterate on early prototypes to inform those designs. That work will continue as you collaborate with other iOS System UI engineers, UIKit engineers, performance engineers, and teams across all of software engineering to turn those designs into shipping features as we build and converge the release. You will have the opportunity to dig into deep and complicated performance problems that span all levels of the software stack with the goal of improving iOS in general. Each day will bring new challenges and opportunities to make changes large and small. Along the way, you will be expected to identify trends and anomalies and propose and build new tools to automatically analyze problems across the system. Our focus is on the core, but you will also be able to suggest improvements, prevent regressions, and help evangelize tools within the entire software team. Our goals are simple but the task is large; create the most amazing products on the planet that our customers will love.
Education & Experience
Bachelor of Computer Science or equivalent work experience