The Runtime 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. Runtime Tools exist to understand how code runs, mapping the execution back to code and the system calls responsible. Memory is also an important and limited shared resource, making intelligent, developer-friendly tools critical for identifying optimization opportunities. Core responsibilities of the role include working with Apple’s internal performance optimization engineers, Swift and Objective-C runtime teams, and frameworks teams to provide symbolication services and introspect memory usage across Apple's ecosystem. This role is within Apple's Xcode group which encompasses more than just the IDE — providing tools like Instruments and CLI 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 primary users are developers, making it an opportunity to influence and improve the productivity of developers and efficiency of Apps all across the world. The Memory & Symbolication team primarily focuses on runtime analysis techniques to introspect running software and on-disk binaries to understand and improve them. The team is responsible for command-line tools like `leaks`, `heap`, `vmmap`, `sample`, `atos`, `symbols`, symbolication services and frameworks, Xcode's Memory Graph Debugger, and runtime libraries that improve the built-in debugging experience on Apple's platforms. These tools and services for process analysis are used on over a billion devices and by developers worldwide who make life-changing ideas a reality. We're looking for developers who are passionate about making software better! Core interests should include areas such as profiling, optimization, reverse engineering, debugging, security, graph theory, and data visualization. You should have an interest in all levels of the system with the ability to connect OS concepts like virtual memory with language-level tools such as runtime reflection and Swift Concurrency. With every new technology, framework, or product Apple releases there's a need for tools to help expose and explain important 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 ideas clearly. You should be able to drive development projects independently, collaborating with other teams to innovate in solving engineering challenges, and iteratively develop solutions to novel and complex problems.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Manager
Education Level
No Education Listed
Number of Employees
5,001-10,000 employees