If you make the initial cut a technical recruiter will contact you, and he/she will send you a programming problem for you to solve.
They usually say that they don't care about how long it takes you to solve it, as long as it meets their guidelines. Ideally you should send the problem back within a week.
In my case, my program didn't compile the first time, and the recruiter sent it back telling me about a compiling error (they didn't have a library that I was using), so I fixed that, and sent it back.
Then my program failed several cases, and the recruiter didn't tell me "fix it and send it back", he only said "what do you think about these results?"
I answered him within 5 minutes, and told him what the problem was and that I would have it fixed within 30 minutes, and so I did. 1 hour later, he told me that the program passed all the tests, and they would fly me to Boston for an onsite Interview.
The onsite interview is quite long, be prepared because they ask Math based problems. They don't really care about what algorithms, or if your code is clean or optimized, they just want to know how strong your Math background is.
They also only care about the RIGHT answer, it doesn't matter to them your thought line, if you don't get the RIGHT answer, then everything you've done was a waste of time.
The first interview was a behavioral interview with a Software Architect, be prepared and practice everything you're going to say. They're going to ask you things to put yo on a tough spot.
Then it comes the technical interview, they're going to tell you one math problem and you have one hour to solve it in the whiteboard, and then code it. Don't waste your time writing pseudocode or trying to solve it with a fancy algorithm. JUST GET IT DONE WITHIN THE TIME LIMIT!
Then it's lunch, and they arrange one of the employees to have lunch with you and brainwash you about Athena. If you don't like small talk, then you're going to suffer a lot.
Finally there's a second technical interview, and expect a harder and tougher question. Remember, they only care about THE RIGHT ANSWER. They live and love the saying "Better done than perfect", so make sure you follow that principle.
Once your interview is over, the recruiter will meet you outside the building and he's going to thank you for your time, and kiss you goodbye.
The next day you should have either a canned response telling you that they will pass this time, or that they're going to call your references.
Then the technical recruiter will call you, and will give you feedback about your interview, and he's going to tell you what you did great, and what you did wrong.