Senior Software Engineer, iCloud Foundation
NewBe an early applicantiCloud Foundation is looking for an experienced software engineer to help build the platform layer that Apple’s cloud services are built on. Our customers are Apple engineers, and the software we write is what lets their teams spend their time on product instead of on the infrastructure underneath it.
iCloud serves billions of customers across a globally distributed, multi-tenant estate, and every improvement to the layer beneath it makes every team above it faster. The problems here are the ones every service team would otherwise solve for itself, such as how a service is configured while it is running, how a change reaches users gradually and safely, what the authoritative record of a service is and what it depends on, or the frameworks every iCloud service is built on.
This is a senior role with unusual breadth. We are a small team with a large surface area, so you will be handed outcomes and constraints, work out what should be built, and become the person other teams come to. You will work directly with the engineering leader for the area. All of it is software other engineering teams build against, so the work is API and library design as much as distributed systems. We are looking for engineers who can manage technical and organizational complexity and drive a project from a simple idea to production.
Minimum Qualifications
- 7+ years of industry experience designing, implementing, and operating highly scalable distributed systems
- Deep working experience with programming languages such as Java, Kotlin, or Go
- Expertise in programming in concurrent and multi-threaded environments
- Experience building platform software that other engineering teams depend on, including API design, versioning, and migration
- Bachelor’s degree in an engineering-related field or equivalent related experience
Preferred Qualifications
- Strong background in functional programming with Scala, OCaml, or a typed functional style in any language
- Strong background in event streaming, e.g., Kafka
- Experience with KV data stores, e.g., Cassandra, FoundationDB, or DynamoDB
- Experience using AWS, GCP, and cloud-native technologies (Containers, Kubernetes, gRPC)
- Experience building the documentation, samples, and self-service onboarding that make a platform easy to adopt
