I got an email with a recruiter at Apple for an opportunity with one of the engineering teams at Apple. I was very excited about this and quickly scheduled a phone interview.
My first phone interview was about 45 minutes in length and it involved questions about my current work and experience. Basically technology I have worked with as well as some minor CS questions. If you know basic CS, you can breeze through this.
With that done, I received another email about another round of phone interview which was about 30 minutes long. This drilled into my critical thinking and general problem solving abilities. Wasn't too bad either.
After this, I got an email from the recruiter that they were interested in flying me over for an onsite interview.
I met with 8 different people with different mixes of 1:1 and 2:1 interviews each lasting about 45 minutes to last a total of almost 5 hours.
I got some questions about Fibonacci series, linked list (delete the nth node), improving certain aspect of a system (can't say more on this). Generally, it was a pleasant interview experience, and if I hadn't gotten the offer, the experience alone was enough.