Software Engineer

Santa Clara Valley (Cupertino), California, United States
Software and Services

Summary

Posted: Nov 2, 2018
Role Number: 200003099
The CloudKit team works collaboratively with other software teams to provide the best service integration on iOS, macOS, tvOS and watchOS devices. Hundreds of millions of iPhone, iPad, Apple Watch, Apple TV and Mac users rely on our code to sync and back up their data when they’re on the move.

Key Qualifications

  • - Strong programming skills and 3+ years of experience in C, Objective-C or Swift
  • - History of shipping software on tight schedules
  • - Experience with database performance work, parallelism, event-based programming, inter-process communication

Description

We work on the client-side of the iCloud services (CloudKit, iCloud Backup, NSUbiquitousKeyValueStore APIs), building daemons and frameworks running on all Apple platforms. IN THIS ROLE YOU WILL DO EVERYTHING FROM: - Protocol design - Work cross functionally with the server team, to work with the file system and network stacks in our daemons - Craft APIs for developers THE CHALLENGES INCLUDE: - Scalability - Reliability - Power and performance, critical at this scale (both in the number of users and in the volume of data per user) and for the integration of these iCloud services with the OS. This job requires both low level (C/Objective C, libdispatch, POSIX APIs) and system-level skills (synchronization protocols, framework design, IPCs, multi-process performance work, system-wide resource sharing.) Reliability is essential, and we’re looking for engineers with a real passion for building complex systems that will seamlessly recover in the event of errors. We’re passionate about both junior and senior engineers.

Education & Experience

Bachelor of Computer Science, Computer Engineering or equivalent

Additional Requirements

  • - Familiarity with sync, backup, diff and merge algorithms, network performance work
  • - iOS and Mac OS X development tools including Xcode, Instruments, git
  • - Self-starter, self-motivated, independent, and dedicated
  • - Proven ability to work on a large project