Summary
Posted: Oct 19, 2020
Weekly Hours: 40
Role Number:200191107
The Performance Tools team is looking for developers with a passion for memory and resource optimization to enh...Summary
Summary
Posted: Oct 19, 2020
Weekly Hours: 40
Role Number:200191107
The Performance Tools team is looking for developers with a passion for memory and resource optimization to enhance, adapt, and innovate in creating tools for the next generation of software and hardware on Apple's platforms. Memory is an important and limited shared resource, making intelligent, developer-friendly tools critical for identifying optimization opportunities. Core responsibilities include working with Apple performance optimization engineers, Swift and Objective-C runtime teams, and frameworks teams to introspect memory usage across Apple's ecosystem.
Apple's Developer Tools group provides the tools that allow dreamers, makers, and shapers to design, write, build, debug, profile, and deploy software for iOS, macOS, tvOS, and watchOS. Tools development is a uniquely rewarding area as the software's users are other developers, and it's an opportunity to influence and improve the productivity of developers all across the world who make life-changing ideas a reality.
The Performance Tools team primarily focuses on creating profiling and optimization tools, using runtime analysis techniques to instrument and introspect software to understand and improve it. The team is responsible for tools such as Instruments, Xcode's Memory Graph Debugger, command-line analysis tools like `heap`, `sample`, and `atos`, and runtime libraries that improve the built-in debugging experience on Apple's platforms. Tools for analyzing app behavior, improving responsiveness, and minimizing power/memory consumption are critical to making great user experiences across Apple's platforms.
Key Qualifications
We are looking for developers who are passionate about making software better! Core interests should include areas such as profiling, optimization, reverse engineering, debugging, summarizing large datasets, and data visualization to effectively describe complex systems. You should have an interest in all levels of the system with the ability to combine OS concepts like virtual memory usage and page faults to language-level tools such as heap closures and runtime reflection.
With every new technology, framework, or product there's a need for tools that can expose important underlying system behaviors. As a result, it's key that you have a strong passion for learning! You'll need to work effectively with Apple teams of different engineering disciplines, anticipate problems early, and communicate expertise clearly. You should be able to drive development projects independently, collaborating with other teams to innovate in solving engineering challenges, and iteratively developing solutions to complex problems.
Responsibilities/Opportunities:
Innovate and improve the usefulness of Apple's core memory analysis tools
Acquire a deep knowledge of the layout of VM, heap, and runtime data structures on Apple platforms
Present your work to developers across Apple or in larger forums like WWDC
Help investigate the impact of upcoming technologies on Apple's platforms and operating systems
Develop strategies for detecting memory regressions in continuous integration systems
Apply graph theory and UX design to real-world memory tools!
Education & Experience
Bachelor of Science in Computer Science, or equivalent experience.
Additional Requirements
Our free job seeker tools include alerts for new jobs, saving your favorites, optimized job matching, and more! Just enter your email below.