Systems Software Engineer, Compute
Summary
Builds lifecycle management and provisioning software for Apple's internal device cloud, supporting hardware prototypes through launch across iOS, macOS, watchOS, tvOS, and visionOS. Day-to-day spans low-level kernel/debugging work (USB, virtualization, power, networking) and high-level distributed systems design, using languages like C, C++, Rust, or Swift.
Apple is looking for a Software Development Engineer to work on its internal device cloud, supporting all of Apple’s hardware, software & services. Your work will help Apple ship entirely new products and features, as well as providing critical infrastructure to ensure existing ones continue to meet a high standard.
You will join a high-performing software development team within the Services engineering organization building lifecycle management software providing the core provisioning functionality for our device cloud. The engineers on our team possess a broad variety of expertise ranging from low-level kernel debugging including USB, virtualization, power, and networking subsystems, to high-level system design and nuanced understanding of end-user experience. This broad and ambitious role will allow you to work with all of Apple’s hardware from the earliest phases of prototypes all the way through to their launch date; You will have exposure to the latest and greatest software features from their initial concepts on Apple’s iOS, watchOS, tvOS, visionOS, and macOS platforms and work on integrating our software with features in these operating systems. You will get to collaborate with teams across the globe from nearly all engineering organizations at Apple in this role with broad cross-functional exposure.
Minimum Qualifications
- Languages: Familiarity with a programming language well suited to systems programming; like C, C++, Rust, or Swift (for Servers)
- Programming, Networking (HTTP, TCP/UDP, DNS, TLS), Distributed System Design
- Resourcefulness: Excellent analytical, problem-solving, and debugging skills
- End-to-end ownership: management of projects from low-level technical design up to the interface and user experience
- BS in Computer Science / related fields and 6+ years of experience or MS with 4+ years of experience.
Preferred Qualifications
- Knowledge: Strong foundation in a few of Operating System Fundamentals, Systems Programming, Networking (HTTP, TCP/UDP, DNS, TLS), Distributed System Design
