Overall process took about 1 month.
First step was a phonecall with an HR rep explaining the role and asking me about my experience. Second step was a technical test which had to be completed and emailed back.
3rd step was a call with the Hiring Manager with more details on the role and interview questions asking about my experience and some technical questions as well. I was also required to solve a coding problem online using the website codeshare.io
4th step was another online call with a member of the Hiring Manager's team. This interview was mostly technically and I was required to solve coding problems again using codeshare.io.
5th step: After a week or two got another call from HR saying they want to fly me out to their office in Calgary for a final interview. I received an email with a schedule listing that I would be meeting with 7 people (45 minutes each) including the Hiring Manager from 9am to 3 pm. Pretty exhausting.
Each person had technical questions and programming problems (1 or 2) which I was required to solve on the whiteboard. Everyone was from different teams in the company and the programming problems were not always related to the role. Some programming questions were: find the longest path in a binary tree; find an existing file in a directory; rearrange each line of text in a file;
In the end, they decided I didn't have enough experience for the role which I am certain they could have determined in the previous 4 stages so not sure what the real reason was.