I was recommended to a recruiter by a colleague, who called me and had a short conversation, mainly asking about my interest in the position, willingness to relocate etc. After that, the lead programmer for the project called me, it was a 45-60 minute interview that went over basic programming questions, mostly technical, not problem solving. After that, I was invited to the office for a half-day of interviews with different sets of people from the programming teams. These questions were more open-ended, problem-solving type questions. Less than a week later, that first recruiter called me back and offered me the position.