Are you passionate about the Linux kernel and looking to work on a great team, where you can apply and grow your hardware enablement skills? This is an exciting time at Canonical, with Ubuntu as the fastest growing Linux distribution, at over 20 million users in just a few years. The kernel engineering team is growing to meet demand and is looking for an experienced kernel engineer in Taipei to join our Hardware Enablement Team.
The Canonical Linux Kernel Team is responsible for developing and maintaining all supported Ubuntu kernels. Being part of the Kernel Team, the hardware enablement team works with Canonical’s hardware partners to deliver high-quality support at a kernel and near-kernel level for their hardware platforms.
As a Hardware Enablement Engineer, your primary responsibility will be working on partner projects to make hardware components functional and to ensure Ubuntu works well on these latest hardware platforms within project schedules, which includes but not limited to kernel troubleshooting, patching/backporting, kernel bug fixing, device driver integration and maintenance. You will have to also work closely with the Stable Kernel Team and Kernel Development Team, as well as the upstream community as a whole, in contributing your work back to them for the best hardware support in Ubuntu.
Canonical is looking for an energetic kernel engineer with at least 2 years of Linux kernel development experience, who motivated to develop in multiple areas as described above. The position is office-based, but the candidate must also be motivated to communicate and work with people in other countries, and willing to travel globally up to 4 times/yr for engineering sprints.
- Collaborating regularly and proactively with a globally distributed team
- Low-level hardware debugging and system enablement/bring-up
- Submitting kernel patches to resolve software and firmware issues
- Addressing kernel bugs and regressions relating to hardware and firmware
- Performing backports for feature enablement and support
Required skills and experience
- Bachelor of Computer Science or related software engineering experience
- Demonstrated proficiency in C programming language
- Expert skills/experience with git
- Scripting experience including Bash and Python
- Broad knowledge of the Linux kernel and kernel subsystems
- Demonstrated experience with kernel patching and debugging
- Well-organized, self-starting and able to deliver to fixed schedules
- Ability to function and communicate effectively as part of a globally distributed team
- Knowledge/experience with Linux kernel upstream processes and release cycle
- Effective email management skills and instant messaging (primarily IRC) skills
- Demonstrated ability to present oneself in a professional manner when interacting with colleagues, business partners, and the open source community
- Ability to communicate effectively in English, both written and oral
Desired skills and experiences
- Familiarity with ACPI and interacting with it in device drivers
- Specific focus in one or more linux kernel subsystems is highly desirable
- Familiarity with Arm boot processes (e.g. U-Boot) and Arm bring-up experience
- Experience with Ubuntu/Debian packaging
- Experience with Snap packaging
- Familiarity with Ubuntu SRU process and cadence
We are proud to foster a workplace free from discrimination. We truly believe that diversity of experience, perspectives, and background will lead to a better environment for our employees and a better platform for our users and customers. This is something we value deeply and we encourage everyone to come be a part of the world of Ubuntu.