Canonical Senior Software Engineer

Posted on January 15th, 2019

The Snap teams at Canonical (commercial sponsor of Ubuntu) are making it possible for app publishers to reach all cloud, Internet of Things, and Linux desktop systems with a single publication backed by atomic, automatic updates.

We are looking for a Senior Software Engineer in the Americas to join our remote-based team. We want someone who shares our passion for building developer tools and who loves interacting with their users.

The Internet of Things is held back by an inability to trust our homes, cars, and security to devices that receive instruction from the Internet. Manufacturers are faced with a false dilemma: either they push out an update that risks bricking devices, or they leave the software unchanged and risk getting hacked.

We believe there is a third choice. Build your device with snaps as the software delivery mechanism and push out updates frequently without risking breakage.

Our team’s responsibility is for Snapcraft, the end developer experience provided around snaps. It lets developers bundle their app, dependencies, and config into an upload to the Snap Store. These uploads have the same behaviour regardless of where they’re run, and roll back on upgrade when provided health checks fail.

As a team we get to travel the world, and typically you’ll be on the road a week every three months. This past year we’ve sent people to Cape Town, Seattle, Budapest, Berlin, Montreal, and Brussels.

Key responsibilities

  • Our core mission is to make developers’ lives easier. You will have a keen sense of how Snapcraft can further reduce friction and will bring that vision to the project.
  • Add and maintain snapcraft plugins using domain specific language of the build tools the plugin is targeting to support.
  • Snapcraft should be a joy to use. You have an eye for good user experience.
  • Building snaps should feel familiar, building on the tools developers already know. You’ll be conversant in many languages, frameworks, integrations, and CI systems. You’ll teach these to produce snaps.
  • You will be working with several external open source and commercial projects to best understand how we can better serve the developer community needs.
  • Sometimes our developers just need a helping hand. You will be available to share your knowledge of the development process and snapcraft to ensure our community have everything they need to be successful. Sometimes this is online, other times it may be in person speaking at conferences or meet-ups.

Required skills

  • Expertise in Python or similar
  • Hold yourself and others to a high standard when working with production code
  • Excellent communications skills in the English language, both verbal and written, especially in online environments such as Slack and Google Hangouts
  • Collaborate proactively within a distributed team
  • Bachelor's degree in Computer Science or equivalent
Apply for this Position