Machine Learning System Software Engineer

AppleApplyPublished 6 hours agoFirst seen 6 hours ago
Apply

Summary

At Apple, we're on the cutting edge of delivering transformative experiences through Artificial Intelligence. If you're passionate about pushing the boundaries of AI and hardware optimization, we want you to join our team! As a Machine Learning System Software Engineer on the Apple Neural Engine (ANE) team, you'll work to bring high-performance, low-power AI solutions to life on iconic Apple products like the Vision Pro, iPhone, iPad, Mac, and more.

Description

This is a dynamic opportunity to work in a creative, collaborative environment while developing groundbreaking technologies that will shape the future of computing! We are looking for an engineer with deep expertise in system software technology who is eager to tackle new challenges and responsibilities as the role evolves. As the position progresses, there will be opportunities to demonstrate technical leadership, influence key design decisions, collaborate with and support other engineers, and help guide the direction of Apple's AI-driven capabilities across the ecosystem. Are you ready to help us deliver the next groundbreaking Apple products?

Responsibilities

  • Design and implement API's for Apple's Neural Engine - defining how clients load, compile, schedule and execute models on device
  • Architect APIs which provide client control of model lifecycle management, memory allocation strategies, multi-model scheduling, and concurrent execution — ensuring the runtime scales with new hardware capabilities
  • Collaborate deeply with driver, firmware and compiler teams to co-design the runtime-to-silicon interface, ensuring new hardware features are exposed with correct abstractions
  • Profile and optimize end-to-end inference paths, identifying bottlenecks in scheduling, compilation, and inference execution
  • Support clients in adopting APIs and ensuring efficient integration

Minimum Qualifications

  • Experience defining interfaces that are used by other teams or external developers, with attention to lifecycle, error handling, and forward compatibility
  • Deep proficiency in C, C++, Swift or Objective-C with experience in large, production system software
  • Understanding of runtime systems: process/thread models, memory management, IPC/RPC, and resource lifecycle
  • Understanding of software-hardware interfaces: registers, DMA, command queues, or similar accelerator interaction patterns
  • 3+ years shipping production system software; Bachelor's in CS, CE, or related field

Preferred Qualifications

  • Experience building or extending ML runtimes, inference engines, or accelerator driver stacks (e.g., TensorRT, ONNX Runtime, XLA, Metal, Vulkan compute, or similar)
  • Familiarity with ML model compilation pipelines and how runtime APIs interact with compiler outputs (graph IR, compiled binaries)
  • Experience with multi-client runtime scenarios: arbitrating hardware access, managing priority/QoS, and handling client lifecycle (ex: connect, disconnect, crash recovery)
  • Knowledge of neural network inference: operator execution, tensor memory layout, pipelining, and batching strategies
  • Strong communication skills and experience working across team boundaries (framework teams, compiler teams, hardware teams)