UI/ Full Stack Engineer- Internal CI/CD service and Tools
Software and Services
Locations: Santa Clara Valley, CA; San Diego, CA; Culver City, CA; Austin, TX; New York, NY; Seattle, WA and various other cities Are you a web developer looking to grow your skill set, invent new technology, and make a difference in developer productivity for thousands of developers inside all parts of Apple? We are looking for a front-end or full stack web developer to build new features and upgrade our user experience. The Software Development Productivity team builds services and tools to help developers get ideas from commit to production quickly and with confidence. We’re constantly improving our existing CI/CD service to give developers the building blocks they need to produce scalable, high performance build and deploy pipelines with minimal friction. Our services power an enormous number of builds per day across all of Apple, including some of the most well known customer facing properties, and we want to do even more. Our engineering team is committed to innovating and pushing the bounds of continuous delivery. We ship to customers frequently and constantly strive to improve our delivery. Improving means constantly learning and making mistakes, something our team embraces. We believe that the role of a developer is not to produce code, but solve problems. This means asking a lot of questions, understanding and empathizing with customers, and helping make the hard choices about what to build. YOU’LL DO WELL IN THIS ROLE IF YOU: - Are driven to create outstanding customer experiences, and are passionate about helping developers write better code faster. - Are good at understanding an entire customer problem and applying technology to it - Love teaching people and learning new things - Are not afraid to ask the hard questions or express your opinions, even when they are controversial. - Enjoy evolving a large, critical system to provide next generation features
- Experience with React.js based web user interfaces and front end component libraries.
- Experience with Git or similar distributed version control system
- Experience with running software on Linux or other Unix based systems. You should be comfortable on a command line and with basic troubleshooting
- Clear communicator (both written and verbal)
- Growth mindset and willingness to teach and learn from others.
- Committed to fostering an open and inclusive work environment.
- Help design, create, and maintain the web-based user interface for our CI/CD service. - Write testable and readable code in pairs to deliver changes. - Participate in code reviews and provide helpful and precise feedback - Constantly evaluate and improve our own delivery processes within the team
Education & Experience
- Our team comes with a diverse set of experience with many of the technologies below to represent the perspective and variety of our internal customer base. Candidates are not required to have experience with every technology or product. - Ability to write and understand in a scripting language or two (Python, bash, Ruby)
- - User Experience design experience - Preference for test driven development and writing testable code, and testing frameworks
- - Experience with AWS or GCP
- - Experience with data layer changes (we use Cassandra & Redis)
- - MacOS experience.
- - Some familiarity with Docker (or other VM/Container solutions), and ideally deployment technologies such as Kubernetes and Tekton
- - Exposure with some equivalent build/deploy services such as Jenkins, TeamCity, CircleCI, Concourse, TravisCI, etc.
- - Experience with a secure software development lifecycle, and integration of security into all phases of product development
- - At least some exposure to a variety of build tools: Gradle, Maven, Ant, Make, Rake, Grunt, Gulp, Ninja, Blaze/Bazel, Pants or others. We don’t use all of these, but our customers do so having some understanding helps build the right product.