I first had to take an online test, which was basically about doing quick maths, recognizing patterns and logical thinking. Afterwards I was contacted and programmed an interview. The interview lasted 2 and a half hours and it was split in three parts. First there were theoretical questions related to OOP, Java and related technologies. Second was a logic problem to be solved efficiently. Lastly, I was asked to implement a couple of simple programs in Java and also write unit tests.