I interviewed for a Software Engineer role at Canonical, and the process took around 2 to 3 months. It was a fairly intense and detailed process compared to typical software engineering interviews.
The process included a take-home written assessment about my background from high school to the present, a psychometric assessment, a Python assessment, a Python technical interview, a Linux technical interview, a Cloud Platforms / Kubernetes technical discussion, and finally a Talent Interview.
Most of the rounds were not typical coding interviews. The interviewers went deep into technical fundamentals and practical experience, especially around Python, Linux, cloud platforms, Kubernetes, system reliability, debugging, and real-world engineering decisions.
After completing multiple technical stages, I received a rejection a few days after the Talent Interview. I did not receive detailed feedback.