Canonical and Ubuntu are at the heart of cloud computing, distributed computing, and scalable software systems. Whether public or private clouds, bare metal, or virtualized in a container, Ubuntu is there.
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.
You will travel internationally 4 to 6 times per year for team engineering sprints, industry events, and strategic planning sessions, generally for 1 week at a time. Recent locations include: Montreal, Malta, South Africa, Berlin, Ghent, Brussels, Vancouver, Salt Lake City, New York City, Budapest and Shanghai.
- 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.
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).