Apple is looking to build a highly reliable, self-managing and scalable storage layer to support exabyte-scale data and diverse access patterns for its customer-facing services, including iCloud, iTunes, Siri and Maps.
Requirements
- Background in object, block or file system internals.
- Experience with modern storage devices such as zoned block devices, sequential-write media or emerging high-density magnetic recording technologies.
- Proficiency in one or more systems languages: Java, Rust, asynchronous and thread-safe programming.
- Strong problem-solving skills rooted in data structures, distributed systems, and concurrency.
- 7+ years of professional experience building and operating distributed systems.
- Demonstrated ownership and history of delivering production systems.
- Experience with distributed coordination challenges and shaping a platform that will underpin Apple’s cloud storage strategy
Responsibilities
- Design and build a storage substrate that provides a consistent abstraction over heterogeneous storage backends.
- Build scalable data distribution and placement algorithms to balance load and ensure durability.
- Implement robust redundancy mechanisms (replication, erasure coding, etc.) and automated recovery.
- Collaborate with multiple storage teams to ensure unified semantics and operational consistency.
- Collaborate with hardware engineering to integrate evolving drive capabilities into the unified storage layer.
- Contribute to system observability, correctness testing, chaos/fault-injection frameworks, and production hardening.
- Drive cross-functional design reviews and help define long-term technical strategy for Apple’s storage platform.
Other
- MS or PhD in Computer Science
- BS in Computer Science, or equivalent experience.
- Excellent written and verbal communication skills.
- 7+ years of professional experience
- Demonstrated ownership and history of delivering production systems