The process is quite challenging and long, but I guess it is needed to find the right people.
First, you do a set of 7 logic and problem-solving tests, they don't require any prior knowledge of any specific subject, but good logical inference.
Then you have an IQ standardized test, and 2 algorithm problems, as well as some general behavioral questions.
Then you have 3 separate interviews, (2-3 weeks in between usually). The first one was with a recruiter which is behavioral, the second one is with a couple of engineers and tests your logics again, and the final one was with a manager, again behavioral.
Finally, they ask you for 3 referrals from professors, previous employers, or people you worked with in some way and have a chat with them as well about your behavior, you as a person, your achievements, etc.
And after all of this, I finally got an offer, and even a permanent one instead of the graduate program!
It was a very long process (around 3 months), but after I started working I can see why. All the people around me are very warm, smart, and nice, which is exactly why it is so important to the company who they hire, to keep this incredibly positive and productive atmosphere. In the end your efforts pay off many many times if you get an offer.