Applied online by mailing in a CV and Cover Letter. Had to take a test online and scored in the advanced category. Was invited in for an interview. The interview took about 3-4 hours and consisted of 3 stages. First a team lead and a senior developer asked basic questions concerning the items on my CV and skills. Also, i was given a few questions on C programming. The second interview focused more on problem solving, data structures and complexity. Finally, had a chat with HR and was given a tour of the office building.