All remote jobs
Open role
Remote opportunity atCanonical Ltd.

Distributed Systems Testing Software Engineer, Python / Go

Review the role, location requirements, compensation details, and application process before deciding whether this opportunity fits your next career move.

Published
13Listing views
1Application actions
18 Sep 2026Apply before
Opportunity details

About this role.

AI Summary

Canonical is hiring a software engineer to build automated testing infrastructure for distributed cloud systems and orchestration products. The role focuses on validating reliability, performance, and resilience across public clouds and bare-metal environments using Python or Go. The engineer will enhance CI pipelines, deploy and debug systems such as Kubernetes, OpenStack, Terraform, Juju, and Kubeflow, and improve test reporting and analytics. Success requires strong Linux, networking, object-oriented development, and test automation knowledge, plus effective collaboration in a globally distributed remote team. The position offers high ownership, periodic international travel, and opportunities to contribute to AI/ML-based test-result analysis.

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 role requires strong software engineering ability alongside practical expertise in distributed-system testing, Linux, networking, CI/CD, and cloud infrastructure. Troubleshooting failures across heterogeneous clouds and bare-metal environments adds substantial technical complexity and ambiguity.

Salary analysis

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

Estimated job medianHighly competitive
$137,500
US market range$110k–$165k
AI insightNo salary range was provided. For the U.S. market, a distributed-systems test/software engineer with Python or Go, cloud infrastructure, Linux, CI/CD, and Kubernetes/OpenStack exposure is estimated at approximately $110,000 to $165,000 annually in base salary; a reasonable midpoint estimate is $137,500. Total compensation may be higher with Canonical's performance-based bonus and may vary by location, experience, and local compensation practices.

Core skills

Skills and capabilities most closely associated with this opportunity.

Cover letter sample

Dear Hiring Team,

I am excited to apply for the Distributed Systems Testing Software Engineer role at Canonical. My background in Python/Go development, automated testing, Linux systems, and CI/CD aligns well with building reliable validation infrastructure for cloud-native and distributed platforms.

I would bring a data-driven approach to diagnosing failures, improving test coverage, and strengthening resilience across cloud and bare-metal environments. I am also comfortable collaborating asynchronously with distributed teams and taking ownership of new engineering initiatives.

I would welcome the opportunity to help Canonical advance the quality and reliability of Ubuntu, Juju, Kubernetes, and related cloud solutions.

Sample interview questions
How would you investigate an intermittent failure in a distributed integration test?

I would first make the failure reproducible by capturing deployment configuration, software versions, logs, metrics, and network conditions. I would isolate likely fault domains—application behavior, orchestration, infrastructure, or network—and use targeted experiments to validate hypotheses before documenting the root cause and adding regression coverage.

What principles would you use to design CI pipelines for cloud integration testing?

A resilient CI pipeline should use isolated, repeatable environments; clear artifact and log collection; reliable cleanup; meaningful retry policies; and visible reporting on failure trends. I would also distinguish product defects from infrastructure flakiness and track both with service-level metrics.

How have you used Python or Go to improve test automation?

I would use Python or Go to create reusable test libraries, environment provisioning tools, API clients, result parsers, and reporting services. The language choice would depend on the surrounding tooling, performance needs, maintainability, and the team's established ecosystem.

How would you use testing data to improve engineering decisions?

I would collect structured data including test duration, cloud or hardware profile, component versions, failure signatures, resource metrics, and retry outcomes. Dashboards and trend analysis can then identify flaky tests, regressions, capacity bottlenecks, and areas where engineering effort will have the greatest quality impact.

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

I would establish clear written design notes, issue ownership, handoff expectations, and concise status updates that highlight decisions, blockers, and required actions. Regular synchronous sessions should be reserved for complex design discussions, incident coordination, and alignment where asynchronous communication is insufficient.

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

