A Software Engineer in the Sustaining Engineering Group is key for the success of our enterprise customers, partners and Ubuntu projects. You will help with troubleshooting and driving customer bugs to resolution by providing workarounds, guidance, and designing and authoring fixes to be released in Ubuntu and its supporting software packages.
You will be working with other members within the Canonical Engineering and upstream Open Source communities. You will leverage your engineering expertise to provide critical bug fixes and solve complex problems for OpenStack, Kubernetes and the Ubuntu platform.
Job Location: Home based - Europe
Key responsibilities and accountabilities
- Resolve complex problems related to OpenStack, Kubernetes and the Ubuntu platform.
- Resolve complex problems in orchestration and deployment technologies including Juju, MAAS, charms, LXC/LXD and others.
- Maintain a close working relationship with Canonical's Customer Engagement and Product Engineering teams.
- Analyse and participate in upstream development against current customer-reported bugs, developing and backporting patches as appropriate.
- Ability to identify and apply efficient problem solving techniques.
- Manage workload to ensure that customer issues are all timely handled and driven to resolution.
- Participate in team discussions and meetings to improve process, tools, and documentation.
- Maintain clear, concise and accurate bug documentation.
- Willingness to travel internationally up to 10% of work time for team meetings, events and conferences.
Required Skills and Experience
- Extensive experience with OpenStack.
- Strong experience with Ceph object storage and architecture.
- Knowledge of virtualization technologies including KVM/QEMU and libvirt.
- Strong understanding of SDN and traditional networking.
- Must be able to understand Ubuntu OS bugs and advise on next steps.
- Strong development experience with C and Python.
- A minimum of 5+ years or equivalent experience as a Software Engineer.
- Linux system administrator skills and demonstrable experience.
- Familiarity with Open Source process and community practices.
- Strong advocate for good customer experience.
- Excellent verbal and written communications skills in the English language.
- Willing to collaborate and participate as an effective team member.
Desirable Skills and Experience
- Experience with Canonical Juju, charms, MAAS, and LXC/LXD technologies.
- Experience with packaging (debian, snappy).
- Experience with a modern distributed version control system such as git.
- Experience with debuggers including gdb and crash.
- Experience with Kubernetes.
- Experience with the Go programming language.
- Knowledge of Ubuntu development processes.
- Degree-level education in a technology field.
- Theoretical understanding of complex distributed systems.
- Upstream involvement in one or more Open Source projects.
- Experience working on a distributed team.
- Familiarity with Open Source business model.