An apple recruiter reached out to me and asked for my resume, after about a month I got an email from one of the recruiters asking for a technical phone interview time slot. I was then scheduled for a 45-minute phone interview.
The interviewer focussed on Java and asked me several questions about core APIs and internals of Java. This also including writing some code on a shared online tool. The interview ended before 30 minutes and I was in a confused state of mind as to why that happened.
The next week I received an email from the recruiter saying that I did well and they would like to invite me for a day of onsite interviews.
After reading some of the interview experiences in here, I thought of giving it my best shot and hence asked the recruiter for two weeks of preparation time.
I focussed on problem-solving every day from Leetcode, I used to ensure that I would solve at least 5 of them every day : 3 easy and 2 medium with some days taking a dig at the hard ones too. I also revised all the Java fundamentals, threading, concurrency, collections and popular interview questions. Since I was interviewing for an experienced position I was expecting the interview to not just be focussed on Algorithms and Data Structures.
The interview process is stressful and fairly long. 10 Am - 5:00 ish, almost one complete work day! You probably will lose the count of the number of people you have met throughout the day in the end as there are 8-9 rounds of 45 minutes each with different members of the team from all levels, ranging from engineers, senior engineers, leads, to engineering managers to directors.
You should expect that 90% of the interviews will be very technical in nature. You will be asked to explain your project in clear terms and they will ask you questions about your design and architectural decisions and how you could have improved them. They will also ask you to justify key terms and projects on your resume.
REST API design philosophy, best practices, versioning, and designing a set of APIs from given use cases.
Ensure that you are comfortable and play well on a whiteboard. A lot of it is involved. You will be asked to draw various project designs/architectures and solve algorithmic/DS questions (they are easy/medium level from Leetcode, Hackerrrank etc). You should know your data structures well and should be able to apply them effectively to solve the problem at hand. Also, understand the time and space complexity of your solution and how to improve on them. There will be at least one or two system design interviews where you might be asked to design a popular social media app/website like Instagram or Facebook.
Try to build up enough knowledge about Collections, Spring framework, Garbage collection etc.
If you are a JAVA / OOP person, you will be asked OOAD questions and you have to come up with class diagrams and object interaction to justify the requirements of the use case.
Try to show them why you are passionate about Apple, why do you think you want to join them, what value you will bring to them, etc (typical behavioral questions).
Be very confident about what you put on your resume; the interviewers are very smart to find out if you lack confidence or lie on your resume. Be prepared to explain each and every word with examples. They are hiring you as an FTE, they need to verify your genuineness.
Overall, although it was an enervating series of interviews.(I personally have never faced such so many back to back interviews), when I analyzed each and every round, I had good reason to believe that I had done very well.
After a day, the recruiter called and gave me the good news!