Manager, Memory & Symbolication Tools

AppleApplyPublished 1 months agoFirst seen 4 days ago
Apply

Summary

What can you learn about a suspended or crashed program? That’s the mission of the Memory & Symbolication Tools team, building tools for introspecting program state on Apple platforms. Working at the common Darwin OS layers beneath these platforms, the team owns tools like `leaks`, `heap`, `vmmap`, `sample`, and `symbols`, along with symbolication frameworks and APIs. These are foundational to OS services and profiling tools that report, triage, and fix memory bugs, and they must be efficient, robust, and secure. Symbolication is critical to billions of devices daily, and these tools are used by developers worldwide.

This specific role is for a highly technical manager to lead a small team, working alongside other engineering experts to support new hardware and software optimizations. In addition, you'll help shape the team's vision and bring better intelligence and visualization to these tools. It’s a detail-oriented engineering leader role, where you’d be authoring and reviewing code on a daily basis.

Description

We're looking for developers who are passionate about improving software! This is within the Xcode Runtime Tools team, and core interests should include optimization, reverse engineering, security, debugging, 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, there’s a need for tools to understand system behavior. That’s why it’s key you have a strong passion for learning! You'll need to work effectively with Apple teams across different engineering disciplines, anticipate problems early, and communicate ideas clearly. You should be able to drive development projects independently, working with other teams to innovate and develop simple solutions to complex problems.

Memory is a limited shared resource, and optimizing it is critical for Apps and services to maintain competitive advantage. Apple’s tools distill process VM and heap into a portable .memgraph format for later analysis, containing type information, address space layout, and connectivity of objects on the heap. For a more in-depth introduction to these tools, check out: Analyze Heap Memory

Symbolication is all about undoing compiler and linker optimizations, mapping runtime addresses back to the symbols and source code that generated them. Apple’s tools require a deep knowledge of the Mach-O binary format and familiarity with DWARF, and they must be resilient to malformed input as a critical part of diagnosing crashes and other fatal runtime conditions. To learn more, check out: Symbolication: Beyond the Basics

Responsibilities

  • Lead a small team innovating and improving Apple's core memory analysis tools
  • Support symbolication of mission-critical tools in Apple’s ecosystem
  • Deepen your understanding of virtual memory, heap, and runtime data structures
  • Present your work to developers within Apple and in larger forums like WWDC
  • Investigate the impact of upcoming technologies and features
  • Apply AI, graph theory, and reverse engineering skills to real-world problems

Minimum Qualifications

  • 5+ years macOS and/or iOS development experience
  • Expertise in Swift and C, C++, or Objective-C
  • Excellent verbal and written communication skills
  • Passion for mentoring others and providing clear and actionable feedback
  • Ability to facilitate creative, pragmatic, solution-focused technical discussions
  • Strong operating systems understanding around process lifecycle and crashes
  • Detail-oriented coding skill, especially for edge cases and security implications
  • Experience in computer science or a related field commensurate with a 4-year degree

Preferred Qualifications

  • Prior engineering management experience
  • Problem solving and debugging skills with lldb, gdb, or other interactive tools
  • Experience using AI technologies in authoring, reviewing, and debugging code
  • History of designing, implementing, or improving development tools
  • Familiarity with reverse engineering, exploit analysis, or fuzzing tools
  • Understanding of macOS internals, Mach-O binaries, and Mach APIs
  • If possible, we’d love to see an example of your relevant work, such as a personal project or open source contribution
  • If you believe you have relevant transferable skills not listed on this posting, please share that information via a Cover Letter