Performance Tools Engineer
London, Greater London, United Kingdom
Software and Services
The Performance Tools team is looking for developers with a passion for optimization to design, enhance, and innovate in creating the next generation of analysis tools. The team is part of Apple's Developer Tools group which provides the tools for developing and debugging software on Apple's innovative iOS, watchOS, tvOS, and macOS platforms. Because tools are our products, we have the unique opportunity to enhance our own development experience while improving the productivity of developers across the world.
- 3+ years macOS or iOS development experience
- Excellent verbal and interpersonal communication skills
- Expertise in C, proficiency in Swift and/or Objective-C
- Strong problem solving and debugging skills with lldb, gdb, or other interactive tools
- Software profiling and optimization background
- You are upbeat, adaptable, and results oriented with a positive attitude
- Experience implementing or improving development tools highly desirable
- Experience with C++, dtrace, mach, binary analysis tools a plus.
The Performance Tools team primarily focuses on profiling and analysis aspects of the development process, using runtime analysis techniques to instrument and introspect software to understand and improve it. The team is responsible for Instruments, Xcode's Memory Graph Debugger, command-line analysis tools like `heap`, `sample`, and `atos`, and runtime libraries that improve the Xcode debugging experience on Apple's platforms. These tools for analyzing app behavior, improving responsiveness, and minimizing resource consumption are critical to making great user experiences across Apple's platforms. We're looking for developers with a passion for making software better! Core interests should include areas like profiling, optimization, reverse engineering, debugging, analyzing large datasets, and data visualization. You should have an interest in all levels of the system, from user interface implementation to assembly-level debugging on either ARM or x86. It's also key that you have excellent technical communication skills and a strong passion for learning! With every new technology, framework, or product comes the need for new tools that expose important underlying system behaviors. You'll need to work effectively with Apple engineers of different disciplines and be able to drive development projects independently, collaborating to innovate through tough engineering challenges and find simple visualizations for complex problems.
Education & Experience
Bachelor of Science in Computer Science, or equivalent experience.
- If possible, provide a portfolio of your work. We love seeing what you've created, software or otherwise. Experience in the following areas are nice to have, but not required:
- • Experience working in an open source community