The process was fine and was a good experience. I was contacted by a recruiting firm which finds candidates for them.
I met personally with a couple of their managers in the recruiters office. This is the first round of interview. It went well. They asked about how I deal with scenarios in my current job and discussed what my role is in my job. Very few technical questions.
Second round was at their office. 8 people in total did the interview in 5 phases.
Phase 1 - Met the same manager that I met in my earlier interview. He just explained how the interview process is going to go.
Phase 2 - 2 of their senior developers. Mostly technical. They gave me a spec that's 2 pages long and asked me to design the system. This was after about 30 mins of talking about various technical details of what I do at my current job and what frameworks we use etc. I was initially surprised to look at the 2 page document and I guess I might have been carried away by some details in the document rather than focusing on the big picture and their intent. We went through how some potential design ideas before running out of time.
Phase 3 - One senior architect and one project manager. Project manager was mostly silent for the whole process. The architect just came and gave me a problem and asked me to come up with an algorithm to solve the problem. I did not do well here. I wasn't expecting this type of question. So, I took too long to answer this. I eventually answered bu I felt like it took too long.
Phase 4 - Direct manager. She just kept asking some standard questions like what inspired you? What are your limitations? etc and kept noting down my answers without any feedback. Kind of hard to judge what she was thinking.
Phase 5 - 2 program managers from Chicago office did a Skype interview. I was exhausted by now. But, I think I did pretty well there too.
Overall I think I was kind of unprepared for this interview. I relied too much on my current skills at my job and did not brush up much related to basic Computer science concepts.