Role Overview
The Software (CE-SW) group is responsible for developing and improving the software ecosystem around Arm's next generation architectures and systems. You will join a team of Software Engineers working with processors and hardware technology to ensure high-quality software delivery for Client, Server, and IoT environments.
Responsibilities
- Support software release activities, including release preparation, validation, branch/tag creation, artifact generation and release documentation.
- Maintain and improve CI/CD pipelines, including jobs, runners, schedules, artifacts and reporting workflows.
- Develop automation for build, test, validation and release processes to reduce manual effort and improve repeatability.
- Develop and maintain Python-based automation scripts, test cases and reusable components within the team’s automation framework.
- Integrate automated tests with CI/CD pipelines to enable continuous testing across development and release branches.
- Support automated validation across FVP, emulation, FPGA and SoC platforms, including provisioning, flashing, boot validation and log collection.
- Monitor pipeline and test failures, perform initial triage, and collaborate with software, firmware, validation and infrastructure teams to resolve issues.
- Document and continuously improve release, CI/CD and automation processes to improve reliability, execution time and developer productivity.
Requirements
- 3–6 years of relevant experience in software development, validation, test automation, CI/CD, release engineering or similar roles.
- Good programming skills in Python, with working knowledge of C/C++ and Shell Scripting for automation, debugging and tooling.
- Hands-on experience with CI/CD systems such as GitLab CI, Jenkins or GitHub Actions.
- Experience in developing and maintaining automated test scripts, test suites and reusable automation utilities.
- Basic understanding of software release processes, including branching, tagging, merge requests, and versioning.
- Good understanding of Linux, system software fundamentals, boot flow, firmware, and drivers.
- Good understanding of software testing methodologies and failure triage.
Skills
- Python
- GitLab CI
- Jenkins
- Linux
- C/C++
Nice To Have
- Experience with PyTest or similar Python-based test automation frameworks.
- Basic understanding of ARM system architecture, Linux kernel, bootloaders, and device drivers.
- Exposure to firmware validation and hardware or virtual platforms such as FVP, emulation, FPGA or SoC-based systems.
- Familiarity with Git-based development workflows.