Apple Media Product Engineering - CI/CD Software Engineer
With Apple in San Francisco CA USMore jobs from Apple
Posted on June 23, 2020
About this job
Job type: Full-time
Role: QA/Test Developer
Industry: Consumer Electronics
Company size: 10k+ people
Company type: Public
continuous-integration, testing, java
Are you interested in shaping next generation Application and Infrastructure architecture at a scale that everyone dreams of? Apple Media Products (AMP), Delivery Engineering's mission is to improve every Engineer’s life at AMP through building innovative and state of the art tools that span wide spectrum in Software Development Life Cycle (SDLC). If you are a smart software engineer who loves working on lower level infrastructure and are passionate about building innovative tools, AMP Delivery Engineering is looking for you. Apple, Inc is looking for a highly motivated individual contributor/Architect to join the Delivery Engineering team. You will be a key part of shaping the future architecture of AMP services and how they are developed and deployed that delight Apple Customers.
Our team is in the business of helping Apple Media Products to produce high quality software. This role focuses on building software to improve our in-house CI/CD automation. Candidates should be excited about automated testing and continuous deployment. A strong culture of testing and review needs to be fostered and maintained in order to accomplish this. The selected candidate should not be afraid to question assumptions and should possess excellent verbal, written and communication skills. You will need to have both the technical chops and the communication skills to articulate your ideas as well as influence others. AMP Delivery Engineers are team members of an agile development process. They are responsible for the design and implementation of applications’ build, release, deployment, configuration activities as well as tools and framework development. Other responsibilities include working with internal business partners to gather requirements, prototyping, architecting, implementing/updating solutions, building and executing test plans, performing quality reviews, managing operations, and triaging and fixing operational issues. AMP Delivery Engineers must be able to adjust to constant business change; common types of changes include new requirements, evolving goals and strategies, and emerging technologies. iTunes Engineers require the ability to interact, develop, engineer, and communicate collaboratively at the highest technical levels with clients, vendors, partners, and all levels of staff.
Skills & requirements
- 4+ years of experience in software development.
- A strong foundation in Computer Science fundamentals such as data structures and algorithms is required.
- Several years of experience in Java required - additional experience in the programming languages Scala, Ruby, Python or Perl is a plus
- Practical experience building and testing RESTful services.
- Proven experience architecting, developing and deploying internet-scale, distributed and mission critical services is required.
- Strong software and system design skills are required.
- Strong experience with improving Software Development Lifecycle and CI/CD pipelines.
- Hands on experience with Build & Deploy technologies such as Maven, Gradle, Jenkins, Artifactory, Sonarqube, GIT, Github Enterprise, Puppet/Chef and exposure to UNIX based system administration experience
- Experience with cloud technologies such as Docker, Kubernetes, Helm and Spinnaker
- Experience of using automated testing throughout the SDLC
- Experience in software testing frameworks like JUnit, tools like RestAssured and techniques like Canary Analysis, Chaos Engineering
- Some experience with large-scale datacenter application deployments including monitoring and capacity planning.
- Ability to monitor systems and application health with logging, time series and alert based monitoring systems.
- Ability to communicate effectively, both written and verbal, with technical and non-technical cross-functional teams.
- A desire to work in a fast-paced and challenging work environment.