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 hours 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)

Backend distributed systems Engineer-SMTS/MTS

Backend Distributed Systems Engineer position at Salesforce, focusing on building scalable cloud platform features and APIs in a hybrid work environment.

Software Engineer, Distributed Systems

Software Engineer role at Censys focusing on distributed systems and data pipeline development for cybersecurity intelligence platform.

Software Engineer II

Join Microsoft as a Software Engineer II, working on Azure Edge Infrastructure and contributing to cutting-edge distributed systems.

Robotics Solutions Industrial Design Engineer

Amazon is seeking a Robotics Solutions Industrial Design Engineer to design next-generation Fulfillment Centers using cutting-edge technology and data analytics.

System Dev Engineer II, AWS EC2 Edge Frontier

Join AWS EC2 Edge Frontier team to develop hybrid-edge cloud services, focusing on embedded software and cloud-based solutions for expanding edge compute business.