Software Engineer - Distributed Systems

Canonical | United Kingdom | EU & US Time Zones
Fully remote | Full Time | 11 Dec, 2020

Vacancy description

Job Title: Software Engineer (LXD)

Location: Home based - Americas, Europe

Keywords: dqlite, raft, lxd, C, go, remote, open source, travel, home

Reports To: LXD Engineering Manager

Role summary

The LXD team is responsible for the development and maintenance of the container and virtual-machine manager itself (LXD) as well as low-level container manager (LXC), virtual filesystem for containers (LXCFS), the sqlite and raft based database behind LXD (dqlite) as well as a variety of features in the Linux kernel.

This role is specifically focused on dqlite, our distributed sqlite database which uses our own libraft library for establishing consensus and replication and is available as a pure C library or through a Go package that we also maintain.

You will work on the LXD team to maintain and improve the libraft, dqlite and go-dqlite components which we consume in LXD and other projects. Work includes design, development and testing of features in those pieces of software as well as responding to issues and user enquiries.

Key responsibilities and accountabilities

  • Design and implement features across the dqlite stack to solve the needs of LXD and its other consumers
  • Assist in debugging, tracking down and fixing issues encountered by our users
  • Improve Jepsen tests, traditional automated testing and stress tests to catch issues as early as possible
  • Participate in our engineering process through code and architectural review
  • Take personal ownership of problems and drive them to solutions
  • Write high-quality code to create new features and fix bugs
  • Engage with the open source community and commercial partners
  • Collaborate proactively with a distributed team
  • Adaptable to a wide range of situations and software
  • Respond to and work to resolve issues raised by end-users and commercially supported customers as necessary

Required skills and experience

  • Experience with distributed systems (preferably with Raft)
  • Good C programming experience
  • Interest in LXD, containers and virtual machines a plus
  • Involvement in open source projects in the past a plus
  • Solid understanding of asynchronous programming and concurrency patterns a plus
  • Capacity to learn quickly about new systems and techniques
  • Travel domestically and internationally several times a year (when it is deemed safe to resume travel)
  • Strong written and verbal communication skills
  • Degree level education, preferably in a technology field

What Canonical Offers:

  • Learning and Development
  • Annual Compensation Review
  • Recognition Rewards
  • Annual Leave
  • Priority Pass for travel
  • Flexible working option

Canonical believes a diverse workforce enhances our ability to deliver world class software and services which meet the world’s computing needs. We are committed to ensuring equal employment opportunities to all qualified individuals. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.

Desired skills


About Canonical

We deliver open source to the world faster, more securely and more cost effectively than any other company.

We develop Ubuntu, the world’s most popular enterprise Linux from cloud to edge, together with a passionate global community of 200,000 contributors. Ubuntu means 'humanity to others'. We chose it because it embodies the generosity at the heart of open source, the new normal for platforms and innovation.

Together with a community of 200,000 we publish an operating system that runs from the tiny connected devices up to the world's biggest mainframes, the platform that everybody uses on the public cloud, and the workstation experience of the world's most productive developers.

Secure and reliable, elegant and intuitive, and open for innovation - Ubuntu is the future of open source, which is why its the fastest growing Linux in the world despite already being the most widely deployed.

Software Engineer - Distributed Systems

Canonical | United Kingdom | EU & US Time Zones
Fully remote | Full Time | 11 Dec, 2020