Working within our software development operations team, developing pipelines for our CI / CD systems (Jenkins, etc) and providing a testing framework for others to use
- Reviewing test cases and occasionally writing tests
- Supporting and maintaining our CI / CD hardware, including our bespoke HW test environment.
Major responsibilities and tasks
- Define, implement and support test infrastructure, continuous integration tools, continuous build processes and other related tools
- Develop robust record keeping of test results and testing trends
- Develop a suite of product metrics that allow insight to product performance (memory, processor utilisation, etc.)
- Support and maintain our CI hardware (servers, radios, etc.) working with IT as needed
- Continue the team’s drive to automate more of the software process
- Develop (extend and fix) test cases against requirements
- Work with the rest of the Software team (other software engineers as well as DSP, FPGA, Radio and other specialists) to collaborate on development projects, ensuring the test infrastructure and tests meet the projects requirements
- Work closely with the System Test team to keep the quality of software high and investigate problems together
- Follow the processes of the team and company, but be willing to improve them.
- Competencies (technical, managerial, personal skills and relevant experience)
- A good degree in Computer Science or another applicable subject
- A background and demonstrable experience in CI / CD tools such as Jenkins, Travis, TeamCity or Buildbot, or others
- Strong knowledge in Python
- Good troubleshooting skills and log analysis
- Experience with git, or at least other version control tools
- Multi OS experience with a heavy Linux orientation
- Some knowledge of network protocols, the lower level the better
- Strong desire to learn new architectures.
- Demonstrable experience in CI pipelines
- A desire to learn and grow
- Linux device drivers, especially network drivers
- Make and complex build chains built around it
- Docker experience
- Desire to improve processes and ways of working
- Radio and/telecommunications product development
- Work with large, existing code bases rather than fresh-ground development
- Hardware support experience (e.g. installing server into rack and associated cabling).