
Remote opportunity at
CanonicalUbuntu Software Engineer
This full-time Ubuntu Software Engineer role is open in every time zone and sits within Canonical's Ubuntu Engineering organization. Engineers in the role work on the…
Career Tools
About This Role
This full-time Ubuntu Software Engineer role is open in every time zone and sits within Canonical's Ubuntu Engineering organization. Engineers in the role work on the breadth of Ubuntu, from designing and building new software to packaging, integrating, testing and shipping open-source code in the Ubuntu archive. The company describes Ubuntu as the most widely deployed open-source operating system. The four groups responsible for Ubuntu releases are Foundations, which maintains…
Job Description
This full-time Ubuntu Software Engineer role is open in every time zone and sits within Canonical's Ubuntu Engineering organization. Engineers in the role work on the breadth of Ubuntu, from designing and building new software to packaging, integrating, testing and shipping open-source code in the Ubuntu archive. The company describes Ubuntu as the most widely deployed open-source operating system.
The four groups responsible for Ubuntu releases are Foundations, which maintains core software such as toolchains and package managers; Server, which guides the design of the Ubuntu Server distribution; Desktop, which covers the desktop, WSL and Flutter-based applications; and Debcrafters, which maintains the Ubuntu archive. Work categories include building software in Python, Rust, Go and Flutter, architecture across boot firmware to cloud deployment, packaging with Debian and Snap, automation of build and test pipelines, and distribution engineering.
The track suits engineers at the midpoint of their careers who are not yet at manager or lead level. Candidates should have two to four years working as a software engineer after university and solid working experience across C/C++, Flutter, Python, Go or Rust. Clear enthusiasm for open source, outstanding results at school and university, and a drive to go beyond expectations are sought.
After a first round of interviews, candidates are matched with specific teams for a second round. Nice-to-have experience includes Linux distributions, software packaging, build systems and cross-compilation, and performance or security engineering. Company events of up to two weeks each take place twice a year, and the role includes attending them.
Responsibilities
- Build and ship systems code in Rust, Go or Python
- Package, integrate, test and upload open-source code into the Ubuntu archive
- Debug system-level issues and deliver robust fixes
- Write technical and community documentation
- Give back to upstream and adjacent open-source projects
- Collaborate in a team spread across the world
- Mentor colleagues and improve team processes
Requirements
- Outstanding results both at school and at university
- A bachelor-level degree in computer science or a STEM field, or a clearly explained alternative path
- Two to four years working as a software engineer after university
- Substantial hands-on work in C/C++, Flutter, Python, Go or Rust
- Clear enthusiasm for open-source software
- Professional written and spoken English
- Strong communication and interpersonal skills
Qualifications
- Performance or security engineering experience
- Hands-on work with Linux distribution engineering
- Hands-on knowledge of software packaging systems
- Familiarity with build systems and toolchains, cross-compilation included
Core Skills
Benefits
- Distributed work with twice-yearly in-person team sprints
- Priority Pass access and upgrades on long-haul trips to company events
- A USD 2,000 yearly allowance for personal learning and development
- Annual compensation review and recognition rewards
- Maternity and paternity leave, plus annual holiday leave
- Employee assistance program and a wellness platform
- Chances to visit new locations and meet colleagues in person
Frequently Asked Questions
Answers are based only on the employer’s listing; where it doesn’t say, neither do we.
Where is this role based?
The posting says remote roles are open in every time zone.
What experience is required?
Candidates need two to four years working as a software engineer after university, plus substantial experience in C/C++, Flutter, Python, Go or Rust.
What is the interview process?
A first round of interviews is followed by second-round interviews with teams the candidate may suit.
How much travel is expected?
Company events, each up to two weeks, take place twice a year.
Sample Interview Questions
AI-generated questions tailored to this specific role — a preview of the full practice set.