
Distributed Systems Testing Software Engineer, Python / Go
Canonical · EMEA
- Remote
- Full-time
- $120,000 / year
Job highlights
- Test resilient distributed systems using Ubuntu and Juju.
- Build and validate cloud orchestration tools.
- Develop CI pipelines for cloud integration testing.
- Automate testing for reliability and performance.
- Collaborate with a global, remote team.
About the role
About Canonical
Canonical is a leading provider of open source software and operating systems to the global enterprise and technology markets. Our platform, Ubuntu, is 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.Job Summary
We are hiring a Software Engineer for Distributed Systems Testing with a passion for building and validating resilient distributed systems. You will 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 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, and Azure.Role Responsibilities
- Develop CI pipelines that power Canonical’s cloud integration testing and reporting.
- Test products on new clouds and advance AI/ML pipelines for automatic analysis of test results.
- Create automated testing approaches and infrastructure for validating reliability, performance, and resilience of cloud orchestration tools and applications.
- Enable engineering teams across Canonical to develop software with confidence by making distributed system testing tooling available company-wide.
- Enhance continuous integration pipelines for deploying and testing Canonical’s cloud-native products such as Kubeflow.
- Deploy, manage, and debug highly distributed systems on clouds and bare metal.
- Monitor and report on automated testing efforts.
- Collaborate daily with a globally distributed team.
What We Are Looking For
- 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 (e.g., Jenkins, CircleCI, GitHub Actions).
- Knowledge of networking technologies and fundamentals.
- Solid understanding of the Linux system architecture.
- Complex abstract thinking.
- Willingness for 2-4 weeks of international 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 (e.g., OpenStack, Kubernetes, Terraform, AWS).
What We Offer
- Geographical location, experience, and performance are considered in shaping compensation worldwide.
- Annual compensation review (and more often for graduates and associates).
- Performance-driven annual bonus or commission.
- Additional benefits reflecting company values and ideals, balanced 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 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.Key skills/competency
Distributed Systems Testing Software Engineer, Python, Go, Test Automation, CI/CD, Cloud Orchestration, Linux, Networking, Object-Oriented Development, Quality Engineering.Skills & topics
- Distributed Systems
- Testing
- Software Engineer
- Python
- Go
- Cloud
- Ubuntu
- CI/CD
- Automation
- Linux
How to get hired
- Tailor your resume: Highlight Python/Go, distributed systems testing, CI/CD, and Linux experience.
- Showcase your projects: Demonstrate experience with automated testing and cloud technologies.
- Prepare for technical questions: Review Linux architecture, networking, and object-oriented design.
- Highlight collaboration skills: Emphasize experience in globally distributed teams.
- Express passion for quality: Articulate your data-driven approach to testing and validation.
Technical preparation
Master Python or Go for automation.,Deepen Linux system architecture knowledge.,Understand CI/CD tools like Jenkins.,Study distributed systems and cloud concepts.
Behavioral questions
Describe a complex system you tested.,How do you ensure test automation quality?,How do you collaborate with remote teams?,How do you approach data-driven testing?
Frequently asked questions
- What are the primary responsibilities of a Distributed Systems Testing Software Engineer at Canonical?
- As a Distributed Systems Testing Software Engineer at Canonical, you will focus on building and validating resilient distributed systems, developing automated testing approaches and infrastructure, enhancing CI pipelines, and collaborating with a global team to ensure the high quality of Canonical's cloud solutions.
- What programming languages are essential for this role at Canonical?
- Proficiency in Python or Go is essential for this Distributed Systems Testing Software Engineer role at Canonical. Experience with object-oriented development is also a strong requirement.
- Can you elaborate on the work environment at Canonical for this Distributed Systems Testing Software Engineer position?
- Canonical fosters a distributed work environment, with most colleagues working remotely. The company values global collaboration and organizes in-person team sprints twice a year in various global locations.
- What kind of cloud technologies is this Distributed Systems Testing Software Engineer expected to work with?
- This role involves testing and deploying systems on various cloud platforms, including AWS, GCE, and Azure, as well as bare metal. Familiarity with technologies like OpenStack, Kubernetes, and Terraform is beneficial.
- What is Canonical's approach to quality assurance for its cloud solutions?
- Canonical views quality engineering as a first-class practice. The Distributed Systems Testing team is responsible for ensuring the high quality of cloud solutions, employing data-driven approaches and advanced automation.
- Does Canonical offer opportunities for professional development for its engineers?
- Yes, Canonical offers a personal learning and development budget of USD 2,000 per year for all team members, supporting continuous learning and skill enhancement.
- What is the expected travel commitment for the Distributed Systems Testing Software Engineer role?
- The role requires 2-4 weeks of international travel per year, primarily for team sprints and company events, allowing for in-person collaboration and strategic alignment.
Similar roles
Open positions we recommend based on this role.