After passing the obligatory recruiter scan including a video chat or coffee meeting (if you're nearby), I got a coding challenge. I am a full-stack developer, so I got to choose from a back-end and a front-end challenge. I chose the former and it took me around 3 days until I was satisfied with my solution. It was a very realistic problem you can spend anything between 4h and 5 days on.
Before starting the challenge I was invited for lunch, so I could see the company from inside and get to know a few people. The recruiter was very charismatic and helpful. He gave me the impression that he rather worked for me than for the company.
After sending in my solution, I was told the review would take up to 7 days. I asked them whether they could speed up the process and they did. After 1,5 days I got an invitation for a technical interview at their office in Sydney few days later.
The technical interview consists of two parts: first you talk with two engineers about your solution, you get constructive feedback, and implement proposed changes while they watch and help you. During that review you get to explain a few technology specific things, but they also want to see how you react to feedback and how you work.
The second part is done with two other people. They tell you about a standalone web service they would like to have. It's your task to ask the right questions and come up with a theoretical solution. Knowing low level data structures and algorithms helped me here a lot. The challenge is programming language agnostic, but be prepared to write down some pseudo code and to draw some diagrams.
The next day you get an answer and can discuss about visa and salary.