Software Engineer - Data Analysis

London, Greater London, United Kingdom
Software and Services

Summary

Posted:
Role Number:200558842
We are looking for an experienced and motivated Software Engineer to join the Apple Services Engineering team! We build and seamlessly integrate technologies that enrich people’s lives. You will join a diverse team of people who are passionate about developing new technologies and services for our customers. You will be collaborating with many different teams within Apple to further improve the quality of our products. The Infrastructure Tools SLO team focuses on SLO reporting for teams across Apple. We support a wide variety of organisations and we are currently in the processes of building a highly scalable ETL system and migrating our legacy tools over to this new system. Plenty challenges await us due to the unique nature of working with our telemetry data and we are seeking a talented Java engineer to help us. You are an engineer that is passionate about customer success and has the ability to work with external engineering teams to integrate our tools. We are looking for someone who can have a huge impact on the way we work.

Description

Infra Tools SLO team develops SLO reporting software and working with customers to ensure they can make informed development/deployment decisions based on SLIs (Service Level Indicators) that measure service reliability. Our core systems are tasked to collect large amounts of telemetry data, and to compute SLIs described by customers. Our customers iteratively work to improve SLIs to achieve SLOs. We provide a Dashboard and an API for our customers to consume this data.

Minimum Qualifications

  • In depth experience writing scalable data driven micro-services and restful-APIs (using OpenAPI) in Java using the Spring Framework. Your experience must include delivering enterprise-level applications with a focus on production reliability. You must have experience improving database performance, and profiling and load testing application performance issues. Experience in writing distributed ETLs or data ingestion systems is preferable.

Key Qualifications

Preferred Qualifications

  • A self-starter with the initiative to write and review technical designs with an excellent understanding of distributed systems, database systems (not limited to RDMS) and algorithms.
  • The ability to write clean, readable, maintainable and testable code using best practices and patterns and to give constructive feedback to your colleagues. The ideal candidate will sensibly and incrementally refactor work to improve code quality and pay-off tech debt.
  • Understand SRE principles, such as observability, SLOs and on-call and maintaining run-books.
  • Good understanding deploying software on Kubernetes is essential. The ideal candidate will have experience writing infrastructure as code.
  • Practical experience in DevOps from debugging OS/Networking issues to CI/CD
  • Using Redis to snapshot data for data processing is preferred
  • Experience processing data using Apache Spark is a bonus

Education & Experience

Additional Requirements