Continuous Integration Firmware Engineer
Bengaluru, Karnataka, India
Do you have a passion for invention and self-challenge? Do you thrive on pushing the limits of what’s considered feasible? As part of a world class modem team, you’ll craft sophisticated pioneering embedded firmware that deliver more performance in our products than ever before. You’ll work across disciplines to transform improved hardware elements into a single, integrated design. Join us, and you’ll help us innovate new wireless systems technologies that continually outperform the previous iterations. By collaborating with other product development groups across Apple, you’ll push the industry boundaries of what wireless systems can do and improve the product experience for our customers across the world. Do you want to have an impact on every single Apple product? As a Continuous Integration Engineer, you will work with hardware and software teams to maintain several compiler and linker options in a complex build system that combines inputs from hardware and systems design fulfilling the requirements of several test vehicles. The continuous integration engineer maintains quality check infrastructure and verification toolchains that enable developers on different groups to work together to build new features. This position requires someone familiar with development process of large software projects, best DevOps practices and strong automation experience.
- Proficiency in Git.
- Strong knowledge of Gerrit, GitLab, GitHub or any other project hosting solution.
- High proficiency on Groovy and Jenkins pipelines.
- Experience with automation of test on virtual platforms and hardware devices.
- Advanced knowledge of Python and Shell scripting applied to building automation on Linux/Unix/MacOS environments.
- Good understanding of verification, quality assurance and release flow.
- Proven knowledge of Make and CMake.
- Familiarity with the configuration of Docker images.
- Knowledge of Splunk and Django are a plus.
- Write and maintain a set of scripts of a software line that gets built and tested on multiple test vehicles. - Collaborate with verification and system integration teams to design proper interfacing for delivery and results collection as part of a release process. - Work with multiple collaborators to design and update release and acceptance criteria on different stages of the project. - Maintain a sophisticated build system that includes several steps of binaries and source generation with the same code base.
Education & Experience
Bachelor’s degree in electrical engineering or computer science is required.