Suggested rewrite: Led a cross-functional initiative that improved [business outcome] by [measurable result], demonstrating experience relevant to this role...
Software Engineer – Cross-platform C++ – Multipass
- Remote from
- EMEA
- Salary
- Undisclosed
- Department
- Software Engineering
- Employment
- Full Time
- Experience
- Open level
- Published
- Apply before
- 7 Dec 2026
- Listing views
- 24
- Application actions
- 1
Make your next move.
Prepare your resume, explore your fit, and draft a cover letter for this opportunity.
About this role.
Use your deep C++ skills on Windows and MacOS to build an amazing open source developer experience with Multipass, the workstation mini-cloud at your fingertips which provides Ubuntu and appliance VMs on demand for build, test and prototyping. The Multipass team is hiring a Software Engineer to join our distributed team. We greatly value quality in our code, and great user experience.
Multipass is published for macOS, Windows, and also Linux. Think of it as a workstation mini-cloud. At its simplest you can simply say multipass launch and you will get a new VM on your workstation. You can feed that VM data, just as you would on a public cloud like AWS, Azure or GCP.
The goal is not to be a full cloud of course. The goal is to give developers a local cloud on their workstation, which they can use to run builds in the background, or to try cloud appliances, or to test their own cloud deployments and cloud-init scripts, free of charge. People sometimes use it as a build farm on a shared server, for example.
As a Software Engineer you are expected to play a leadership role designing, mentoring, reviewing and of course coding.
Location: This is a remote position available in the EMEA region only.
What you will focus on
- Ensure Multipass is easy and intuitive to use
- Architect new features and design the user experience
- Write high-quality code to create new features and fix bugs
- Review code and architecture as part of Canonical’s engineering process
- Collaborate proactively with a distributed team
- Debug, track down and fix issues encountered by our users
- Foster the open source community and support customers when needed
- Travel internationally for up to two weeks, twice a year, for company events
What we are looking for in you
- Cross-platform development experience on macOS and/or Windows
- Expertise in modern C++ development (C++14 minimum)
- Experience with software testing and test-driven development
- Extremely high personal standards for code quality, testing and design
- Knowledge of hypervisor technologies such as Hyper-V, VirtualBox, KVM, and QEMU
- Open source experience and involvement
- Knowledge of CI systems a plus
- Capacity to learn quickly about new systems and techniques
- Excellent communication skills in English – both verbal and written
- Bachelor’s or equivalent in Computer Science, STEM or similar degree
What we offer you
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 recognise outstanding performance. In addition to base pay, we offer a performance-driven annual bonus. 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
- Employee Assistance Programme
- 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 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. 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.
#LI-remote
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.
Role DNA
A quick view of the complexity, pace, ownership and collaboration implied by the job description.
Pace & Pressure
4/5Autonomy Level
5/5Communication Load
4/5Salary analysis
Estimated compensation compared with the broader US market for similar roles.
Core skills
Skills and capabilities most closely associated with this opportunity.
Sample interview questions
I would define a stable backend interface around core VM lifecycle operations and keep platform-specific implementations behind that interface. Shared domain logic would remain platform-neutral, while each backend would encapsulate its own API, capability detection, error translation, and resource management. I would also use dependency injection and contract tests to ensure consistent behavior across implementations.
I would first gather reproducible steps, Multipass logs, Windows version details, backend selection, and relevant Hyper-V or networking diagnostics. I would isolate whether the failure occurs in command parsing, image retrieval, VM provisioning, networking, or the hypervisor API. After reproducing it in a comparable environment, I would add targeted logging and regression coverage before implementing and validating a fix.
I rely on clear design proposals, focused pull requests, automated formatting and static analysis, unit and integration testing, and thorough code review. I document important architectural decisions and communicate trade-offs asynchronously so contributors in different time zones can participate. I also treat production issues and regressions as opportunities to improve tests and engineering standards.
I would separate deterministic business logic from the hypervisor integration so that most behavior can be unit-tested with fakes. I would add integration tests against supported backends for provisioning, lifecycle operations, networking, storage, and failure handling. The tests would include cleanup checks, timeouts, retries where appropriate, and regression cases for reported user issues.
I would begin by helping the engineer frame the problem, identify constraints, and break the work into testable steps rather than immediately supplying a solution. During design and review discussions, I would explain the reasoning behind interface boundaries, failure handling, and testing choices. This approach develops ownership while ensuring the final implementation meets reliability and maintainability standards.
Apply now.
Follow the employer’s application method and review Jobicy’s safety guidance before sharing personal information.
Continue on the employer website
Protect your personal information and never pay to secure an interview or job offer. .
