Apple-posted 3 months ago
Cupertino, CA
5,001-10,000 employees

Apple is where individual imaginations gather together, committing to the values that lead to great work. Every new product we build, service we create, or Apple Store experience we deliver is the result of us making each other’s ideas stronger. That happens because every one of us shares a belief that we can make something wonderful and share it with the world, changing lives for the better. It’s the diversity of our people and their thinking that inspires the innovation that runs through everything we do. When we bring everybody in, we can do the best work of our lives. Here, you’ll do more than join something — you’ll add something. The Core Runtimes Trace Technologies Team within Apple’s Core OS organization is looking for an enthusiastic systems engineer interested in developing system software for introspection capabilities across Apple’s operating systems. Your work will power tools that shine a light on dark corners of the system by identifying critical performance and correctness bugs invisible to traditional instrumentation or sampling-based tools. Join a passionate, highly skilled team focused on building next-generation performance and analysis insight capabilities powered by custom-designed Apple Silicon introspection technologies. This is an incredible opportunity to tackle challenging problems spanning OS integration, SoC and CPU micro-architecture analysis, and hardware-software co-design that directly impacts every Apple device.

  • Design and implement sophisticated hardware-assisted tracing infrastructure that forms the backbone of Apple's performance and debugging ecosystem.
  • Collaborate closely with silicon designers, kernel engineers, and developer tools teams to create capabilities that push the boundaries of what's possible in system introspection.
  • Strong background in C++.
  • Solid understanding of basic algorithms and data structures.
  • Understanding of operating systems fundamentals (e.g. system calls, virtual memory, interrupts, processes, dynamic loader).
  • Low-level software development experience (e.g. userspace library, kernel, firmware, or RTOS).
  • Understanding of computer architecture fundamentals (e.g. RISC pipeline, cache coherency, branch prediction, virtual address translation).
  • Familiarity with a scripting language (e.g. Python, bash).
  • Debugging skills (e.g. LLDB or GDB).
  • Excellent written and verbal communication.
  • Experience with trace mechanisms.
  • Performance analysis and instrumentation.
  • Compiler Development (e.g. LLVM).
  • Familiarity with ARM architecture and instruction sets.
  • Static/dynamic program analysis.
  • Security analysis.
  • Reverse engineering.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service