In order,
1) Applied online
2) Phone screen (asked about the company, and software engineering projects)
3) Online test (fairly easy, converting a descriptive algorithm into a working solution)
4) On-site interview (I had to prepare a presentation ahead of the interview, and basic object-oriented questions)
5) Day-In-Office programming task (an opportunity to get a feel of the team, office culture and to showcase your programming skills)