I met one of the managers at a job fair on campus. He started talking about the company and what they do. Then I started talking about my background and my knowledge in programming and parallel processing and multi threading. At that point he was impressed, so he set up a time for the onsite interview.
At the first phase they sent me a link to answer some GRE-wise questions (math + vocabulary)
The interview took like 5.5 hours with 3 people. First person asked general software engineering questions, object oriented questions and some operating system questions such as mutual exclusion and semaphores and etc.
The second interviewer asked me some questions about HTML, CSS, Javascript which was so simple and then he asked some data structure questions. It was about the fastest was to traverse a spanning tree.
The last interviewer was the most difficult part. He had a stack of C/C++ programs. There were some mistakes in the programs and I was supposed to find the mistakes, correct them and optimize them.
But in general the manager was so friendly and based on his feedback I could say that I got the job.