A day after my online application, I received an email from technical recruiter. After brief visa related questions, an interview date was scheduled with the manager. My interview with manager took about 30 minutes. Some general questions about my interest, expertise, and future direction. Then I was asked to do some exercises. After that, I had another interview with a the manager of my manager. The idea was to do some coding online. Then I was invited for an on-site visit. I met with some members during the visit and it took around 6 hrs. It was intense but pretty relaxed. Finally, I received a call from hiring manager to ensure my past experience and future interest match the position. After that I received a call regarding my salary. I received my official offer the day after. It was rather lengthy interview process, however, it was very smooth. All my interviewers were very kind and intelligent.