Software Engineer, Device Compute

London, Greater London, United Kingdom
Software and Services

Summary

Posted:
Weekly Hours: 35
Role Number:200552719
Imagine what we could do together. At Apple, new ideas have a way of becoming phenomenal products, services, and customer experiences very quickly. We’re looking for a driven but adaptable developer, working primarily in Go and Swift, but dipping into other languages like Python, Bash or Ruby as necessary, to help build a powerful platform that enables internal engineers to deliver incredible experiences to end-customers. Our team’s device cloud offers thousands of real and virtual Apple devices spanning hundreds of different hardware configurations, for use as remote development devices from desk and for automated testing in CI. Leveraging our device-centric API, engineers can use devices for for purposes such as low-level hardware bring-up using custom firmwares and kernels, validating ML model performance on released hardware all the way to automating the UI with XCTest to validate Apple’s cloud services. Join us to solve problems spanning maintaining a highly available fleet of thousands of Apple devices, constructing complex overlay networks and even SoC or USB debugging, all with the quality expected of Apple - to make this platform just work, like magic, every time!

Description

Apple’s device cloud team has an immediate opening for a software engineer working primarily in Go and Swift who will: - Collaborate across functions to maintain a fleet of Apple devices numbering in the thousands - Improve the functionality, observability, scalability, availability, usability, security, and performance of our services & infrastructure - Adapt cloud technologies and industry best practices to solve challenges unique to Apple workloads - Triage, investigate, and remediate production issues

Minimum Qualifications

Key Qualifications

  • 2+ years of experience in software development (incl. Internships)
  • A passion for software engineering
  • Experience designing or working with web services (HTTP+JSON, gRPC, etc.)
  • An understanding of Networks and Networking Protocols
  • Experience with, or interest in, Go or Server Side Swift
  • Doggedly troubleshoots distributed systems and networking issues

Preferred Qualifications

Education & Experience

Bachelor's Degree in Computer Science or related field, or equivalent related experience.

Additional Requirements

  • Experience in the below is a plus:
  • - Languages: Golang, Swift, C, C++, Objective-C, Python, Java, Scala, shell
  • - RPC libraries and protocols: SwiftNIO, protobuf, XPC, gRPC
  • - Cloud orchestration: Kubernetes, Docker, CI/CD
  • - Automation technologies: Ansible, Chef, Puppet, WebDriver
  • - Experience with IoT or other embedded development