Team: Juju Engineering
Location: Home based with appropriate facilities including broadband internet
Do you want to be responsible for designing and building the products and infrastructure at the heart of the scale-out computing revolution? At Canonical we're developing technologies that are the cornerstone for the current technology transition to scale-out oriented computing, with Ubuntu Server as the number one operating system for cloud and hyperscale computing.
This specific role is centered around ensuring our service orchestration application, Juju. is a revolutionary service deployment and orchestration tool that allows for full lifecycle management of services across multiple substrates, i.e. Bare Metal, Containers, Virtual Machines, and Cloud Instances.
- Lead and/or assist fellow Juju engineers in the design of features and architectures that will meet current and anticipated product needs of Canonical’s cloud and scale-out strategy.
- Delivering core functionality and features for the Juju project according to the documented design and specifications set by the Juju team
- Processing feedback from users and other Juju developers into code features and fixes that adhere to the design guidelines established for Juju
- Reviewing and sponsoring contributions from outside community members
- Supporting contributors and users of Juju charms
- Actively engage with the Canonical Product Strategy team in the design of new cloud and scale-out products and solutions
- Work with other engineering and delivery teams within Canonical to design and/or prototype partner and customer solutions
Required skills and experience
- Strong background in Go programming and Linux Development.
- Familiar with multiple programming paradigms, including Object Oriented, Functional, and Logic Programming.
- Demonstrated advanced knowledge of multi-threaded programming and network/BSD sockets programming.
- Experience in distributed/scale-out computing
- Good background on deployment and monitoring of systems.
- Ability to write clear, simple, and readable code, even when handling non-trivial problems.
- Ability to research and explore new problems, developing a long-term vision, while still sustaining focus on having a working implementation in the short term.
- Good understanding and use of testing methodologies.
- Willingness to have authored code reviewed by coworkers.
- Good understanding of revision control systems.
- Ability to work with a distributed team in very different timezones.
- Willingness to travel up to five times a year, sometimes internationally, lasting up to 10 days each trip.