Software Developer - Distributed Systems (Dqlite)

Publisher of Ubuntu, pioneering open source tech firm leading AI, IoT and cloud platforms
Distributed Systems
Mid-Level Software Engineer
Remote
3+ years of experience
Enterprise SaaS

Description For Software Developer - Distributed Systems (Dqlite)

Canonical, the company behind Ubuntu, is seeking a Software Developer to work on dqlite, their distributed SQLite database. This role focuses on developing and enhancing their distributed database system that uses their custom Raft library for consensus and replication. The position involves working with both C and Go, with plans to expand to Python and other languages.

The role offers a unique opportunity to impact modern computing technologies through work on MicroK8s, LXD, and other projects. You'll be responsible for implementing features, fixing issues, improving testing, and engaging with both open source communities and commercial partners.

Canonical offers a truly remote-first environment, having operated this way since 2004. The company provides comprehensive benefits including education budget, parental leave, and mental health support. They emphasize personal growth through learning opportunities and regular compensation reviews.

The ideal candidate should have strong distributed systems experience, particularly with Raft, excellent C programming skills, and solid understanding of asynchronous programming. You'll be joining a fast-paced team environment that values excellence and innovation in open source technology.

Working at Canonical means being part of a global movement towards open source technology, contributing to Ubuntu's platform that powers AI, IoT, and cloud computing. The company prides itself on fostering a diverse, discrimination-free workplace where different perspectives are valued and celebrated.

Last updated 2 days ago

Responsibilities For Software Developer - Distributed Systems (Dqlite)

  • Design and implement features across dqlite
  • Debug and fix issues encountered by users
  • Improve Jepsen tests, traditional HA database automated testing and stress tests
  • Participate in engineering process through code and architectural review
  • Engage with the open source community and commercial partners

Requirements For Software Developer - Distributed Systems (Dqlite)

Go
Python
  • Experience with distributed systems (preferably with Raft)
  • Good C programming experience
  • Solid understanding of asynchronous programming and concurrency patterns
  • Capacity to learn quickly about new systems and techniques
  • Strong written and verbal communication skills
  • Bachelor's or equivalent in Computer Science, STEM or similar degree

Benefits For Software Developer - Distributed Systems (Dqlite)

Education Budget
Parental Leave
Mental Health Assistance
  • Personal learning and development budget of USD 2,000 per year
  • Annual compensation review
  • Recognition rewards
  • Annual holiday leave
  • Maternity and paternity leave
  • Employee Assistance Programme
  • Opportunity to travel to meet colleagues
  • Priority Pass and travel upgrades for long haul company events
  • Distributed work environment with twice-yearly team sprints in person

Interested in this job?

Jobs Related To Canonical Software Developer - Distributed Systems (Dqlite)

Software Engineer, Distributed Systems Testing

Software Engineer position at Canonical focusing on distributed systems testing and cloud infrastructure validation.

Software Engineer, Distributed Systems Testing

Software Engineer position at Canonical focusing on distributed systems testing and cloud infrastructure validation.

Software Engineer, Ceph & Distributed Storage

Software Engineer position at Canonical focusing on Ceph storage and distributed systems, working remotely with a global team on Ubuntu and cloud technologies.

Software Engineer, Ceph & Distributed Storage

Software Engineer position at Canonical focusing on Ceph storage and distributed systems, working remotely with a global team on Ubuntu and cloud technologies.

Software Developer - Distributed Systems (Dqlite)

Software Developer position at Canonical focusing on distributed SQLite database development using C and Go, with emphasis on Raft consensus implementation.