I uploaded my documents to the Apple website, but did not hear back from them for several months. Once I heard back from them, they set up a phone interview sometime within the next couple of days. The phone interview was about an hour long and they asked personal (nothing illegal, haha), behavioral, and technical questions. The technical questions were not too difficult and I did not answer all of them correctly.
A few days later, they asked me to come in for an on-site interview, to which I agreed. I set up the flights, hotel, etc., with their input. I arrived the day before the interview. There are up to two days of interviews. Whether or not you get the interview on the second day depends upon how the first day went, they let you know that within a few hours after leaving.
The first day of interviews was with people whose team you would be joining. They mostly ask technical questions pertaining to knowledge you would need to do the job. They also ask you quite a few questions about anything technical on your resume that they may be interested in. For example, I had done a bit of C several years ago and one of the guys asked me some questions in C, which kind of threw me off since it had been so long since I had done any.
The second day of interviews was with people who are higher up in the food chain. They were still engineers, but engineering managers. There were still quite a few technical questions on this day, but they asked quite a few non-technical questions as well.
They offered me the position a few days after the interviews were over. They asked me how much I wanted to get paid, I gave them a number that was low (I was unaware of that at the time), and they counter-offered with something that was 20% higher.