Meet with the technical recruiter in the morning. He actually went over who I'd be talking to, and at approximately what time I would be meeting them. Lunch was included. The schedule indicated we'd end about 3-4pm.
All the interviews were technical. One of the interview slots was attended by 3 people, so it was like a panel.
All of the interviews involved coding questions. Lunch was with the potential future team.
Interview questions [1]
Question 1
I got asked an interesting strstr question: implement strstr using a linked list of linked lists. This is actually quite difficult, and I spent about 70% of the time designing an iterator to walk through the LL of LL's. With the iterator in place, strstr became pretty easy.
The guy interviewing me said that I produced the best answer he's ever seen.
This is actually quite a difficult question, and I've begun to use the first part (design an iterator over a LL of LL's) as one of my standard questions.
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