Back to Jobs

Distributed Systems Software Engineer

Come help us build the next generation cloud platform to support internet services across Apple. Our platform server engineering team develops and deploys software which forms the foundation for some of our most exciting services, including iCloud, Maps, iTunes, and more. Our software ensures that Apple's services are reliable, scalable, fast, and secure. We support both open source and home-grown technologies to provide internal Apple developers with the best possible platform. In this role you will have the unique opportunity to own and deliver some of the world's largest-scale cloud services.

We are looking for a world-class Software Engineer with deep experience in large-scale storage and streaming systems. We operate at incredible scale and are making exciting innovations across a range of infrastructure services to support teams building new features across Apple’s flagship products. We’re looking for someone who has worked with and contributed to Kafka, Zookeeper, Spark, and Storm — but we value potential as highly as experience. You’ll be familiar with the broader field of analytics, ETL, databases, and data warehousing. You’ll be excited by the prospect of working collaboratively with other groups to deliver truly amazing services to our users.

Key Qualifications

  • Experience and insight into designing, implementing and supporting highly scalable infrastructure services in Scala
  • Demonstrable experience developing and contributing to distributed compute frameworks like Kafka, Spark or Storm
  • Deep understanding of core CS including data structures, operating systems, algorithms, networking and concurrent programming
  • Strong background in Systems-level Java essential - garbage collection internals, Concurrency models, Native & Async IO, Off-heap memory management, etc.
  • Experience with Python is a plus
  • Experience in building automation and operations tools
  • Strong attention to detail and excellent analytical capabilities
  • Passion for developing, documenting, and testing clear, robust code
  • Excitement for Agile methodologies, including pair programming, TDD, and continuous delivery of software
  • Sound knowledge of UNIX and shell scripting
  • Great communication skills

Description

You will be able to demonstrate a strong practical understanding of how to develop practical, fault-tolerant high-performance distributed systems.

You'll have experience in industry or research developing robust, server-side Java, Scala, Python, or C++ code. You take responsibility; you can demonstrate creativity, initiative and the ability to work to deadlines. You feel a personal stake in the product you ship. You thrive in uncertainty and strive to bring order to it. You keep your eye on the ball; you build strong relationships; and you are constantly looking to improve yourself and your team.

Education

BS, MS or PhD, in Computer Science, or equivalent experience

Additional Requirements

Kafka, ZooKeeper, Flume, Hadoop, Spark, Storm, Cassandra and Big Data technologies strongly preferred

This role may require occasional international travel/transatlantic travel

Apple

Apple

Come help us build the next generation cloud platform to support internet services across Apple.

See more