
Canonical's Software Engineer interview starts with a long written questionnaire and aptitude testing, then moves to live technical conversations on engineering, architecture and Linux. Candidates report heavy resume follow-ups.
$108K
Avg. Base Comp
$120K
Avg. Total Comp
4 rounds
Typical Rounds
Not reported
Process Length
Candidates describe Canonical's Software Engineer process as long and writing-heavy before any live conversation. Several report a questionnaire of roughly 28 to 40 questions covering education, work history and views on the company. One candidate says the document is shared with later interviewers, and a few ask about it, so write answers you can defend in conversation. Candidates also describe a psychometric or general aptitude test and an online coding assessment. One reports easy-level coding problems, and another describes Python multiple-choice questions plus two problem-solving tasks.
The live interviews are reported as discussions rather than LeetCode-style puzzles. Candidates mention separate conversations on software engineering skills, architecture, and Linux. Reported topics include past projects and design choices, testing, CI/CD, system design, and Linux basics such as permissions, pipes, soft versus hard links, shared libraries and systemd. One candidate also recalls Python and Go fundamentals. Interviewers reportedly dig deep into resume projects, including what was slow, how it was measured and which alternatives were tried.
Outcomes in this set are mostly rejections or candidates still waiting, so expect a slow, selective process. Some candidates mention a later talent conversation where compensation expectations come up. Prepare a clear story for every project on your resume, practice Linux command-line and troubleshooting explanations, and rehearse explaining tradeoffs aloud.
Synthesized from 77 candidate reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Canonical process.
The moment that stuck with me was not a hard algorithm but a Go concept I thought I knew well. The technical interviewer started with the basics and kept drilling down into implementation details, then into the trade-offs behind my choices and the edge cases. By the end, the simple questions did not feel simple anymore, so don't just memorize definitions.
The process started with a long written questionnaire. It asked about my education, past work, projects, Linux knowledge, and engineering practices, and each answer needed real explanation rather than a sentence or two. Next came a Go coding assessment where I built a command-line application. What mattered was whether the code worked, whether it was maintainable, how I structured the application, and whether I handled edge cases. Then there was a timed cognitive assessment, the General Intelligence Assessment, covering reasoning, problem solving, and information processing. Time management was the hardest part of that round for me.
The final technical interview covered Go fundamentals, coding practices, and my previous projects. I was comfortable walking through my backend work and explaining the decisions behind it. Where I struggled was with the follow-up questions on concepts that looked straightforward on the surface.
I did not get an offer. The main lesson I take from it is that you need to explain the basics of the language at implementation depth, not just know what they do.
Prep tip from this candidate
Be ready to explain basic Go concepts at implementation depth, including why they behave the way they do and what trade-offs they carry. Practice timed reasoning tests as well, since the cognitive assessment was where time pressure hit hardest.
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Canonical
How would you improve Google Maps?
| Question | |
|---|---|
| Justify a Neural Network | |
| Find Duplicate Numbers in a List | |
| Hurdles In Data Projects | |
| Swap Variables | |
| Portfolio Platform Architecture | |
| Nightly Job | |
| Slow SQL Query | |
| Client Solution Pushback | |
| Search Timeout | |
| Diagnosing Query Speed Degradation | |
| Cloud-Agnostic Deployments | |
| SageMaker Deployment Architecture | |
| Deciding Between Solutions | |
| Repository Policy Enforcement | |
| Safe Deployments | |
| Azure Kubernetes Infrastructure | |
| Decreasing Tech Debt | |
| Debug Marriage Data | |
| Meta-classifier in Stacking | |
| Slow OLAP Aggregations | |
| 2nd Highest Salary | |
| Empty Neighborhoods | |
| Top Three Salaries | |
| Merge Sorted Lists | |
| Closest SAT Scores | |
| Random SQL Sample | |
| Subscription Overlap | |
| Monthly Customer Report | |
| Top 3 Users |
Synthesized from candidate reports. Individual experiences may vary.
Candidates report a long email questionnaire, roughly 28 to 40 questions, about education, work history, projects and motivation for Canonical. One candidate was rejected right after this stage. Another says later interviewers may ask about the answers, so keep them accurate and consistent.
Candidates describe an online assessment after the written stage. Reports vary: easy-level coding problems, a Python-focused test with multiple-choice questions and problem-solving tasks, and a timed platform test with two graded coding questions. Content may depend on the role or language you applied for.
Candidates report a general aptitude or psychometric assessment covering reasoning, number speed and accuracy, word meaning, perceptual speed and spatial visualisation. It typically cannot be studied for in depth, though one candidate suggests practising free mock tests and being rested and focused.
Candidates report around three conversational interviews. Topics include past projects, testing, CI/CD, system design, Linux commands and troubleshooting, and for some candidates Python or Go fundamentals. Follow-ups on resume projects are common, so be ready to explain design decisions and tradeoffs.
Some candidates report a talent interview where salary expectations were discussed, with one saying they were asked to state a figure first. Others mention later-stage interviews still pending. Most reports in this set end in rejection or an unresolved status, so timelines after this point are unclear.