Apple's SPEAR team is looking to improve the security of end-user devices by hardening the lower levels of all of Apple's operating systems. This involves addressing vulnerabilities in critical components and ensuring the security of user data against sophisticated adversaries.
Requirements
- Experience developing software for low-level environments such as firmware, hardware drivers, kernels, or hypervisors
- Deep understanding of a system programming language such as C or C++
- Understanding of how low-level software is compiled to machine code and interacts with hardware
- Ability to quickly get up to speed on new codebases and adjust your approach to meet the needs of diverse projects and requirements
- Experience in use of memory safe languages, safer C++ abstractions, and C memory safety extensions.
Responsibilities
- Contribute to design of kernel, driver, and firmware security hardening projects, including memory safety technology adoption, mitigation deployment, sandboxing/isolation, refactoring, and other approaches as necessary.
- Update existing low-level software codebases or create new codebases as necessary to achieve project goals.
- Implement projects using the most appropriate language, potentially including C, C++, or Swift.
- 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.
- Efficiently gain familiarity with the design and implementation of existing codebases.
- Communicate collaboratively and effectively during all project phases.
Other
- Strong interest in security and a desire to develop your skills in that area
- Ability to communicate clearly and effectively about technical topics (verbal and written)
- Enthusiastic, empathetic, and collaborative approach to multi-functional projects
- Bachelor of Science in Computer Science or Computer Engineering, or equivalent experience/skills