Remote jobs in Programming

WORK ANYWHERE!

Canonical

Software Engineer - Distributed Systems

Worldwide

c

go

testing

4 months

Remote Jobs

>

Remote Jobs in Worldwide

>

Software Engineer - Distributed Systems

Location: Type: Full-time

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 worlds 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.



#LI-Remote #stack

Your DREAM REMOTE JOB inside your inbox!

Get a
email of all new remote
Jobs.

Cookies, terms, and privacy policy

By clicking or navigating this website you accept and allow all our cookies, terms of use and privacy policy. This site uses cookies to offer you a better browsing experience.

UNDERSTOOD
feedbackfeedback

How would you rate your experience?

Experince

We may wish to follow up. Enter your email if you're happy for us to contact you.