Initially applied online. They had recruiters heading to our school so I was set up with an interview upon their arrival in early march.
There were three interviewers present that day, one main guy and two others. I was interviewed by one of the secondary guys, but halfway through the main guy came in and took over the interview. The interview was all technical. First guy asked about matrix coding in my preferred language (java) and then asked me to do more with it and then improve upon the code. Then he asked about running times of the two pieces of code. The other (main) guy, wrote a sample code in C and asked me to explain it and then answer questions relating to it. I had no experience in C, which I had already told him, to which he replied "excellent". Interview lasted ~1 hour.
I heard nothing from them until 3 weeks later (though I attribute this delay to the fact that they returned to NYC and then my area had a big snow storm). I received a call about a second interview. At the second interview the same 'main' guy from before interviewed me . Another technical interview asking me to write a piece of code that had a finance twist, in my language of choice. At the end I was immediately asked to return the next day for the third interview. Lasted ~1 hour.
The third interview was actually two separate interviews, first with a senior member, and then with a HR personnel. These were not technical interviews. The senior member presented me with a real world problem and asked what steps I would go about in trying to solve it. The HR personnel was mainly there, in my opinion, to observe interviewees' personalities. Both interviews combined lasted ~40min.
I then did not receive word for another two weeks, at which point I was informed (phone/email) that I had been accepted but there were no training positions open. Maybe a week passed before I was given an official offer as a spot had opened up.