Software Engineer - Go - Distributed Systems - remote

Posted 3 years ago

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 datacenter 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 youll 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

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.

#LI-Remote #stack