Apply for this jobThe Apple Media Products Engineering team is one of the most exciting examples of Apple’s long-held passion for combining art and technology. These are the people who power the App Store, Apple TV, Apple Music, Apple Podcasts, and Apple Books. And they do it on a massive scale, meeting Apple’s high expectations with high performance to deliver a huge variety of entertainment in over 35 languages to more than 150 countries.
These engineers build secure, end-to-end solutions. They develop the custom software used to process all the creative work, the tools that providers use to deliver that media, all the server-side systems, and the APIs for many Apple services.
Familiarity with modern architectures, such as micro-services or server-less computing
Proficiency in modern software engineering techniques and best practices
Deep knowledge of data structures, algorithms, concurrency and design patterns
Experience building loosely coupled, eventually consistent distributed systems
Exposure to frameworks for network applications (Netty, Hystrix, Jersey, RESTEasy, DropWizard or similar)
Familiarity with relational databases and NoSQL stores (Cassandra, Voldemort, DynamoDB, Bigtable or similar)
Be an advocate and driver for test automation and good software engineering practices
Knowledge of test automation frameworks (JUnit, JMock, Mockito, REST Assured, ScalaTest or similar)
Critical thinking and curiosity driven, problem solving attitude and attention to detail
Interest and ability to pick up new technologies quickly The AMP Customer Engagement engineering team is responsible for building the platform and services that enable communication with millions of subscribers every day, across services such as Apple Arcade, Apple Music, Apple TV+ and more.
In this role you will be responsible for designing, building and maintaining server-side components that process requests at phenomenal scale, with low latency and high availability, supporting many features across many of our services.
As a member of the team, you will be encouraged to propose, design and implement solutions, while taking ownership of critical components of the stack. The right person will be highly experienced in building scalable distributed systems, using Java or Scala. You will need to be capable of writing well-architected, clearly documented and testable code, that new team members can easily become familiar with.
The role requires someone who can interpret both technical and high-level business requirements, make informed design decisions and collaborate to deliver high quality finished products that conform to existing design patterns and utilise standard libraries and conventions. We work in a team oriented manner with an eye towards code re-use, testability and performance. The ideal candidate will have phenomenal interpersonal skills and come with a real passion for iterating on products.
We work in a fast-paced environment, iterating rapidly while remaining open to feedback and debate along the way. You should feel comfortable explaining your designs and proposals to your peers, while being capable of providing sound and solid technical justification for your decisions. Strong collaboration with business partners is expected, in order to deliver sound engineering solutions. You pay close attention to details and engineering quality, but also keep sight of the bigger picture.Apply for this job