Point your AI agent at freehire and let it find you a job.

Get the CLI →

Apple

NewBe an early applicant

Software Engineer, Object Storage, London

Posted Updated
Discussion

Summary

Software engineer (lead level) on Apple's Cloud Object Store team, developing an exabyte-scale distributed object storage platform used by hundreds of internal Apple services. Work centers on multi-tenant isolation and fairness, durability and availability at scale, performance optimization, and safely evolving the architecture.

Join the Apple Cloud Object Store team as a software engineer to help lead the development of one of Apple's largest storage platforms — used by hundreds of internal services at exabyte scale. You'll take ownership of some of the hardest problems in large-scale distributed storage: from keeping thousands of tenants fairly and safely sharing the same infrastructure, to improving durability, performance, and scalability as the platform continues to grow. This is a role for an engineer who can drive complex, ambiguous technical problems end-to-end and shape the direction of the platform, not just execute against a fixed spec.

Operating a shared storage platform at exabyte scale means constantly balancing competing demands: keep the system fast and available for everyone, protect it from any single tenant's traffic, and keep evolving the architecture without disrupting the services built on top of it. As a lead engineer on this team, you'll help set direction across several of these areas, including:

Multi-tenant isolation and fairness. Keeping thousands of tenants safely sharing the same infrastructure — enforcing quotas, shaping and rate limiting traffic, and containing the blast radius when one tenant's behavior threatens to degrade everyone else. Availability and durability at scale. Designing for hardware and component failure as a constant, not an edge case, while keeping data durable and available across a massive, distributed fleet. Performance and efficiency. Finding and eliminating bottlenecks in a complex system, and making sure optimization effort goes where it has the most impact. Architectural evolution. Retiring legacy approaches, simplifying fragmented systems, and making large-scale changes safely in a system that can't afford downtime.

Minimum Qualifications

  • In-depth experience as a backend software engineer with a strong grasp of computer science fundamentals: networking, filesystems, security concepts.
  • Experience designing, building, and operating large-scale distributed systems, with a strong grasp of concepts like availability, congestion control, observability, and fault tolerance.
  • Experience driving complex, ambiguous technical projects end-to-end and collaborating across teams to build consensus.
  • Experience with at least one of: multi-tenant resource isolation, rate limiting, or quota systems; large-scale storage systems; or distributed systems performance/reliability work.

Preferred Qualifications

  • Experience with flow control, overload protection, or admission-control systems (e.g., adaptive throttling, load shedding, backpressure).
  • Experience with object storage systems or similar backend storage engines.
  • Experience building observability/telemetry that makes complex system behavior explainable to engineers or customers.
  • Familiarity with distributed state-propagation protocols (e.g., gossip protocols).
  • Familiarity with modern data lake architectures and query engines

Skills

See also

Software Engineering jobs by country — openings, pay and top skills →

Tailor your CV for this role?

We couldn't check your fit for this role — add a CV to your profile to see it next time.

A new version of freehire is available