Ubuntu Linux Kernel Test Engineer

Remote from
APAC flagChina flag
APAC, China
Annual salary
Undisclosed
Salary information is not provided for this position. Check our Salary Directory to estimate the average compensation for similar roles.
Department
QA & Testing
Employment type
Full Time,
Job posted
Apply before
10 Jul 2026
Experience level
Senior
Views / Applies
19 / 3

About Canonical Ltd.

Trusted open source for enterprises

Actively Hiring
Verified job posting
This job post has been manually reviewed for authenticity and compliance.

AI Summary

Canonical seeks a Ubuntu Linux Kernel Test Engineer to own kernel testing strategy and infrastructure. The role involves designing test plans, building automated frameworks, and maintaining CI/CD pipelines across many kernel versions. The ideal candidate has strong Python skills, Linux kernel internals knowledge, and experience with test tools like LTP, kselftest, and stress-ng. This is a remote position for the APAC region, with some office-based locations.

Role DNA

Job Complexity
Easy Hard
Pace & Pressure
Relaxed Fast-paced
Autonomy Level
Guided Full Ownership
Communication Load
Independent Highly Collaborative
AI Insight The role demands deep Linux kernel expertise, Python, and experience with complex testing at scale across multiple kernel versions, but is not the most senior level.

Salary Analysis

Median Market Rate
$125,000
US Market
$80k – 180k
0 $198k
AI Insight The offered salary is not specified, but the market median for this specialized role is approximately $125,000, which is competitive for a test engineer with kernel skills.

Key Skills

Python Linux Kernel Test Automation CI/CD Performance Testing Fuzzing Code Coverage Stress Testing kselftest syzkaller

Dear Hiring Manager,

I am excited to apply for the Ubuntu Linux Kernel Test Engineer position at Canonical. With a strong background in Python, Linux kernel internals, and automated testing, I am well-prepared to take ownership of the kernel testing strategy and infrastructure.

In my previous role, I designed and maintained test suites for multiple kernel versions, implemented CI/CD pipelines, and conducted performance and fuzz testing to ensure reliability. I am familiar with tools like LTP, kselftest, and syzkaller, and I thrive in collaborative, globally distributed teams.

I am eager to contribute to the quality assurance of Ubuntu kernels and support Canonical's commitment to long-term stability. Thank you for considering my application.

How would you design a test plan for a new kernel feature that needs to be validated across multiple architectures and kernel versions?
I would start by understanding the feature's requirements and potential impact areas. Then, I would identify functional tests from upstream, create stress and performance benchmarks, and ensure regression tests are in place. I'd automate the tests in a CI/CD pipeline, covering all supported architectures and kernel versions, and integrate code coverage analysis to identify gaps.
Describe your experience with kernel fuzzing. Which tools have you used, and how did you set up a fuzzing harness?
I have experience with syzkaller and Trinity. For syzkaller, I would configure it with the target kernel, enable coverage instrumentation, and run it on a set of VMs. I would monitor crashes and bisect to find the triggering commits. I also developed custom fuzzers for specific subsystems by using ioctl fuzzing or syscall introspection.
How do you ensure test suites remain effective across long-term support kernels that are updated over years?
I maintain the test suites in a version-controlled repository, regularly updating them with new test cases from upstream and community contributions. I use parameterization to handle kernel version differences and run regression tests against each kernel branch. Periodic reviews of coverage and bug reports help identify gaps.
Explain a time you identified a critical kernel bug through testing. What methods did you use?
While running stress-ng with memory pressure tests, I noticed a rare crash in the OOM killer. I used ftrace to capture the events and bisected to a recent memory management patch. I then wrote a specific test case to reproduce it and reported the bug with detailed steps and a proposed fix.
How do you prioritize testing efforts when there are multiple kernel versions and limited resources?
I prioritize based on risk: new features, security patches, and known problematic subsystems get higher coverage. I use risk assessment from past bugs and community reports. I also automate as much as possible to scale, and focus manual testing on complex scenarios that are hard to automate.

Ubuntu is the most widely used Linux distribution in the world, delivering kernels across a vast matrix of versions, architectures, and configurations – with up to 15 years of security and maintenance commitments for Long Term Support (LTS) releases. Ensuring the quality and reliability of these kernels demands a dedicated, systematic approach to testing at scale.

The Canonical Kernel Team is looking for a Test Engineer to take ownership of our kernel testing strategy and infrastructure. You will design and maintain test plans covering functional correctness, stability, performance, and security. You will build and evolve automated test frameworks – including stress testing, fuzzing, code coverage analysis, and regression detection – that not only must remain effective across many concurrently supported kernel versions spanning years of maintenance, but must be able to scale with the high demand for Ubuntu kernels (currently more than 160 under active support).

The successful candidate will bring strong Python skills, familiarity with Linux kernel internals, and experience building test infrastructure that scales. You will work closely with kernel engineers to catch regressions early, validate fixes, and ensure every kernel we ship meets the highest standards of reliability.

Location: This role will be based remotely in the APAC region, except for Taipei, Taiwan, and Beijing, China, which are office-based locations.

