Never pay for any CBT, test or assessment as part of any recruitment process. When in doubt, contact us
We deliver open source to the world faster, more securely and more cost effectively than any other company. If you're interested in a career at Canonical, we are a remote-first company so please apply to any suitable role as skills are valued more than location, despite some having a preferred geographic preference.
Summary
This is an exciting opportunity for a software engineer passionate about open source software, Linux, and distributed systems. Come build a rewarding, meaningful career working with the best and brightest people in technology at Canonical, the growing international software company behind Ubuntu.
As a software engineer on the Juju team, you'll be working on a large open source Go project that powers complex distributed software systems across the world. Juju is the engine behind model-driven operations, providing a means to operate complex software on public cloud, private cloud, Kubernetes and bare-metal. Combined with the Charmed Operator framework, Juju provides a complete solution for applications and infrastructure management.
If you love solving interesting technical challenges in elegant, high-performance ways, come join our globally-distributed team of software engineers in building the future of the software-defined data center on the Ubuntu platform.
Many internal and external teams depend on Juju to deliver their products and services - from Canonical Infrastructure Services, our Openstack and cloud delivery teams, to Fortune 500 companies
What You'll Do
- Work with a variety of languages (primarily Go) to develop high-quality, extensible and reusable software.
- Actively collaborate with both internal and external users to resolve problems and define new features.
- Show strong technical leadership and rigour in feature definition, feature delivery and code review.
- Ensure quality by maintaining the tools, framework and infrastructure to run tests.
Who You Are
- Proven track record of at least 5 years professional software delivery using Go, C, C++ or similar.
- Solid networking background and experience
- 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 and experience with highly-concurrent distributed systems
- Excellent communications skills in the English language, both verbal and written, especially in online environments
- 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
- Software development and operational experience with databases
Desirable Skills And Experience
- Passion for quality and testing
- Go programming language experience
- Excellent distributed systems administration experience
- Proficient DevOps methodology and process
- Experience with test automation including system level automation and job runners
- Experience with continuous integration strategies
- Experience with packaging (debian, snappy)
- Release Management
- Technical understanding of complex distributed systems
- Delivery of scale-out service solutions
- Experience with container technologies (Docker, LXD, Kubernetes, etc.)
- Programming with and operating MongoDB
- 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