Dynamic Linker Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
The dynamic linker is the cornerstone of nearly all of the software running on Apple’s operating systems, allowing teams of developers to share code with each other, to build software quickly, and to use system resources efficiently. As a dynamic linker engineer, you will work on a critical piece of Apple’s iOS, macOS, watchOS, and tvOS platforms, where the changes you make can benefit every process running on these operating systems. You will work closely with other OS engineers to support new features and to make system performance faster and better. You will also work with other Developer Technologies engineers on new tools that our third party developers use to build and ship apps. Much of our work is open source, either in LLVM or as part of Apple Open Source. The ideal candidate understands how linkers cooperate with compilers and debuggers as part of a complete development workflow. Brainstorming efficient and pragmatic solutions to real world problems requires creativity and an enthusiasm to dig into details. This is a highly visible role. Dynamic linker engineers routinely communicate upcoming changes to a diverse set of internal audiences, from individual engineers to entire teams and divisions. You will have the opportunity to interact with our third party developers at industry events such as the World Wide Developer Conference and at LLVM.org.
- A passion for building powerful and innovative software tools
- Excellent software system design/programming skills in C++
- Experience with building dynamic linkers, dynamic libraries, and related low-level tools
- Solid understanding of data structures and programming techniques common in performance-critical code
- Experience with branch merging strategies in source control systems such as git and subversion
- Knowledge of OS tools and UNIX internals is important, knowledge of macOS and iOS is especially helpful
- Familiarity with Apple’s Mach-O file format is helpful
As a dynamic linker engineer, you will help design and implement changes to the linker and the Mach-O file format to support new OS features and developer tools. You will write and run tests that measure the correctness and performance of our tools. You will also work with internal and external software developers to help them understand how to use our tools efficiently. The position is based in Cupertino, California. International candidates are welcome to apply but will need to relocate; the company will sponsor a visa. Ideal candidates will have skills in multiple of the listed areas, but expertise in all of them is not required.
Education & Experience
B.S. in Computer Science or equivalent experience