Infrastructure Software Engineer (Provisioning) - Apple Services Engineering
Job Description
Summary
People at Apple don’t just build products — they craft experiences our customers love and depend on. Apple Services Engineering (ASE) builds and supports the systems that make many of these daily experiences possible. If you’ve used Apple products, you’ve likely interacted with us. ASE teams are responsible for the systems and services that directly support those customers and their experiences. We focus on availability and automation of key services that run Apple infrastructure every minute of every day all around the world.
Description
The Provisioning team is part of the organization doing “Fleet Management” at Apple. We build and support new and existing critical infrastructural systems and frameworks which provide and support services like structured and unstructured storage, caching, queueing, searching, and much more at hyperscale. 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. These services operate at extremely large scale and store exabytes of data. The platform will support a variety of services based on open-source software, such as Kubernetes, Cassandra, Zookeeper, Kafka, Redis, etc, alongside internally developed services. This particular team is responsible for the automated delivery of all hardware (current or future) to production in our data-centers.
We are looking for a strong and enthusiastic developer to join us! This person will have a tremendous amount of individual responsibility and influence over the direction the core platform of many critical Apple internet services takes for years to come. You are someone with ideas and real passion for software delivered as a service to improve reuse, efficiency, and simplicity. This engineer’s work will affect hundreds of millions of users and be essential to the success of some of the most visible current and future Apple features.
We are looking for a strong and enthusiastic developer to join us! This person will have a tremendous amount of individual responsibility and influence over the direction the core platform of many critical Apple internet services takes for years to come. You are someone with ideas and real passion for software delivered as a service to improve reuse, efficiency, and simplicity. This engineer’s work will affect hundreds of millions of users and be essential to the success of some of the most visible current and future Apple features.
Minimum Qualifications
- BS/MS in Computer Science or similar field.
- Successful track-record and proven experience as a backend internet services software developer.
- Deep understanding of multi-threading concepts and design of highly concurrent applications.
- Understanding of distributed system concepts including: the CAP Theorem, micro-services, and the Twelve Factor App.
- Strong ability to identify and prioritize core features.
- Knowledge of SDLC, including continuous integration, testing methodologies, TDD and agile development methodologies.
- Proficiency in one or more high-level programming languages like Golang (preferred), Java, Python, Ruby or equivalent.
- Understanding of base internet infrastructure services including DNS, DHCP, LDAP, server virtualization, server monitoring.
Preferred Qualifications
- GPU knowledge.
- Experience with large scale server provisioning and maintenance (OpenStack Ironic, Metal3, MAAS, xCat, Netbox, Tinkerbell).
- Experience with development within Kubernetes ecosystem, including operator framework, controllers and CRDs.
- Experience with UI frameworks such as React, Angular or JQuery.
- Experience with network debugging to identify issues between services.
- Some exposure to hardware bootstrap and associated security (PXE, BIOS, TPM, secure boot, trusted computing).
- Some exposure to structured or unstructured storage and caching.
- Some exposure to automating operations processes via services and tools.
- Some exposure to configuration management and fleet orchestration via Puppet, Chef, Ansible, or others.
- Some exposure to cloud services (AWS S3/EC2/CloudFront/Steps).