Kernel Engineer

  • Contract: Full-time

Job Description

Are you a software engineer with experience in Linux development looking for an opportunity to work on the Linux kernel? Do you want to work with a high-performing kernel engineering team, through all stages of the software development lifecycle, where you are challenged to solve technical problems and provide creative solutions to meet mission needs? We at Canonical are focused on providing our customers the very best experience possible, for every kernel we release for our Ubuntu operating systems. Our team’s projects provide a wide variety of opportunities to be engaged in fast-paced software engineering work, with a highly-motivated team, focused on providing superior products and services.

This is an exciting time at Canonical, with Ubuntu as the fastest growing Linux distribution, with over 20 million users in just a few years and our engineering teams growing to meet new demand. The Ubuntu project is aimed at reducing barriers to innovation globally by providing free access to well-built and well-tested open technology platform.

The Canonical Kernel Team is responsible for maintaining all supported Ubuntu Linux kernels, managing a growing list custom flavors of Ubuntu Linux kernels, tracking and contributing to upstream kernel development, as well as driving development of the upcoming Ubuntu kernel releases. We also deliver the kernel Livepatch Service, which allows Ubuntu customers to apply critical kernel security fixes without rebooting, enabling our mission-critical customers reduced downtime, while maintaining security & compliance standards.

As a Kernel Engineer your primary responsibility will be working with other kernel engineers on various work streams, including but not limited to customer issue management, defect patching/back-porting, building new kernels, kernel livepatch development, build and test, automated kernel testing, packaging and deployment. Our entire kernel team is dedicated to building and releasing new kernels on a regular release cycle, delivering high quality product of every release cycle. On this team you can expect to quickly become an integral contributor on one of the most important parts of the Ubuntu operating systems for our customers.

We are looking for a recently-graduated or early-career individual who is passionate about a career in Linux in general and has a strong interest in the kernel, kernel security, patch development and testing in particular. We strongly encourage you to apply if you are a creative and innovative thinker, have a desire for an intense learning environment and like the challenges that come with developing as a Linux kernel engineer.

Key Responsibilities

  • Collaborating regularly and proactively with a distributed team
  • Learn how we develop and release our kernels via our SRU process
  • Collaborate as needed with the Open Source Community and Canonical/Ubuntu partners, participating in issue management, design discussions and reviews
  • Diagnose and fix functional, performance and scalability problems in the Linux kernel
  • Develop, automate and run unit and functional tests for the code developed
  • Development of tooling, automation and testing for Ubuntu Livepatch
  • Deployment and Long-term monitoring of customer Livepatch installations
  • Delivering high-quality maintainable software for all your work

Skill Requirements

Required Qualifications

  • Must have a Bachelor of Science in Computer Science, Computer Engineering, Computer Security or related field
  • Must have a GPA 3.0 or above (out of 4.0 scale)
  • Must have 0-3+ years computer programming development experience
  • Proof of US citizenship is required

Required Skills and Experience

  • General software development and debug skills on Linux
  • Operating System training via classroom or previous professional experience
  • Linux kernel and kernel subsystem working knowledge and experience
  • Familiarity one or more Linux Shells such as Bash, commands, scripting, etc.
  • Open Source Community experience such as reading kernel mailing lists, etc.
  • Experience developing with Python and C programming languages
  • Formal Software Engineering training via classroom or previous professional experience.
  • Experience analyzing software performance issues and implementing improvements
  • Experience developing and performing software unit testing
  • Demonstrated ability to grasp new technologies and acquire new skills through independent study, professional training, and interaction with other team members
  • Demonstrated ability to function effectively as part of a distributed team
  • Demonstrated leadership of a team or project
  • Strong verbal and written communication skills
  • Experience with any of the following is considered a plus

Professional Software Engineering experience

  • Linux kernel development, testing and analysis
  • Mltithreaded programming techniques
  • On or more Virtualization technologies (VMWare, Xen, KVM OpenStack, VirtualBox)
  • Ability to communicate at all levels inside and outside of an organization: Technical team members, managers, partners and customers
  • Active engagement within the open source community, bonus for kernel open source projects
  • Experience with agile software development methodologies and processes
  • Professional C and Python programming experience, Bonus with kernel development experience
  • Experience with professional software test development and automation
  • Awareness of continuous integration strategies. Bonus if you have experience
  • Understanding and experience with tooling like git and gcc
  • Experience with Debian packaging and kpatch tool a bonus

About the Company

Canonical is a growing international software company that works with the open-source community to deliver Ubuntu, “the world’s best free software platform”. Our mission is to realise the potential of free software in the lives of individuals and organisations. Our services are helping individuals and businesses worldwide to reduce costs, improve efficiency and enhance security with Ubuntu.

How to apply

Apply for this job online using the link below.

External Link »