All remote jobs

Python Software Engineer – Ubuntu Hardware Certification Team

AI Summary
Canonical is seeking a Python software engineer to build and maintain open-source test automation tooling for Ubuntu hardware certification. The role combines Python development, Linux-based embedded hardware enablement, remote automated testing, and functional and performance test creation. The engineer will work with internal teams, silicon vendors, OEMs, and ODMs in a globally distributed organization centered on EMEA time zones. Success involves expanding certification coverage, automating processes, and improving the Ubuntu experience across desktops, servers, IoT devices, and other hardware categories.
Remote from
EMEA
Salary
Undisclosed
Department
QA & Testing
Employment
Full Time
Experience
Open level
Published
Apply before
4 Dec 2026
Listing views
19
Application actions
2
Application toolkit

Make your next move.

Prepare your resume, explore your fit, and draft a cover letter for this opportunity.

Opportunity details

About this role.

Canonical is hiring a Python Software Engineer to join the Certification team, who make the tools which enable us to know that a desktop, laptop, server or IoT device is working properly. We work at the interface of hardware and software, so the ideal candidate is a Python developer familiar with hardware.

The Certification team develops the tools needed to certify hardware as working with Ubuntu Core as well as Ubuntu Desktop and Server: https://ubuntu.com/certified

We design hardware which can be used to probe devices independently, and frameworks for software tests that check every aspect of Ubuntu on that hardware.

This is an excellent opportunity for someone who wants to have a meaningful impact for adoption of Linux across multiple device categories and industries. Canonical offers a fun, fast-paced team environment and a career full of learning and development opportunities. This team is centered in EMEA time zones, and works with colleagues on related teams in both the Americas and APAC.

We work together with silicon companies, OEMs, ODMs and teams within Canonical to ensure a smooth, secure out of the box Ubuntu experience, with success in this role leading to a great Ubuntu experience being offered on more and more devices.

Role description

We are looking for a self-motivated software engineer with experience developing in Python, to work on test automation tools or Linux based embedded hardware. This role offers an exciting opportunity to push the industry forward by enabling entirely new Linux based hardware testing capabilities, scaling up hardware certification efforts and allowing for deeper test coverage.

The role involves the development and maintenance of Canonical’s open source certification tools, supporting the creation of hardware solutions for test automation, and automating our existing processes. We seek out continuous process and tooling improvements as part of expanding the certification test suites, ultimately to improve the quality of Linux experience felt by millions of Linux end users.

Key responsibilities

  • Maintain and develop new features to our Python based test automation tools like Checkbox, used by both in-house teams and industry partners.
  • Invent new ways to enable remote, automated testing.
  • Help build the software counterpart to in-house designed testing hardware to help test device enablement (graphics, hotplug, bluetooth, etc).
  • Write functional and performance tests to support hardware enablement and to protect from regressions.
  • Participate in meetings involving international travel 2-3 times per year.

Required skills and experience

  • Knowledge of Python programming language.
  • Quality oriented, pragmatic approach to software design and implementation.
  • Interest in test automation methodologies.
  • Previous experience working with Ubuntu or other Linux distributions.
  • Ability to be productive in a globally distributed team.

Desired skills and experience

  • Passion for tinkering: you are a maker.
  • Experience working in an agile environment.
  • Hardware testing experience, for example in the IoT space.
  • Familiarity with the C programming language.

What is Canonical?

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 services help businesses worldwide to reduce costs, improve efficiency and enhance security with Ubuntu.

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 #Stack

Apply now >

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.

Role DNA

A quick view of the complexity, pace, ownership and collaboration implied by the job description.

Job Complexity

4/5
EasyHard

Pace & Pressure

4/5
RelaxedFast-paced

Autonomy Level

4/5
GuidedFull ownership

Communication Load

4/5
IndependentCollaborative
AI insightThe work requires strong Python engineering alongside practical Linux, test automation, and hardware-integration knowledge. Engineers must independently troubleshoot complex hardware/software interactions while collaborating across international partner teams.

Salary analysis

Estimated compensation compared with the broader US market for similar roles.

Estimated job median (per year)Highly competitive
$100,000
US market range (per year)$80k–$120k
AI insightThe yearly pay period is inferred from the job context; it was not explicitly stated by the employer. No employer salary was disclosed. The figures are estimated annual USD market compensation for a mid-level Python engineer focused on Linux hardware test automation; the yearly period is inferred from the full-time professional role.

Core skills

Skills and capabilities most closely associated with this opportunity.

Sample interview questions
How would you design a Python-based framework for automated hardware certification tests?

I would separate device control, test orchestration, assertions, reporting, and environment configuration into modular components. The framework would provide reproducible setup and teardown, structured logs, clear failure diagnostics, retries only for known transient issues, and extensible interfaces for different device types.

Describe how you would investigate an intermittent hardware test failure on Ubuntu.

I would first preserve logs, system state, kernel messages, device identifiers, and exact test conditions. I would then reproduce the issue under controlled conditions, compare passing and failing runs, isolate whether it is caused by the test, driver, firmware, hardware, or environment, and add targeted diagnostics or regression coverage after identifying the root cause.

What practices help make automated tests reliable rather than flaky?

Reliable tests use deterministic inputs, explicit readiness checks, isolated environments, realistic but bounded timeouts, and robust cleanup. I avoid arbitrary sleeps, ensure assertions validate meaningful behavior, capture artifacts on failure, and distinguish genuine product defects from infrastructure instability.

How would you support remote testing of physical devices?

I would use secure remote access to power control, serial consoles, network provisioning, and device recovery mechanisms. The test system should inventory devices, reserve them to prevent contention, collect telemetry centrally, and recover devices automatically after failures whenever possible.

How do you collaborate effectively in a globally distributed engineering team?

I communicate decisions and status asynchronously through clear documentation, actionable issue reports, and well-scoped code reviews. I plan work around time-zone overlap, make handoffs explicit, and raise risks early so teammates and external partners can unblock progress efficiently.

This analysis is generated from the job description. Salary estimates, role characteristics and sample answers are guidance, not employer-provided facts.
Next step

Apply now.

Follow the employer’s application method and review Jobicy’s safety guidance before sharing personal information.

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

Continue on the employer website

Protect your personal information and never pay to secure an interview or job offer. .

Log in to save
One quick step before you apply

Sign in to continue.

Sign in or create a free account to continue to the employer's application.

Add alert
Jobs Talent AI Tools Salaries
Menu