Senior Software Developer - Java - Messaging Orchestration - Apple Music, iCloud & More
London, England, United Kingdom
Software and Services
The role is in Apple Services Engineering (ASE) in London. ASE is the team behind high profile services such as Apple iCloud, Apple Music, Apple TV+, Apple Arcade and more. We are looking for a senior software engineer to design and build the software for our customer engagement platform, used within Apple Services for message orchestration.
The people here at Apple don’t just build products — they build the kind of wonder that’s revolutionised entire industries. It’s the diversity of those people and their ideas that encourages the innovation that runs through everything we do, from amazing technology to industry-leading environmental efforts. Join Apple, and help us leave the world better than we found it.
Description
We have multiple openings on our team.
The ASE Customer Engagement engineering team is responsible for building the platform that enables communicating with millions of customers every day, across services such as Apple iCloud, Apple Music, Apple TV+, Apple Arcade, Apple News+, Apple Fitness+, Apple Wallet and more.
In this team, you would be responsible for designing, building, improving and maintaining server-side apps that process requests at phenomenal scale, with low latency and high availability, supporting customer messaging features for our Apple Services. These apps orchestrate customer messaging built by operations teams using our self-service platform. This includes targeting, personalising and A/B testing messages to grow our active user base for Apple Services.
The responsibilities as a senior member of the team include:
* Working with our QA and SRE teams to establish reliability and quality goals
* Anticipating, architecting and coding to cater for our highly-distributed mass-scale Apple ecosystem
* Frequently collaborating with multiple partner engineering teams and consumers of our platform
* Representing our team in meetings and driving consensus across participants
* Creating reusability across our features and our engineering stack e.g. utilising standard libraries and contributing to their development
* Creating technical design documents and driving consensus across stakeholders
* Introducing best practices and automation, and driving their acceptance
Experience in Java core programming is required.
Minimum Qualifications
- Experience in designing and building production APIs using micro-services written in Java is required
- Skilled at writing clean and high-performant code in Java
- Skilled at using test driven development to empower CI/CD workflows
- Using data structures, concurrency and design patterns
- Designing and building loosely coupled and eventually consistent distributed systems
- Communicating effectively, both written and verbal, with technical and non-technical cross-functional teams
Key Qualifications
Preferred Qualifications
- Technically leading software development projects across teams
- Making critical architectural decisions that have long-term impact on success
Education & Experience
Undergraduate degree related to computing or equivalent experience
Experience in Java core programming is required