Canonical Software Engineer - C/C++, Go, Python

Posted on January 23rd, 2019

Canonical is looking for a talented software engineer to join our distributed  team focused on developing and maintaining a software stack bringing Android to the cloud.

You will be working with a small, dedicated team on the development and maintenance of our software stack and helping customers integrate it into their existing environments. We’re developing a great set of software components running at scale utilising various Canonical technologies including LXD, Juju, MAAS, and snaps to deliver the best experience for our customers.

Key Responsibilities and accountabilities

  • Development and maintenance of various components in C/C++, Go and Python in a distributed cloud software stack
  • Writing and maintaining automated tests
  • Participating in code reviews
  • Assisting with CI and release management tasks
  • Writing documentation
  • Collaborating proactively with a distributed team

Required Skills and Experience

  • Solid programming experience in major programming languages (Go or C/C++ preferred)
  • System level programming (interaction with file systems, networking and containers)
  • Experience with containers (e.g. docker, LXD, kubernetes) and the underlying technologies (namespaces, …)
  • Android system level knowledge and experience
  • Good understanding of the makeup of a modern GNU/Linux distribution
  • Experience with modern distributed version control systems such as git
  • Capacity to learn quickly about new systems and techniques
  • Excellent logic, problem solving, and troubleshooting skills
  • Good verbal and written communication skills in English
  • Ability to collaborate remotely with a distributed team
  • Degree level education in a technology field

Desirable Skills and Experience

  • Experience with Canonical technologies. For example Juju, charms, MAAS, and LXC/LXD
  • Experience with packaging (debian, snaps)
  • Experience with EGL / OpenGL ES / Vulkan
  • Theoretical understanding of complex and distributed systems
  • Experience working in a distributed team


Travel to international destinations is expected for 1 week at a time approximately 3-4 times per year. This is for a mix of internal company events and on side customer support.

Locations in the last year have included Brussels, Berlin, Vancouver, Cape Town, Budapest and Salt Lake City.

What Canonical Offers

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

Keywords: android, containers, lxd, cloud, ubuntu, home, remote,  travel, home office

Reports to: Engineering Manager

Apply for this Position