The Darwin Runtime team in Core OS is looking for enthusiastic engineers interested in developing low-level system technologies for Apple’s operating systems. Darwin is the UNIX-like foundation at the heart of all Apple’s operating systems, stretching from the kernel up through low-level user components. The Darwin Runtime team is responsible for building the low-level user space runtime technologies like Grand Central Dispatch (GCD), inter-process communication systems, memory allocator, threading library, and concurrency and synchronization primitives. Other than being the foundation for iOS and macOS frameworks and applications, these technologies are deeply integrated into the Swift programming language to guarantee robust and high performant primitives built from the ground up.
The ideal candidate should be self-motivated and effective in operating independently, with a desire to learn and develop technical leadership. Team members are welcome and encouraged to participate in design discussions, code reviews, and development across multiple technologies. Our environment fosters technical innovation, meaningful technology ownership, and a liberating amount of autonomy!
You will be responsible for working on a range of technologies that form the foundation of Apple’s operating systems. The work would include projects such as:
Design and implement new features and APIs for Darwin Runtime technologies like GCD, XPC, pthread, and malloc
Analyze Apple’s operating systems to understand the structure of the software and use that knowledge to make deep changes across the entire stack
Architect high-security environments to improve customer security and privacy
Work with Swift language team to design and develop features to provide operating systems integration
An engineer in the Darwin Runtime team would regularly:
Participate in all phases of software development cycle: from problem definition and design, through implementation, testing, and debugging
Diagnose and resolve issues across different layers of the stack
Work with cross functional teams to enable developer and product requirements
Passion for low-level system technologiesFluency in the C programming languageExperience with UNIX-like systemsSystem design and architecture skillsStrong understanding of operating system fundamentals like threading, synchronization primitives, inter-process communication, scheduling, and virtual memoryExcellent collaborative skills, with the ability to work with a team to design system architecture