Canonical is a leading provider of open source software and operating systems to the global enterprise and technology markets. Our platform, Ubuntu, is very widely used in breakthrough enterprise initiatives such as public cloud, data science, AI, engineering innovation, and IoT. Our customers include the world’s leading public cloud and silicon providers, and industry leaders in many sectors. The company is a pioneer of global distributed collaboration, with 1200+ colleagues in 75+ countries and very few office-based roles. Teams meet two to four times yearly in person, in interesting locations around the world, to align on strategy and execution.

The company is founder-led, profitable, and growing.

We are hiring a Software Engineer for Distributed Systems Testing with a passion for building and validating resilient distributed systems. You drive the success of those leveraging Canonical’s Ubuntu and Juju to build multi-cloud deployable applications. We see quality engineering as a first class engineering practice and are looking for people who can bring deep engineering insights and a data driven approach to testing, test automation, reporting and data analytics.

The Distributed Systems testing team at Canonical is responsible for the high quality of Canonical’s Cloud solutions based on for example Juju, Terraform, OpenStack, or Kubernetes. Systems are tested and deployed under highly diverse conditions, from bare metal in customer data centers to public clouds such as AWS, GCE, Azure.

As a software engineer you will have the opportunity to develop CI pipelines which power Canonical’s cloud integration testing and reporting. You will help test our products on new clouds and advance our AI/ML pipelines for automatic analysis of test results. A successful candidate is interested in tackling these problems, as well as imagining and leading new initiatives within the team and across Canonical.

The role entails

  • Creating automated testing approaches and infrastructure for validating reliability, performance, and resilience of cloud orchestration tools and applications 
  • Enabling engineering teams across Canonical to develop software with confidence by making distributed system testing tooling available across the company
  • Enhancing continuous integration pipelines for deploying and testing Canonical’s cloud native products such as Kubeflow
  • Deploying, managing, and debugging highly distributed systems on clouds and bare metal
  • Monitoring and reporting on automated testing efforts
  • Collaborating daily with a globally distributed team

What we are looking for in you

  • Solid background in modern test processes and strategies
  • Experience with Python or Go development
  • Strong object oriented development skills
  • Working knowledge of continuous integration tools such as Jenkins, CircleCI, GitHub Actions
  • Knowledge of networking technologies and fundamentals
  • Solid understanding of the Linux system architecture
  • Complex abstract thinking
  • 2-4 weeks of international travel travel per year

Nice-to-have skills

  • Ability to develop and ship modern production grade web applications
  • Ability to operate data platforms: key-value stores, relational or document databases, event buses
  • Data collection and analytics skills for large multidimensional datasets
  • Experience with AI/ML pipelines
  • Experience with cloud technologies such as OpenStack, Kubernetes, Terraform and AWS

What we offer colleagues

We consider geographical location, experience, and performance in shaping compensation worldwide. We revisit compensation annually (and more often for graduates and associates) to ensure we recognize outstanding performance. In addition to base pay, we offer a performance-driven annual bonus or commission. We provide all team members with additional benefits which reflect our values and ideals. We balance our programs to meet local needs and ensure fairness globally.

  • Distributed work environment with twice-yearly team sprints in person
  • Personal learning and development budget of USD 2,000 per year
  • Annual compensation review
  • Recognition rewards
  • Annual holiday leave
  • Maternity and paternity leave
  • Team Member Assistance Program & Wellness Platform
  • Opportunity to travel to new locations to meet colleagues
  • Priority Pass and travel upgrades for long-haul company events

About Canonical

Canonical is a pioneering tech firm 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 of software. 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. Most colleagues at Canonical have worked from home since our inception in 2004.​ Working here is a step into the future and will challenge you to think differently, work smarter, learn new skills, and raise your game.

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.

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.

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.
Application method

Continue on the employer website

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

Log in to save
One quick step before you apply

Create your free account, then apply.

Build a more organized job search on Jobicy and continue to the employer's application when you're ready.

  • Never lose a promising opportunitySave roles and return to them from your dashboard.
  • See your entire search at a glanceTrack applications, stages and next steps in one place.
  • Get matched with relevant remote jobsChoose the alerts and digests that work for you.
or continue without an account
Applying is free. The employer's application opens in a new tab.
Add alert
Jobs Talent Salaries
Menu