I emailed the recruiter after seeing an online job posting. After several emails exchanged, I got a phone screening interview where I spoke with the team lead. After this I had a video interview with the same person and there were several questions that require me to produce code on a shared workspace online. After this I was worked with the recruiter to schedule an on-site interview and I was provided a round trip flight and one night stay at a near by hotel. The all day on-site interview were 1 on 1 interviews with the team lead, one team member, three senior members from another team, and the hiring manager. Lunch was provided. The interviews were regarding my experience and several technical questions, they were moderately difficult. The team lead used his time to explain the project details. Everyone was very courteous and encouraging during the questioning and interview. The last interview was with the recruiter, who discussed logistics. A week later, an they extended an offer to me. The entire process took about 4 weeks.