Software Engineer - Juju
Home based - Worldwide
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. 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.
What you’ll do
- Work with a variety of languages to develop high-quality, extensible and reusable software.
- 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. Each Juju team member needs to actively collaborate with these users to resolve problems and define new features.
- Every member of the Juju team should show strong technical leadership in feature definition, feature delivery, code review, and backlog management.
- Juju is a complex piece of software that touches many other products. To ensure quality, the Juju team maintains 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
- Excellent communications skills in the English language, both verbal and written, especially in online environments such as mailing lists and IRC
- 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, DC/OS 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
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.