OpenStack is one of the top 3 most active open source projects and manages 15 million compute cores     Learn more

OpenStack Job Board

Published on January 21
Python Software Engineer



Job Summary:

As a software engineer at Canonical, you have a key role in the success of Ubuntu, our partners, customers, and the larger Ubuntu community. Your primary responsibility is to your team - contributing toward objectives, continuously improving, and striving to be a vital part of a healthy, high-performing team. At Canonical, you will have the opportunity to influence the culture, facilitate technical delivery, and work with your team on strategy and execution.


As part of Cloud Engineering, you’ll be building modeling software to drive systems such as OpenStack, Ceph, Kubernetes, and Big Data. You’ll be engineering solutions to scale in production, working with our field teams to ensure we’re meeting the needs of customers looking to adopt cutting-edge technology on a diverse variety of hardware and machine architectures.


Applicants should be passionate about the future of the software defined datacenter, distributed systems, and open source. Canonical is a globally distributed 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. 

This job involves international travel several times a year, usually for one week at a time. 

Key responsibilities:

  • Develop high-quality, extensible and reusable software, primarily in Python.

  • Interact with customers, users, and field support engineers to resolve problems and define new features.

  • Display strong technical leadership in feature definition, feature delivery, code review, and backlog management. 

Required skills and experience: 

  • Proven track record of at least 5 years professional software delivery using Python, Go, C, C++, Java or similar.

  • Degree level education in a technology field  

  • Experience with non-x86 architectures including s390, arm64, power and others

  • Experience with agile software development methodologies

  • Experience of the Linux and free software world

  • Working knowledge of cloud computing

  • Excellent communications 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:


  • Python programming language experience

  • Technical understanding of complex distributed systems

  • Delivery of scale-out service solutions

  • Experience with private, edge, and/or telco cloud technologies (OpenStack, StarlingX, Airship, VMWare, HyperV)

  • Experience with container technologies (Docker, LXD, Kubernetes, DC/OS etc)

  • Exposure to devops/system administration

  • Experience working on a distributed team on an open source project -- even if that is outside work open source contributions. 

  • Demonstrated track record of Open Source contributions

To apply, fill out an application at