This was my first employment (right after the university), which most likely affected the process.
HR contacted me. The interviewing process had multiple steps:
1) preliminary talk in Skype with the HR.
I was asked to send some of my code for them to see.
Some organizational questions (particularly transportation to the work site, since I applied to the position in another city). The next day I was invited into their office for an interview.
2) 4-hours-long (!) technical interview in their office - with both HR and team lead present and participating. HR was a specialist (i.e. a programmer, not just HR).
There were multiple questions about my background, especially the thesis, programming interests, multiple hobby projects I did during my studies.
They showed me a piece of code and asked to explain what it is doing.
3) At the end of a technical interview they asked me to write a test program at home (to further evaluate my programming skills): a HTTP client in C, using only libc. They also sent me a letter with attached template "assess your skills in the following: [list of skills], between 1 and 5 each", so that I fill it and send it back to them. Personally I think I wrote a very nice program here.
4) After several days I was invited to the second interview in their office. It was also 4-hours-long, the same HR and team lead. We discussed the code I wrote. They also showed me some questions like "is this code wrong or not". After that there was a pretty annoying philosophical talk about whether it is possible to write code without bugs, etc. Some questions about hobbies etc. More discussion of my thesis. Then they called another team lead, which came and very briefly (<5 minutes) asked me few formal questions about the same things we already discussed before (thesis, programming interests, hobby projects etc.).
Both interviews were pretty tough and exhausting, but interesting.
After the second interview, when team leads left, the HR told me that he never saw a team lead (the first one) so impressed before, and said that the results will be known next week.
However, the next week I got an e-mail that they wouldn't make an offer.
Theoretically I could say the experience was positive, if only it wasn't so ridiculously long for a rejection as the result.