The SPEAR team in Apple’s Security Engineering & Architecture organization is hiring a collaborative apps and frameworks software engineer with a drive to improve the security of end user devices.
SPEAR is a dedicated team of software engineers with a passion for user security. We work with teams across Apple to improve the security of our operating systems. We focus on high impact projects ranging from surgical adoptions of memory safety technologies to wholesale refactors that reorient key system components to protect the security of our users’ devices. Our work results in major improvements to the security of Apple’s apps and services without compromising the polished user experience over a billion users rely on every day.
As an Apps and Frameworks Software Engineer in SPEAR, you will work with teams across Apple’s software stack to improve the security of our operating systems. You will deliver well-designed, robust, and maintainable infrastructure and mitigations that meaningfully improve end user security. Your work will help set the standard for cross-functional collaboration, thorough testing, and clear documentation.
Through the collective efforts of talented engineers like yourself, Apple’s products are the most secure consumer devices on the market. Our mission is to continue to advance the state of the art of end user security. Our goal isn’t simply to be the most secure: we’re working to ensure the safety of every user’s digital life, even against the most malicious and well-resourced adversaries.
Each project will involve solving unique challenges while handling the following core responsibilities:
Efficiently gain familiarity with the design and implementation of existing codebases.
Contribute to design of application, framework, or daemon security hardening projects such as memory safety technology adoption, mitigation deployment, sandboxing/isolation, refactoring, and other approaches as necessary.
Update existing software codebases or create new codebases as necessary to achieve project goals.
Implement projects using the most appropriate language, potentially including Swift, Objective-C, or C++.
Adopt or update isolated unit testing to thoroughly exercise changes; collaborate with QA engineers on functional testing.
Document changes and new architectural elements, creating training materials required for partner team to maintain changes going forward.
Communicate collaboratively and effectively during all project phases.
3+ years of experience designing software in object-oriented programming languages such as Swift, Objective-C, or C++Deep understanding of system-level concepts including multi-threaded design, synchronization, and interprocess communicationAbility to reason about the security or robustness of application softwareUnderstanding of how application software interacts with the operating systemAbility to communicate clearly and effectively about technical topics (verbal and written)Enthusiastic, empathetic, and collaborative approach to multi-functional projectsAbility to quickly get up to speed on new codebases and adjust your approach to meet the needs of diverse projects and requirements