Senior Software Engineer, Apple Services Engineering

Apple12 months ago
San Francisco, California, United States
Hybrid
Full-time
Junior Level (1-3 years)

Job Description

Position Overview

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 that securely stores users’ data and synchronizes it seamlessly across all their Apple devices.

CloudKit manages data at a massive scale! It is a strongly-consistent database that serves billions of active Apple customers, built to be performant, highly available, and extremely scalable. It is designed to the highest standards of user privacy, empowering developers to build highly collaborative and secure applications and serving as the storage foundation for Apple's signature cloud experiences like Photos, Drive, Notes, Keynote, and News. As part of a world-class team passionate about delivering high quality services, you will help introduce new fundamental capabilities that power entirely new applications and scale existing ones. We are looking for engineers with exceptional expertise in building fault-tolerant distributed systems who can excel in complex environments that obsess over the customer experience.

Key Responsibilities

  • 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 through production releases
  • Deploy, scale, and maintain highly concurrent and throughput-intensive services
  • Triage, investigate, and remediate production and operational issues

Required Qualifications

  • 7+ years of industry 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 an engineering-related field or equivalent related experience

Preferred Qualifications

  • Strong background with KV data stores, e.g., FoundationDB, DynamoDB, or Cassandra
  • Strong fundamentals in storage systems, including schema design, indexes, and transactions
  • Familiarity with high-performance caching mechanisms, e.g., Redis or Memcached
  • Experience 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

Required Skills

Fault Tolerance
Redis
DynamoDB
C++
Java
Cloud Technologies
Kafka
GCP
C
Distributed Systems
Multi-threaded Programming
Containers
X.509
FoundationDB
High-Performance Caching
Kubernetes
AWS
gRPC
Memcached
Event Streaming
Cassandra
TLS
KV Data Stores
Scalability
Schema Design