Build & Release Engineer

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

Summary

Posted: Dec 13, 2018
Role Number: 200011219
Apple is looking for a talented, proactive and results-oriented software engineer to create a build system for our next-generation products. In this position, you will have the opportunity to work with a group of top notch software engineers from related but different backgrounds to make a product truly innovative. To be successful in this role, the candidate must be hands-on, proactive, good at problem solving and have a strong desire to learn and drive for perfection. This senior build and release candidate takes pride in creating and managing the build infrastructure and build tools using continuous delivery practices. This engineer needs to closely work with cross-functional teams to identify the issues, design and implement the proper solution, and work with the engineering team to properly test and deploy the changes. Critical thinking, writing solid and clean code, planning, documenting and communicating within the team and cross-functionally is critical to the success of the role.

Key Qualifications

  • Previous experience working on a project that has build and release process integrating at least 25 components
  • Managed and maintained a 24x7 CI environment (such as Jenkins, GoCD, Concourse, TeamCity) with hundreds build jobs and over 30 build agents
  • Experience creating Jenkins jobs with Job DSL and Jenkinsfiles
  • Breath of knowledge on a variety of techniques and tools in the areas of build, test, deploy, and release.
  • Have created and managed software package dependencies (such as: deb, dmg)
  • Owned artifact management solutions (artifactory, aptly, package mirrors)
  • Demonstrated experience with multi-project build tools such as (bazel gradle, blaze, buck, pants)
  • Ability to script in bash, python, go, or ruby
  • Experience with configuration management tools (such as chef, puppet, ansible)
  • Familiar with Linux and macOS systems management
  • Strong background in Linux/Unix administration
  • Comfortable with frequent, incremental code testing and deployment
  • Experience with mono-repos and distributed build systems

Description

As a build and release engineer you will be responsible for managing all aspects of build and release not limited to: • You will be designing and implementing a multi-language build system for a unified set of OS kernels, frameworks, applications, and internet services. • Analyzing build cycle-time and optimizing software release • Implementing software release pipeline for all components to integrate, test and deploy to production • Manage and scale a elastic self-healing build environment • Developing self-service tools to enable developer efficiency for build and release tasks

Education & Experience

Additional Requirements

  • • Experience in software releases to hardware
  • • Familiarity with container eco-system (kubernetes, mesos, docker, service registries, secrets management)
  • • Experience with Windows system management
  • • Familiar with Virtualization Technologies (vmware, KVM)
  • • Build projects using Xcode build tools
  • • Experience with regulatory compliance and security practices