I applied online where I submitted my CV and was contacted after a day. I was working during that time, so my two phone interviews were scheduled on the same day and the recruiter was really helpful in making sure I can make the time. The phone interviews were 15 minutes apart and the first one had a lot of small questions that required no coding, but rather collaboration on how I might do things as well as questions about data structures. On one of the questions I did not entirely understand what I was asked and the interviewer explained what was expected. The second interview was a single coding exercise. I had to write a solution to a given problem and after I wrote it, I had to explain the complexity of my solution. After that I was asked to improve my algorithm so that it runs faster. The interviewer did not require the code to be compilable, but to show knowledge of the language and the solution. Off the top of my head I did not remember the exact way of doing I/O with files in Java, but that was not a problem. After the interviews I was contacted the following day and the recruiter informed me that I am continuing to the next stage where they search for a project for me. The project was found in a couple of days and I had a phone conversation with the team manager who asked me about my previous experience with some technologies and my availability for the needed dates. After that I was given my offer in another couple of days. Through all the experience the recruiter made sure I was informed of what is coming next and what I need to expect.