I responded to a job offer on the Apple website posting a resume and a short cover letter.
2/3 days after a recruiter from Apple contacted me via email telling me my profile was interesting.
He mailed me a coding exercise I had to do for the week after. I had to implement a small C program from precise instructions. The test involved slightly complicated algorithms and easy data structures handling.
About 1 week after I completed the test I had two similar phone interview with engineers that lasted under 45 minutes each. We talked about my previous work experiences, how work at Apple is and I was asked several technical question mostly about algorithms.
A few days after the recruiter told me I was to come to Cupertino (from France, where I live) to have a full day of on site interviews. The timeline for my recruitment was tight because of Visa deadline, so the interviews had to take place quickly. They finally told me the timeframe was to short to organize on site interviews so we did them through iChat instead. With the time difference the interview took place during the night for me.
I talked with 6 or 7 different engineers from the team the position was a part of among them was my 2 previous interviewers. Each interview was very technical with subject ranging from data structures to graph theory, computationnal geometry and spatial reasonning. I code stuffs and draw schematics on shared documents. Needless to say, with the last interview ending at 3am, I was really tired ! I was quite bad during this session. A few hours after I got a mail telling me I wasn't selected.