Software Engineer, Distributed Storage (Remote – Americas/Europe)

Job Summary

In this role, you’ll be building and modeling software to drive distributed storage systems.  You’ll be engineering solutions to scale in production. You’ll work with our field and product teams to ensure we’re meeting the needs of customers who are looking to adopt cutting-edge technology to solve real-world business challenges.

Applicants should be passionate about the future of the software-defined datacenter, distributed storage systems, and open source. Canonical is a globally-diverse team of engineers who share that passion, and you will need to work well in that context.  Engineers who thrive at Canonical are mindful of the dynamics of the open source ecosystem, and equally aware of the needs of large, innovative organizations.

Required skills and experience:

  • Professional track record (2+ years) of software engineering using Python, C++, Golang or similar.
  • Advanced working knowledge of cloud computing and distributed storage systems.
  • Degree-level education in a technology field.
  • Experience with agile software development methodologies.
  • Experience with Linux and the free software world.
  • Excellent communication skills in the English language, both verbal and written, especially in online environments such as mailing lists and chat systems.
  • Ability to effectively interact with a diverse group of people (both technical and non-technical).
  • Ability to be productive in a globally distributed team through self-discipline and self-motivation, delivering according to a schedule, and to motivate and mentor others to do the same.

Desirable skills and experience:

  • Demonstrated track record of open source code contributions and community participation.
  • Experience with one or more Linux package distribution technologies (deb, snap, rpm).
  • Experience with Ceph, Swift, and/or DRBD as a developer or as an operator/administrator.
  • Experience with container technologies and platforms (LXC, LXD, Docker, Kubernetes, or similar).

Key responsibilities:

  • Develop high-quality, extensible, and reusable software (Python, C++).
  • Display strong technical leadership in feature definition, feature delivery, code review, and backlog management.
  • Interact with stakeholders, product owners, including field teams and customers, to define new features and to resolve issues.


It is our mission to make open source software available to people everywhere.

Technology we use