What your day will look like

  • Design, develop, and maintain comprehensive test plans covering functional correctness, stability, performance, and security for Ubuntu Linux kernels
  • Build and improve automated test infrastructure for continuous kernel quality validation across multiple kernel versions and architectures
  • Maintain long-lived test suites that evolve alongside Ubuntu’s many concurrently supported kernel versions spanning years of maintenance
  • Develop and maintain CI/CD pipelines for continuous kernel quality validation
  • Conduct performance benchmarking and regression detection across kernel releases
  • Measure and improve kernel code coverage, identifying gaps in test coverage and creating tests to address them
  • Execute and analyze stress tests covering CPU scheduling, memory management, I/O subsystems, networking, and filesystem workloads
  • Develop and maintain fuzzing harnesses to discover kernel vulnerabilities and reliability issues using tools such as syzkaller, Trinity, or custom fuzzers
  • Collaborate regularly and proactively with a globally distributed team
  • Contribute to upstream test suites and testing frameworks
  • Document test methodologies, results, and coverage gaps

What we are looking for in you

  • Significant programming experience in Python
  • Experience with test frameworks such as LTP, kselftest, xfstests, stress-ng, fio, or similar
  • Experience designing and executing system-level tests: functional, stress, performance, or regression testing
  • Familiarity with CI/CD systems (Jenkins, GitHub CI, or similar)
  • Experience maintaining test suites over long periods, adapting to evolving software across multiple supported versions
  • Familiarity with Linux (Ubuntu or Debian preferred but not required), Linux kernel internals and subsystems
  • Experience with Linux systems administration and automation
  • Solid background with git
  • Well-organized, self-starting and able to deliver to fixed schedules
  • Professional written and spoken English with excellent communication skills
  • Ability to travel twice a year, for company events up to two weeks each

Additional skills that you might also bring

  • Familiarity with kernel fuzzing tools and techniques (e.g. syzkaller, Trinity, AFL, or custom harnesses)
  • Experience with code coverage instrumentation (e.g. gcov, kcov, LLVM source-based coverage)
  • Knowledge of kernel tracing and observability tools (e.g. ftrace, perf, bpftrace, eBPF)
  • Familiarity with static analysis tools (e.g. sparse, smatch, Coccinelle) as part of a testing workflow
  • Experience with fault injection frameworks (e.g. failslab, fail_make_request) for reliability testing
  • Prior experience with test infrastructure at scale (provisioning, orchestration, result aggregation)
  • Experience with Ubuntu/Debian packaging or Snap
  • Knowledge of virtualization technologies (KVM, QEMU) and container runtimes
  • Cloud infrastructure experience (AWS, GCP, Azure, or OpenStack)
  • Prior involvement with open source testing communities or projects

What we offer you

Your base pay will depend on various factors including your geographical location, level of experience, knowledge and skills. In addition to the benefits above, certain roles are also eligible for additional benefits and rewards including annual bonuses and sales incentives based on revenue or utilisation. Our compensation philosophy is to ensure equity right across our global workforce.

In addition to a competitive base pay, we provide all team members with additional benefits, which reflect our values and ideals. Please note that additional benefits may apply depending on the work location and, for more information on these, you can ask in the later stages of the recruitment process.

  • Fully remote working environment – we’ve been working remotely since 2004!
  • Personal learning and development budget of 2,000USD per annum
  • Annual compensation review
  • Recognition rewards
  • Annual holiday leave
  • Parental Leave
  • Employee Assistance Programme
  • Opportunity to travel to new locations to meet colleagues at ‘sprints’
  • Priority Pass for travel and travel upgrades for long haul company events

About Canonical

Canonical is a pioneering tech firm that is at the forefront of the global move to open source. As the company that publishes Ubuntu, one of the most important open source projects and the platform for AI, IoT and the cloud, we are changing the world on a daily basis. We recruit on a global basis and set a very high standard for people joining the company. We expect excellence – in order to succeed, we need to be the best at what we do.

Canonical has been a remote-first company since its inception in 2004.​ Work at Canonical is a step into the future, and will challenge you to think differently, work smarter, learn new skills, and raise your game. Canonical provides a unique window into the world of 21st-century digital business.

Canonical is an equal opportunity employer

We are proud to foster a workplace free from discrimination. Diversity of experience, perspectives, and background create a better work environment and better products. Whatever your identity, we will give your application fair consideration.

#LI-remote

Apply now >

Annual salary information is not provided for this position. Explore salary ranges for similar roles in our Salary Directory ›

This job listing has been manually reviewed by the Jobicy Trust & Safety Team for compliance with our posting guidelines, including verification of the company's legitimacy, accuracy of job details, clarity of remote work policy, and absence of misleading or fraudulent content.

How to apply

Did you apply? Let us know, and we’ll help you track your application.

See a few more

Similar QA & Testing remote jobs

Job Search Safety Tips

Here are some tips to help you search and apply for jobs safely:
Watch out for suspicious jobs Don't apply for jobs that offer high pay for little work or offer to hire you without an interview. Read more ›
Check the employer's profile Make sure you're applying for a trustworthy job by visiting the employer's profile and learning more about them. Read more ›
Protect your information Don't share personal details like your bank account or government-issued ID on suspicious websites or messengers. Read more ›
Report jobs that feel unsafe If you see a job that seems misleading, inappropriate or discriminatory, report it for going against our policies and we'll review it.

Share this job

Jobicy+ Subscription

Jobicy

614 professionals pay to access exclusive and experimental features on Jobicy

Free

USD $0/month

For people just getting started

  • • Unlimited applies and searches
  • • Access on web and mobile apps
  • • Weekly job alerts and digest
  • • Access to additional tools like Bookmarks, Applications, and more

Plus

USD $8/month

Everything in Free, and:

  • • Ad-free experience
  • • Daily job alerts and digest
  • • Personal career consultant
  • • AI-powered job advice
Go to account ›