Canonical's Juju team is looking for talented developers to join a distributed engineering team focused on delivering the best tools for operating scale out software on today’s cloud infrastructure.
Juju encourages encapsulating best practice operations enabling smaller teams of operators to successfully manage the explosion of infrastructure brought about by the move to microservice based architectures. Juju enables teams to think at a higher level and move beyond machines by name. This enables teams to not just deploy software like OpenStack, Kubernetes, Big Data, or ML/AI stacks, but to operate it over time including adapting scale, managing upgrades, and dealing with HA failover.
We have a lot of interesting work ahead of us in providing the most thoughtful and powerful tooling to our users. Juju is written in Golang. If you have a passion for clean APIs, have a bias towards shipping and believe that tests are the key to higher velocity and reliability, you'll fit right in.
As a Technical Architect in the Juju team, you will have broad impact and responsibility for overseeing the quality and long-term success of the project.
- Independently scope, design, and deliver solutions for large, complex, and mission-critical projects across the entire Juju project.
- Provides technical oversight, coaching and guidance through code and design reviews.
- Have a broad understanding of the whole system and be a go-to expert in a variety of subsystems.
- Anticipate scaling and reliability challenges and explore alternatives and tradeoffs thoroughly.
- Work in small teams to develop services, features, and enhancements according to our development roadmap in Golang
- Be responsible for the end-to-end success of your work, including definition, testing, validation, and stakeholder engagement
Required Skills and Experience:
- 8+ years software engineering experience with a focus on distributed computing and asynchronous programming using Golang, C, or C++
- Proven ability to consistently deliver robust code to production and to lead feature design and development
- Experience operating software at scale and in the data center
- A rigorous approach to software design, development and testing
- Excellent verbal and written communication skills in English
- Ability to collaborate remotely with a diverse set of team members and remain highly motivated, productive, and organized
- Experience with container technologies (Docker, LXD, Kubernetes, DC/OS)
- Familiarity with Ubuntu as a development and deployment platform
Desired Skill and Experience:
- Experience operating highly-available production services at scale
- Experience with data center networking design and challenges
- Experience with migrating legacy software to modern workloads in the cloud
Location and Travel:
Our team is 100% remote with team members in Eastern Americas, Western Europe, so we are pretty flexible on your timezone. Travel to international destinations is expected for 1 week at a time approximately 2-4 times per year.