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 (XPC), memory allocator, threading library, and concurrency and synchronization primitives. These technologies provide a high quality, robust, and performant foundation on which iOS and macOS frameworks and applications are developed.
Requirements
- Fluency in the C programming language
- Experience with UNIX-like systems
- System design and architecture skills
- Strong understanding of operating system fundamentals like threading, synchronization primitives, inter-process communication, scheduling, and virtual memory
- Knowledge of operating system implementation, hardware architecture and assembly programming
- Knowledge of Swift or Objective-C
- Skilled at interface and/or API design
Responsibilities
- 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
- Participate in all phases of the 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
- Participate in design discussions, code reviews, and development across multiple technologies
Other
- The ideal candidate should be self-motivated and effective in operating independently, with a desire to learn and develop technical leadership.
- Excellent collaborative skills, with the ability to work with a team to design system architecture
- Passion for low-level system technologies
- Involvement in open source technologies and development communities such as Darwin, FreeBSD, Linux, etc.
- BS/MS in Computer Science or equivalent knowledge and experience