I applied through a recruiter. I interviewed at Apple (Sunnyvale, CA) in Jul 2019
Interview
A recruiter contacted me through LinkedIn, I scheduled a phone screen with a manager.
Phone Screen (40 minutes): I had to solve an easy algorithm problem, I solved the problem in around 20 minutes, then, the manager asked me a lot of random questions about Java, Spring, HTTP, Servers, how the internet works, etc.
Onsite:
1. Interview with 2 engineers: some algorithm problems that I had to solved on the whiteboard, they also asked me a difficult system design problem.
2. Interview with 2 engineers: one algorithm problem about recursion on the whiteboard. I also had to solve a thread problem using an IDE on the computer, this part of the interview was awful for me because the engineers were chatting with each other on a laptop, that was very disrespectful. I had some bugs on my solution that I couldn't fix.
3. Lunch with a manager: nothing special here, we talked about my experience and talked about tech.
4. Interview with a manager: the manager explained to me what was the project about, after he finished, he asked me about my experience, when I started talking, his face and attitude changed, that was weird.
5. Interview with the hiring manager: questions about my previous experience, behavioral questions.
Got rejected after 3-4 days.
I applied online. I interviewed at Apple (New York, NY) in Jan 2019
Interview
The interview was very fun. They asked a lot of basic questions but enough to get a feel of who you are and what you know. I would recommend coming into the interview with a notepad an d a list of all the accomplishments you have done.
It was a good experience overall. Interview was different than usual and was challenging. Made sure everyone was comfortable and on point. There were 3 panels with different set of questions