My resume was submitted by referral. The initial contact was by phone from the internal recruiter that asked general questions about my skill set and interests. From this she was able to setup an in person technical review with a couple of the teams.
My interview with the Mac team was about three hours.
The first was purely technical to see how I would handle basic programming problems and how I could debug some code that was leaking memory.
The second was with the lead, manager, and director to find out more about me, but the questions were not as technical as the first interview.
The third interview was with two engineers from two other teams to check out other skills that I have so they could evaluate me if the first team did not take me.