I applied through college or university. The process took 2 months. I interviewed at Apple (Cupertino, CA) in Nov 2013
Interview
Met Apple recruiter through college fair. I've been applying online for ages without hearing anything back, so I guess Apple recruiters prefer candidates they've met in person.
I had two phone screens next month. The first one was technical and pretty easy. The second was behavioral. I actually was really surprised, I had expected Apple's screening process to be a lot more difficult. I was asked to interview on-site next month.
The on-site interview was way more challenging than the phone screens. I was still in college, so I knew a lot of things, but none in depth. The questions asked were directly related to the team's work, unlike most other companies -- where NCG's are usually asked questions based on what they've learned in school. I guess Apple's teams look for people they specifically need for a position even for college grads.
I was able to hold my own for most of the first technical interview, but I started losing confidence and getting very nervous. By the third interview, I was a mess. It took me 5 minutes to actually understand what the interviewer was asking of me. The last two interviewers asked me about my experience and projects I had undertaken in college and at my internships. They were pretty impressed, but I knew it was too late by then. Sure enough, I was escorted out right after.
I guess I was caught off guard by how much more difficult the on-site interview was than the phone interviews, and by how specific the questions were to the team.
Interview questions [1]
Question 1
Create a synchronization primitive for the operating system/kernel from scratch. I created a spinlock with test-and-set. Next, create a primitive that doesn't waste CPU cycles. (Essentially, how would you create a mutex inside the kernel?)
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