
Remote opportunity at
CanonicalLinux devices software engineer - snapd
Canonical is recruiting a Linux devices software engineer for its SnapD team, which writes the Go code behind snaps. Snaps are a packaging and delivery format…
Career Tools
About This Role
Canonical is recruiting a Linux devices software engineer for its SnapD team, which writes the Go code behind snaps. Snaps are a packaging and delivery format for Linux built around safety, security and robustness, with confinement suited to IoT devices, desktops and servers. Its scope covers software delivery, container work, sandboxing for security, telemetry and managing devices, all of which sit close to the core of the operating system. The…
Job Description
Canonical is recruiting a Linux devices software engineer for its SnapD team, which writes the Go code behind snaps. Snaps are a packaging and delivery format for Linux built around safety, security and robustness, with confinement suited to IoT devices, desktops and servers. Its scope covers software delivery, container work, sandboxing for security, telemetry and managing devices, all of which sit close to the core of the operating system.
The engineer writes well-tested code for new features, tracks down system-level Linux faults and fixes them, and reviews the work of other engineers. The role also means building software that keeps working when something unexpected happens, such as a power cut. The posting places a high value on quality and performance and asks for a real interest in how software is published and consumed. Teamwork, peer review, thorough unit and integration testing, and maintainable code are emphasised throughout.
The role is remote and based in the EMEA or Americas region. It involves working from home with occasional global travel, up to two weeks at a time, roughly twice a year. Previous Go experience is a strong plus rather than a requirement.
Responsibilities
- Work with a distributed engineering team
- Write high-quality code for new features
- Debug Linux system-level problems and produce fixes
- Review code written by other engineers
- Talk through ideas with colleagues and settle on sound solutions
- Design for robustness against unexpected failures such as power loss
Requirements
- A bachelor's degree or equivalent in computer science, a STEM field or a similar subject
- Professional software development experience in Go, Python, C or C++
- Solid knowledge of Linux system fundamentals such as cgroups, namespaces and AppArmor
- General knowledge and experience of Linux as a developer platform
- Commitment to software testing, code review and maintainable code
- An interest in how software is published and consumed
- Curious, flexible, articulate and accountable, with a passion for open-source development
Qualifications
- Prior Go experience, which is a very nice extra
Core Skills
Benefits
- Home-based work plus in-person team sprints twice a year
- Yearly allowance of USD 2,000 toward training
- Yearly pay review and recognition awards
- Yearly holiday leave, plus maternity and paternity leave
- Employee Assistance Programme
- Chances to visit new places and meet coworkers
- Priority Pass access and travel upgrades on long-haul company trips
- Performance-based annual bonus
Frequently Asked Questions
Answers are based only on the employer’s listing; where it doesn’t say, neither do we.
Where can the role be performed?
The role is remote and based in the EMEA or Americas region.
Which languages does the posting mention?
The posting names Go, Python, C or C++ as acceptable professional experience. Previous Go experience is a strong plus.
How much travel is involved?
The posting mentions occasional global travel of up to two weeks at a time, for company engineering events.
Sample Interview Questions
AI-generated questions tailored to this specific role — a preview of the full practice set.