I applied online and about 3 weeks later received an email requesting a phone interview. The phone interview was basically the manager talking about the position and asking some questions about my background and a few technical questions; this phone interview lasted about 30 minutes. I was immediately invited to do two technical phone interviews with team members, which I did the next day. The first technical phone interview was only about 25 minutes, and I was asked mostly general (although fairly difficult) C++ questions. The second technical phone interview was about 1 hour and was almost entirely architecture questions, several of which went quite in depth. About 2 hours later I was invited for an on-site interview.
About 2 weeks later I went to Santa Clara for the on-site interview. They flew me down on a Sunday, the interview was on Monday, and I left on Tuesday. The interview was about 5 hours. My first 1:1 interview was an hour long with a team member, and he mostly asked about various C++ and OOP topics. The second 1:1 interview was also an hour and mostly involved me writing code (C and assembly) on paper to solve a few problems. Next I had a half hour interview with the manager, who asked a few technical questions, but mostly told me about the benefits. Then was a 1:30 hour lunch with the team. After that I had a one hour discussion with a team member, which was fairly casual conversation about the position and team and area (no hard or technical questions). Finally I had another half hour interview with the manager and he mostly told me about what they were looking for and I tried to sell myself.
I was told t hey would let me know within one week. A week later I got a phone interview from HR offering me the position.