The objective of the Software Engineer is to ensure high-quality support at a kernel/near-kernel level for Ubuntu on
hardware from Canonical's various hardware partners. We work across all the platforms Ubuntu is available for: Ubuntu Core embedded devices such as IoT hardware, notebook, desktop PC and 2-in-1 convertibles.
The Software Engineer will focus on hardware enablement/bring-up, device driver integration/maintenance, kernel backport, bug fixing, patch maintenance, kernel maintenance, upstream development in support of Ubuntu and the larger Linux ecosystem.
Key Responsibilities for the Software Engineer:
- Low-level hardware debugging and system enablement/bring-up.
- Problem analysis and resolution in areas of the Linux Kernel, plumbing layer and the bootloader
(e.g. GRUB2, U-Boot).
- Communication and collaboration with Ubuntu Kernel team and Linux community to resolve
- Communication and collaboration with others to resolve software and firmware issues.
Interface with hardware vendor partners to resolve kernel and device driver issues.
- Perform day-to-day activities in a globally distributed team through self-discipline and self-motivation; delivering according to a schedule.
- Execute updates and patches for kernel drivers and subsystems to meet these requirements within Ubuntu releases.
- Meet these kernel support goals in accordance with Ubuntu quality targets; release schedules, freeze dates, and support policies.
- International travel may be required.
Required Skills and Experience
- Experience with low-level hardware debugging and system bring-up/enablement on x86-based
and ARM-based platforms.
- General Linux kernel development skills (e.g. kernel debugging, C proficiency, git experience).
- Familiarity with debugging common kernel, bootloader, firmware and plumbing layer issues,
both with or without physical hardware, on PC, mobile and embedded systems.
- Development experience with hardware-related subsystems of the Linux kernel and relevant
portions of the kernel and plumbing layer.
- Experience in kernel and device driver backporting.
- Ability to communicate in English, both written and oral.
Desired Skills and Experience
- Particular focus in one or more linux kernel subsystems is highly desirable.
- Familiarity with ARM boot processes (e.g. U-Boot, RedBoot) and ARM bring-up experience is
- Familiarity with ACPI and how the interface is used in common cases (e.g. S3, S4)
- Familiarity with Android product development and architecture.
- Experience with open source development model, tools and methodology, especially those in
common-use for development of the Linux kernel such as: Launchpad, Bugzilla, github, IRC, and
What Canonical Offers:
- Learning and Development
- Annual Compensation Review
- Recognition Rewards
- Annual Leave
- Priority Pass for travel
- Flexible working option