At first they contacted me and arranged a date to take a quick technical test. The test questions were divided into three parts:
1) Programming language (you chose which between a few, I chose C)
2) Linux / Bash Scripting
3) Networking
The test wasn't particularly difficult but it is better to study a bit beforehand.
When I finished the test I sat down with three people from different departments in the company and had a quick talk about my resume and a few basic technical questions. Then they explained what each department did and how they worked.
After that I got a call to schedule another interview, that was more technical than the first. It consisted of some simple questions about C/C++, networking and some more practical exercises. I had to solve two problems by writing a few functions (by hand in c). The last was more complicated than the other with pointers and structs but nothing too difficult.
In both interviews the interviewers were very nice people and the process went pretty well.
The one complaint I got was that they never contacted me to let me know I didn't get the job, which is really not professional, especially from a large company like Nokia.