Software Engineer, Apple Services Engineering
Cupertino, California, United States
Software and Services
We are looking for an experienced Software Engineer to help develop the next-generation of Apple’s cloud services infrastructure. You will be working on CloudKit, Apple’s foundational privacy-focused database platform, which securely stores users’ data and seamlessly keeps it synchronized across all their Apple devices.
CloudKit manages data at a massive scale! It is a strongly-consistent database of structured data that serves billions of active Apple customers. Considered the bedrock of iCloud, it is purpose built to be performant, highly available, and extremely scalable. CloudKit is a framework designed to the highest standards of user privacy that not only empowers developers to build highly collaborative and secure applications but is also the storage foundation for Apple’s signature cloud experiences, such as Photos, Drive, Notes, Keynote, News, and many third-party applications!
We are a world-class team who has a real passion for engineering and delivering high quality services to Apple’s customers. As a key member of a versatile organization, you will introduce new fundamental capabilities that will help power entirely new applications and scale existing ones.
Description
We are looking for engineers who have exceptional expertise in building fault-tolerant distributed systems. Our engineers demonstrate unique leadership skills and can excel in a complex environment that obsesses about the customer experience. As a software engineer on the core components of CloudKit, you will:
• Design, develop, and support a multi-tenant platform with many underlying technologies
• Partner with teams across Apple to develop and ship new customer-facing features
• Drive end-to-end project execution, from design reviews and through production releases
• Deploy, scale, and maintain highly concurrent and throughput-intensive services
• Triage, investigate, and remediate production and operational issues
Minimum Qualifications
- 4+ years experience developing software in Java, C, or C++
- Experience working with distributed NoSQL and relational database technologies
- Expertise in synchronous and asynchronous network application I/O frameworks
- Expertise in programming in concurrent and multi-threaded environments
- Industry experience building and operating large-scale multi-tiered distributed systems
- Bachelor's degree in Computer Science, Software Engineering, or an equivalent degree.
Key Qualifications
Preferred Qualifications
- Strong background with KV data stores, e.g., FoundationDB, DynamoDB, or Cassandra
- Strong fundamentals in storage systems, e.g., schema design, indexes, and transactions
- Familiar with high-performance caching mechanisms, e.g., Redis or Memcached
- Familiar with event streaming and queueing systems, e.g., Kafka
- Experience using AWS, GCP, and cloud-native technologies (Containers, Kubernetes, gRPC)
- Experience with TLS, X.509 certificates, or similar security and cryptographic protocols
Education & Experience
Additional Requirements
Pay & Benefits
Apple is an equal opportunity employer that is committed to inclusion and diversity. We take affirmative action to ensure equal opportunity for all applicants without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or other legally protected characteristics. Learn more about your EEO rights as an applicant.