The initial application process was simple and relatively quick. I only needed to provide my CV and complete an online personality test. I got a phone screen shortly after, which was only five minutes long and mostly about the next stage.
The next stage was a take-home assessment consisting of three short projects and a Skype interview to discuss them. The projects involved implementing a very simple game, a very simple interface and a design pattern. Reading Cracking the Coding Interview or Elements of Programming Interviews would have been more than enough preparation. I was given 48 hours to complete them. The Skype interview was around an hour long and was mostly spent with the interviewers (who were software engineers at IMC) watching me slowly trying to fix my incorrect implementation of a design pattern.
For the final stage, I was invited to Amsterdam for a day of interviews. Flights and the hotel were paid for by IMC. There were four interviews: two technical interviews, a CV-based interview and a HR interview. The technical interviews focussed on designing and then implementing a trade matching engine (the interviewers were the same as I'd had for my Skype interview). The CV-based interview was short and was with the head of the software team. The HR interview was about verifying the results of the personality test.
I got my result the next working day, along with detailed feedback.
My performance wasn't great, but it would have been quite easy to fix.
* Revise big O behaviour of data structures
* Focus on writing as much working code as possible! I got bogged down fixing things and got nowhere in my second technical interview.
* Emphasise achievements in the CV interview. My feedback criticised my lack of bold/creative/experimental work.