Santa Clara Valley (Cupertino) , California , United States
Software and Services
Posted: Jul 20, 2021
Weekly Hours: 40
Role Number: 200267212
Come help us build the next generation cloud platform to support internet services across Apple. Our software provides storage at massive scale and with high reliability to product teams at Apple. We are looking for a software engineer to join our collaborative and friendly team to help us develop large scale services and infrastructure.
- A track-record and proven experience as a distributed systems software developer.
- Deep knowledge of non-blocking (asynchronous) and thread-safe programming, ideally in Java.
- Experience building, launching and operating infrastructure at scale.
- Understanding of database systems and distributed consistency algorithms a plus.
- Knowledge of continuous integration, testing methodologies, TDD development methodologies.
- Understanding of file system handling on Linux a plus.
- Understanding of C++ libraries and JNI integration a plus.
- Some exposure to structured or unstructured storage and caching.
We are building a distributed, ordered key-value database to support critical infrastructural systems and frameworks. These form the platform upon which many iCloud and other backend systems at Apple are built. The team is responsible for the next generation platform that will power Apple's infrastructural services. The database will have huge scale and store petabytes of data. We are looking for an experienced developer with a desire to learn to join as a member of this collaborative and friendly team. This person will have individual responsibility and influence over the direction the backend of many critical Apple internet services. The features shipped by this candidate will impact hundreds of millions of users of Apple products. - Responsibilities will include: - Design, build and maintain software & services to improve the feature set, availability, scalability and security of Apple's internal cloud infrastructure. Use proven testing methodology to assure system stability and performance. - Minimum requirements: - A bachelors degree in computer science or work equivalence. At least 5 years experience writing product quality code for a product or service. 10 or more years experience is a plus. At least 3 years experience with operating and shipping features for distributed systems.
Education & Experience
BS or MS in Computer Science or equivalent industry experience.