
Site Reliability Engineer (SRE) - Object Storage
Required skills
- Object Storage
- Linux
- Linux system internals
- distributed storage systems
- stateful systems
- distributed databases
- block storage
- file storage
- provisioning
- data migration
Nice to have
- automate manual operations
- deployment of storage systems
- change management
- failure domains
- hardware lifecycle management
- configuration management
Role summary
Apple Cloud is seeking seasoned software and systems engineers for its Object Storage SRE team. This role involves significant individual responsibility and influence over the platform's direction, impacting hundreds of millions of users. The SRE will tackle challenges in building and operating next-generation distributed storage systems at scale, across multiple data centers. Responsibilities include understanding priorities, owning projects, crafting and delivering solutions, providing technical feedback, and driving technical standards. The role requires expertise in storage, data analysis, programming (Go, Java, Python, Rust), Linux internals, networking, and distributed systems. An on-call rotation is expected. The team operates in a hybrid, cross-timezone environment.
Description
We are looking for seasoned software and systems engineers to join the Object Storage SRE team at Apple. The role involves tremendous amount of individual responsibility and influence over the direction the platform, shaping its use by many critical Apple Cloud services for years to come. You are solution-oriented and have a passion for software delivered as a service to improve reuse, efficiency, and simplicity. Your work will affect hundreds of millions of users and be essential to the success of some of the most visible current and future Apple features. The role involves understanding the team's priorities; taking ownership of projects or deliverables; crafting solutions and building buy-in for those designs; and successful delivery of those designs in order to meet the project goal. The role involves giving technical feedback to colleagues to assist them in the delivery of their designs, features and projects, as well as driving technical standards across the two-site team in collaboration with other senior members of the team. The team has an on-call rota including the week-ends and the successful candidate should expect to handle alerts and other critical issues in order to maintain a high level of availability and functionality for our provided services. The team is divided into two shards in UK and US and cross-timezone meetings are a core feature of how our team collaborates, reaches agreements, and executes to deliver projects. At Apple Cloud, we run a mix of open source, vendor licensed, and internally developed tools to perform functions such as system configuration management, provisioning, software development & deployment, logging, and monitoring. You'll learn these tools and have opportunities to improve them. We think critically and strive to balance the best solution with the need to get things done for each engineering challenge we face. Good ideas are heard and results are rewarded. The candidate may be expected to travel to different Apple locations in the US or EU.
Minimum Qualifications
4+ years experience in building, operating, and scaling distributed storage systems in a private, public, or hybrid cloud environment, or working with other large-scale, stateful systems such as distributed databases. The ability to design, author, understand, and release code in languages like Go (preferred), Java, Python, or Rust. Good understanding of block, object, and file storage solutions in Linux (such as LVM, XFS, ext4, S3, Ceph, Gluster, NFS). Understanding of Linux internals, standard networking protocols, and distributed systems. Experience with provisioning, data migration, backup & recovery, at-scale testing, disaster recovery, and capacity planning.
Preferred Qualifications
Acute drive to automate manual operations and to improve them through repeated iteration. Awareness of best practices for deployment of storage systems - implication of physical and virtual deployment models to change management. failure domains, hardware lifecycle management, etc. Hands-on experience managing large numbers of diverse systems with configuration management or software delivery platforms (such as Puppet, Chef, Ansible, and Spinnaker). Experience with deploying, supporting and monitoring new and existing services, platforms, and application stacks. Familiarity with microservices architecture and container orchestration with Kubernetes. Familiarity with relational & non-relational databases (such as Cassandra, Postgres, & RocksDB)
Sample Apple interview questions
- 1
Design a typeahead box for a search engine
system designmedium - 2
Design a rate limiter
system designmedium - 3
Architect a key-value store for distributed systems.
system designmedium - 4
Design a system to schedule jobs in a distributed environment
system designmedium
Get started to unlock a personalized interview prep pack for this role.
Similar roles
Human Factors Engineer-ARCApple · Cupertino, CA · Onsite
Wi-Fi Certification Quality Engineer, Wireless Technologies & EcosystemsApple · Cupertino, CA · Onsite- Senior Site Reliability Engineer - Compute PlatformsFive9 · San Ramon · Hybrid
- Staff Site Reliability Engineer (SRE)Virtru · Remote · Remote
- Director, Site Reliability EngineeringHHAeXchange · Remote · Remote
- Staff Site Reliability EngineerRevolution Medicines · Redwood City, CA · Hybrid
