Job Title: Software Engineer
Keywords: testing, automation, python, shell scripting, quality, qa, test plan creation, test report delivery, distributed systems, scaling, agile, linux, ubuntu, canonical, home, remote, open source
Reports to: Commercial Server Engineering Director
Job Location: Americas
Canonical’s Server Enablement team works closely with server and silicon vendors to integrate support for their server-class silicon into the Ubuntu Server distribution.
The successful Software Engineer will work in Canonical’s server enablement team, collaborating with Canonical’s silicon partners to create and agree test plans, develop and run automated testing and generate and deliver test reports as part of enablement and maintenance projects. The testing work will focus on hardware enablement, server workload validation, regression testing and benchmarking.
As a member of the Server enablement team and the broader cloud engineering department, you will be responsible for collaborating with a very active distributed development team on all the tasks involved in the development and release process.
- Develop automated test cases, and deliver test reports to customers
- Write high-quality code to test, exercise and validate hardware enablement and server workloads
- Deploy, test and debug highly distributed systems
- Create and agree test plans with customers
- Review code produced by other developers
- Discuss ideas and collaborate on finding good solutions
- Collaborate proactively with a distributed team
Required skills and experience
- Degree level education, preferably in a technology field
- Strong communication and cooperation skills
- Involvement in open source projects in the past
- Python development and shell scripting experience
- Experience with test automation including system level automation and job runners
- Knowledge of networking technologies and fundamentals
- Experience remotely managing servers with, for example, ipmitool and BMC
- Understanding and experience with OpenStack and other cloud technologies
- Experience with continuous integration strategies and tooling, e.g. Jenkins
- Proficient with Ubuntu system administration
- Understanding of how to be part of a distributed team
- Travel 2-4 times a year for a week at a time
- Experience with Debian packaging a plus.