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, and Kubernetes with a focus on distributed storage and Ceph. 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.
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.
- 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.
- Develop and maintain software for delivery, operations and life-cycle management of Ceph storage
Required skills and experience:
- Proven track record of at least 5 years professional software delivery using Python, Go, C, C++, Java or similar.
- Experience with open source distributed storage such as Ceph, Gluster, Minio, or similar
- Degree level education in a technology field
- 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
- Operational and/or development experience with Ceph
- Block and file subsystem experience within the Linux kernel
- Experience with storage performance analysis tools including fio, blktrace, perf, etc
- Delivery of scale-out service solutions
- Experience with private, edge, and/or telco cloud technologies (e.g. OpenStack, StarlingX, Airship, VMWare, HyperV, etc)
- 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
We are proud to foster a workplace free from discrimination. We truly believe that diversity of experience, perspectives, and background will lead to a better environment for our employees and a better platform for our users and customers. This is something we value deeply and we encourage everyone to come be a part of the world of Ubuntu.
Keywords: ceph, swift, block storage, c++, open source, storage replication, distributed storage, distributed object storage, distributed block storage, file storage, remote job, software development, software engineering
Reports to: OpenStack Product Engineering Manager
Job location: Remote, home-based, Americas or Europe