Senior Software Engineer – Big Data & Real-time Streaming

Are you applying to the internship?

Job Description

Senior Software Engineer | Apple

The Tone:
This is a full-time role at Apple, located in In-person London, London. You will be instrumental in crafting elegant solutions to distributed problems involving billions of daily data points. The position demands the ability to manage business complexity while delivering reliable, scalable systems. You will build data pipelines and real-time streaming applications that power critical Apple services such as Apple Music, Shazam, Apple Podcasts, and Fitness+. AI is a core part of how we work, with this role supporting a modern AI stack that drives features and recommendations.

The TL;DR
• Role: Full Time
• Type: Full-time
• Location: In-person London, London
• Team: Engineers across Apple, collaborating with product, business, and client engineering teams.
• Mission: Build data pipelines and real-time streaming applications powering key Apple services.
• Tech Stack: Spark, Flink, Kubernetes, Docker, Kafka, Trino, Iceberg, Cassandra, Java, Scala, Claude

What You’ll Actually Do
• Design and build distributed compute frameworks, data pipelines, and real-time streaming applications that process billions of data points per day.
• Collaborate with partners to translate business questions into clear technical specifications, defining datasets, metrics, and requirements.
• Drive technical direction for initiatives, from problem discovery through to production, balancing cost, complexity, and performance.
• Share ownership of high-throughput, low-latency production systems, including on-call responsibilities and proactive system hardening.
• Champion testing and engineering best practices through thorough code and design reviews, and by mentoring other engineers.

The Must-Haves
• Background: Bachelor’s or Master’s degree in Computer Science, Software Engineering or equivalent experience. This role requires substantial experience in designing, building, and operating business-critical, large-scale distributed systems.
• Experience: Substantial experience in designing, building, and operating business-critical, large-scale distributed systems.
• Skills: Fluency in at least one statically typed language, ideally Java or Scala, with a strong grasp of big-data fundamentals including concurrency, memory management, networking, and performance optimisation. An in-depth understanding of at least one distributed or big-data system such as Kafka, Flink, Spark, Trino, Iceberg, or Cassandra. Demonstrated ability to gather requirements and translate ambiguous business needs into clear, accurate technical specifications, coupled with a focus on quality, reasoning about complex failure modes, and delivering well-tested, maintainable code.
• Bonus: Practical experience maintaining large-scale data pipelines with Spark and Flink. Experience with cloud, container, and infrastructure tools like Kubernetes and Docker. Effective use of AI tools such as Claude in day-to-day engineering. Contributions to open-source data-processing projects and excellent written and verbal communication across distributed teams.

Related Jobs