Software Engineer - Kernel/User Space
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 fixes to be released in Ubuntu and its supporting software packages.
You will provide engineering support to Canonical’s technical support organization and interact with other contributors within the Canonical, Ubuntu and Linux upstream communities to help resolve issues and build relationships. Your role will provide engineering support of the Linux kernel, QEMU/KVM, libvirt, and user space applications in general.
Key Responsibilities and Accountabilities
To be able to resolve complex problems related to Ubuntu Server deployments, which may cover areas such as: kernel, drivers, network & storage configurations, and large scale virtualization environments.
Required Skills and Experience:
- Kernel programming experience, ideally with patches accepted in mainline
- Strong development experience with virtualization and container technologies (QEMU/KVM, libvirt, LXC, LXD, Xen, etc)
- A minimum of 5 years’ software engineering experience with C
- Assembly language experience
- Linux system administrator skills and demonstrable experience
- Solid knowledge about networking & storage (protocols/configuration)
- Good understanding of the makeup of a modern GNU/Linux distribution
- Solid troubleshooting experience using gdb, crash, bisect, perf, OS & application tracing/profiling mechanisms, and other analysis tools
- Experience with application and OS performance analysis
- Adaptability to a wide range of different situations, deployments, and architectures
- Familiarity with Open Source development model and community practices
- Strong advocate for good customer experience
- Excellent verbal and written communications skills in the English language
- Willingness to collaborate and participate as an effective member of a globally distributed team
Desirable Skills and Experience:
- Strong interest in and knowledge of Ubuntu and/or Debian foundational packages
- Knowledge of Ubuntu and/or Debian development processes
- Experience with debian packaging
- Degree-level education in a technology field
- Upstream involvement in one or more Open Source projects
- Familiarity with Open Source business model
- Experience working on a globally distributed team.
Job Location: Americas, home-based with regular international travel arrangements (up to 10%)
Hours: Americas Time Zone
Reports to: Sustaining Engineering Manager