First contact was through e-mail where I was asked to describe certain details about my skills and my current work and projects. I think the essay was meant to check my level of English. Then they scheduled a time for an online programming test for 1hr. The test problem statement was sent at the agreed time by e-mail and I had to send back the solution code by e-mail after 1hour. A Skype interview was then scheduled afterwards to discuss the code I had written, alternatives to the code and also other technical questions in C programming with some problems that were discussed during the interview. During the same session, I had a long chat with the HR recruitment manager who explained in great detail about the opportunities, possibilities and on-boarding process, if selected. I was contact about a second round of Skype interviews which I had with the SW department leader where I was asked a few technical questions about my thought process and my knowledge of tools and techniques. The final round of interviews were scheduled a few months at the company location where we talked about further details of my possible future assignment. All went fine and I received an offer in a few days after the final round. But since I was located in India and the company in Prague, Czech Republic, a lot of time was taken for the communication (difference in time-zones also). I think there was a gap of about a month in between each round of interviews. There was also some time spent getting a visa to the Czech Republic and planning the trip for my final interview. But in the end after almost 4 months, I received the offer and I accepted it. The joining process (which took another 4-5 months) was also complicated but the HR dept. was super supportive to get you there.