I applied through a recruiter. The process took 4 weeks. I interviewed at Apple (Cupertino, CA) in June 2011
Interview
Approached by recruiter after submitting resume online. Had a phone call with a manager followed by 2 back to back video interviews consisting of questions about my past work, and a couple of programming assignments at the end. Questions were strictly technical and focused on relevant experience only, skipping over those which didn't apply to the position I was interviewing for. Feedback was good and I was invited for on-site interviews. Surprisingly just a week later I was told they hired someone else and the interview stands canceled. I was very disappointed. I wouldn't say the experience was negative, as the interviewers and my recruiter were friendly and to-the-point. Recruiter still assured me they're looking for other open positions but nothing worked out and I gave up after 2 months.
Around 2 months after I submitted my resume for Apple software engineer position, I got a call from the hiring manager. He asked me what was the good day for the interview. It took half day for meeting 5 people. It was long hour interview for me. Each interviewer spent ~ 30 minutes and asked ~ 4 questions. Each interviewer asked questions in the different areas.
6 rounds. 1 Technical Screening. Then onsite loop consisted of 4 rounds of behavioral, 2 technicals, and 1 sys design. Had an additional Hiring Manager round since I was borderline.
Interview questions [1]
Question 1
LC Mediums and mentorship based behavioral questions.
6 rounds. Started with phone screen with HM about past projects.
Onsite rounds
1: OOD
2. Multi threading
3. Java design pattern and Immutable classes
4. HM
All the rounds were heavily focused on Java