‹ Back to list

Software Engineer - SnapD / API

Home based - Americas, EMEA

Software Engineer - API


Job Title: Software Engineer

Posting Date: N/A

Keywords: agile,distributed,systems,teams,go,golang, linux, ubuntu, home, travel, open source

Reports to: Snapd Engineering Manager

Job Location:  Home Based, Americas or Europe, appropriate fast internet is required


Job Summary


We are currently seeking an experienced Software Engineer to join our ever growing Snapd team. Snapd and snaps are the next generation of software delivery. They are designed for safety, security and robustness, to deliver software in per-application confined containers to IoT devices, desktops and servers across multiple Linux platforms.


As a Software Engineer, you'll add new features to snapd, review code written by your peers, diagnose and fix bugs and work with the field teams to help design and deliver solutions for customers in IoT, cloud environments and other Linux distributions. 


Applicants should be passionate about software development and open source. In our team we value collaboration, peer reviews, good unit/integration testing and writing maintainable code. Skills in the Go programming language and testing methodologies are required; API/over HTTP and REST API design and software architecture experience are a plus. A HTTP-based API is the main management interface for snapd, also we collaborate with the Snap Store team to evolve its interface.


Canonical has always been a home based employer, and global travel for face-to-face meetings, conferences and on-sites, has been an important way to strengthen and support that culture. When it is safe to do so, we hope to resume travelling the world together again, usually for no more than a week, 2-4 times a year. Previous locations have included Berlin, Brussels, Budapest, Cape Town, Malta, and Montréal and Salt Lake City.


Key responsibilities


  • Develop high-quality, extensible and reusable software, primarily in Go
  • Ability to collaborate remotely with a diverse set of team members and remain self-motivated, productive, and organized
  • Design, build and integrate new features, enhancements and bug fixes for snapd and Ubuntu Core
  • Participate in an engineering process with a deep-rooted culture of code and architectural reviews
  • Take ownership of problems and see them through to solutions
  • Actively engage with the open source community and commercial partners

Required skills and experience


  • Degree level education in computer science or software engineering
  • Experience with the Go programming language.
  • Proven track record of at least 3+ years of professional software development using Go, Python, C, C++ or similar.
  • Commitment to software testing, code reviews and maintainable code
  • Experience with Linux (any current distribution)
  • Excellent written and verbal communication skills in the English language
  • Some international travel required, usually for one week


Experience in the following is also beneficial:

  • Shell scripting for high level integration tests
  • System-level C programming 
  • API/over HTTP and REST API design
  • Software architecture

What Canonical Offers:

  • Learning and Development
  • Annual Compensation Review
  • Recognition Rewards
  • Annual Leave
  • Priority Pass for travel
  • Flexible working option

Canonical believes a diverse workforce enhances our ability to deliver world class software and services which meet the world’s computing needs. We are committed to ensuring equal employment opportunities to all qualified individuals. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.

#LI-Remote @stack

Apply for this role


Location unavailable