The first interview was online and was mostly about my previous experience and the technologies I had used before, without getting "technical".
A few days later, I was contacted again to do the second interview in person. It was basically the same interview but in the office this time. I got a bit more into detail in the technical questions, but no coding at all.
The second interview was supposed to be the last one but they added a third one in the last moment, a take-home coding exercise. I had to develop two programs that would communicate between them using TCP. I did this over the weekend and had an interview about it the following Monday.
The program had a few problems but I could point solutions without much help. There was also a question about modifying the program to accept more than one client and responded in a way different to what the manager was expecting but that would work. The next day, I received an email saying that they would not be moving forward precisely because of those two things, the few small improvements in the code and not responding exactly with the same method they were expecting.