Overall the interview process was efficient and took about two weeks from applying to being offered the position.
First stage involved a short telephone interview (15-20 minutes) which was informal and very relaxed. It's an opportunity to know more about the company and tell them a little about yourself.
Second stage required completing a technical test which is an opportunity to show your coding knowledge and experience. They don't necessarily want the correct answer but more a display of coding style (i.e. clean code, useful comments, design practices, source control).
Third stage was a technical interview with engineers expanding on the technical test. This is a good time to explain your thought process during the technical test.
Final stage is a face-to-face interview with senior members from other departments. If you made it this far, it's a good sign. It's more an opportunity for them to find out if you're a good "cultural fit".
Feedback is given along the way so you always know where you stand. Good luck!