The interview process was surprisingly well-organized and fairly easy to follow.
The first step was an interview with a recruiter (a vendor company).
After the interview with the recruiter I had my first technical interview with a guy who actually works at Agoda and looks for new members to join his team.
The first interview went fairly smooth. The guy actually speaks the same language as I do, so we had no barriers in our conversation.
I had messed up with some aspects like `__block` modifier and what does it actually provide us. However, in general it was positive.
Now, as being an interviewer myself, I would like to say that a candidate has to be prepared to talk about any aspects related to iOS Development during his first technical interview for this position. The questions may vary from interview to interview, however an interviewer would more likely tap into memory management (probably both ARC and MRC), iOS presentation layer (drawing, layout, frames, bounds, animations, layers, etc.), some Architectural approaches & Design Patterns, and of course, Testing approaches. The candidate should also be prepared to solve some problems online, due to an online-coding part might occur with a high probability, especially for Senior Developers.
After the technical interview I've received a Take-Home task, which is fairly simple. However I've requested 2 weeks to solve it properly. I was spending about 1 to 2 hours every day after work on this task and up to 4 hours on the weekends. I just wanted to make it perfect. Eventually, I've submitted the project and in a week or two, received a positive feedback.
Nowadays, the Take Home Task has been changed slightly, and it should take less time to get it done.
Here is a little tip that I could give you as one of the persons who actually review those tasks:
Pay your attention to details. Fix every bug and glitch you can find. Fix any architectural mistakes, any structural mistakes you see. Pay attention to both Unit and UI test. Tests really matter here! Triple-check your project before the submission.
In a couple of weeks after the submission of my Take-Home task I had a voice chat with one of the manages. The conversation was mostly about overall programming experience, the manager tried to tap into my understanding of infrastructure of an abstract company. Which tools and technologies I think should be used and why, the rest of the time we've spoken of life, so I thought that it also went well. Apparently it did, due to I've received an invitation to fly-in to Bangkok and participate in an on-site interview loop, which included 4 interviews.
The on-site interviews were a bit more difficult, due to I had to switch my mind from high-level infrastructural architecture (like of how would I organize the 24/7 system, how many balancers should be used and how to maintain those, eg. live-checks.) to every-day iOS problems like how to make a proper testing, or how would I organize my project to be able to receive data from two different sources, combine those and represent in a table-view (collection-view)
In the end of the day I felt a bit exhausted, but happy because I had actually received the offer!