Software Engineer - (Tool and Automation)
Austin, Texas, United States
Software and Services
Imagine what you could do here! At Apple, new ideas have a way of becoming extraordinary products, services, and customer experiences very quickly. Do you bring passion and dedication to your job? The Crypto Services team at Apple is responsible for protecting the cryptographic keys used to secure Apple’s highly sensitive information and devices. On top of this foundation, the team provides highly-available, fault-tolerant PKI and encryption APIs that are leveraged across various services within Apple to protect sensitive information. The Crypto Services Team is looking for a skilled software engineer with a passion for automation and continuous improvement of development tooling/pipelines, to join our newly-formed Software Tools and Automation Engineering team.
- Expertise in Java and Java Enterprise technology applications architecture, design, development and support
- Proven expertise at developing and maintaining secure applications
- Expertise with build/release (CI/CD) pipelines, methodologies, and tools (Jenkins, artifact management, etc)
- Creative, critical thinking and troubleshooting skills
- Ability to lead, design and develop scalable softwares while working with other teams.
The first major part of this role involves enhancing deployment automation. This will involve strategizing, developing, testing, and maintaining custom software tools within the team. Examples could include building a software solution to perform cryptographic key management and distribution across our HSM cluster (thus eliminating the need for manually-performed re-sync procedures). These automated tools are essential to the team to confidentially handle and protect some of the most sensitive keys within Apple! These tools need to well thought out, robust, secure and dependable. As security of our software is paramount, the Crypto Services team has long-since designed and maintained its own dedicated CI systems (currently, a Jenkins cluster). The second major part of this role will be to take our current build automation to the next level: You will need to collaborate with fellow Crypto Services teams to understand the current needs of our internal Tools and CI/CD services so that they can evaluate external solutions as replacements or to remove the need to internally host or maintain a system. While still in use you will need to work with other members of the Tools and Automation team to maintain and patch the existing systems. The ideal candidate is a self-motivated and experienced software engineer with a solid and opinionated understanding of software development best practices (dependency management/resolution, software versioning, release engineering, etc.) The candidate must be able to collaborate with other Crypto Services developers and Crypto Services SREs to identify and deliver tooling and automation solutions that solve internal team friction and toil. The candidate must be able to evaluate the security of the current CI systems and identify where resources should be prioritized to make maximum improvements to the security posture.
Education & Experience
BS or MS in Computer Science or equivalent experience
- Knowledge of HSM devices and their usage
- Experience in building, orchestrating, and deploying highly scalable REST based stateless APIs/web services
- Experience of deploying or managing applications in either AWS or Google Cloud