I think their selection process is very fast: after sending my application, they asked me to take an online assessment on Java (The language I choosed). If you don't know java very well, it's difficult, but google can help! :) Then I was asked to take a phone interview.. They send me this file:
Dependent on programming language proficiency, you can be asked technical questions around but not restricted to the following areas:
C
• Pointers
• Variable types/scope
• Program architecture (memory, stack, heap, registers, etc.)
• Read/write small code examples.
OO & C++
• Object Orientated Design
• C++ constructs that support OO
Java
• Objects and Classes
• Java virtual machine
UNIX
• Unix architecture (file system, piping, stdin, stdout, stderr, etc)
• Basic commands
Data structures & Run-time analysis
• Basic data structures
• Run-time analysis of data structures
Now, I stated my proficiency language was Java, and the phone interview was about C.. They asked about pointers, heap/stack, bitwise operations, hashtables.. I have not been programming C since more than 1 year, so it was more a memory exercise than a job interview..
AN hint: they actually work with C++ and C under Unix, so i suggest to choose directly C and refresh this language instead of bothering with Java.