
Remote opportunity at
CanonicalC, Golang Software Engineer working on dqlite, a Raft extension for SQLite
Canonical is looking for a full-time C and Golang software engineer to work on dqlite, its distributed SQLite database. Applicants in the EMEA region are considered…
Career Tools
About This Role
Canonical is looking for a full-time C and Golang software engineer to work on dqlite, its distributed SQLite database. Applicants in the EMEA region are considered for this remote position. dqlite uses Canonical's own Raft library to agree on data across nodes and to replicate it. The product is available as a stand-alone C library and as a Go package, and Python and other language bindings are planned. The engineer…
Job Description
Canonical is looking for a full-time C and Golang software engineer to work on dqlite, its distributed SQLite database. Applicants in the EMEA region are considered for this remote position. dqlite uses Canonical's own Raft library to agree on data across nodes and to replicate it. The product is available as a stand-alone C library and as a Go package, and Python and other language bindings are planned.
The engineer will design and build improvements to libraft, dqlite and go-dqlite, which feed into products such as MicroK8s and LXD. Other work includes answering issues and questions from users, fixing defects they encounter, and expanding Jepsen, high-availability database and stress tests. The engineer also takes part in code and architecture reviews and collaborates with community members in the open-source world and with business partners.
The right person has worked on distributed systems, preferably Raft-based ones, and writes competent C. Knowledge of asynchronous programming and concurrency is a useful extra. Quick learners who can explain technical ideas clearly in writing and in speech will do well here. Canonical has operated remotely since its founding in 2004, and staff gather in person for sprints twice a year.
Responsibilities
- Design and build new features across dqlite
- Investigate and fix problems users run into
- Extend Jepsen, high-availability and stress testing of the database
- Review code and architecture changes from peers
- Work with open-source community members and business partners
Requirements
- Experience with distributed systems, ideally Raft-based
- Solid C programming
- Fast at picking up new systems and techniques
- Clear written and spoken communication
- Bachelor's degree or equivalent in computing, STEM or a closely related subject
Qualifications
- Familiarity with asynchronous programming and concurrency patterns
Core Skills
Benefits
- Pay reviewed every year
- Performance-linked annual bonus or commission
- Yearly learning allowance of USD 2,000 for personal development
- Team sprints held in person twice each year
- Annual holiday allowance plus maternity and paternity leave
- Wellbeing platform and assistance programme for team members
- Recognition rewards
- Chances to visit new cities and meet colleagues face to face
- Priority Pass lounge access and upgraded seats on long-haul company trips
Frequently Asked Questions
Answers are based only on the employer’s listing; where it doesn’t say, neither do we.
Is the role remote?
Yes. The posting lists it as remote, with the position open in EMEA.
What programming skills are required?
Solid C experience is required, and asynchronous programming knowledge is a plus. Go is not listed as a requirement.
What degree is needed?
A bachelor's degree or its equivalent in computing, STEM or a closely related field.
Is a salary stated?
No figure is given. Pay is described as depending on location, experience and performance.
Sample Interview Questions
AI-generated questions tailored to this specific role — a preview of the full practice set.