I applied through a referral 6 months ago and didn't hear anything, which disappointed me. Recently that same friend inquired if I was still interested and I gave it a shot -- this time he followed up with the recruiter and I was contact within a week.
The recruiter was helpful and thought I would be a good fit for the team. He wanted to get me into the on-site interviews occurring in 2 weeks so he set me up with a phone interview two days later.
The phone interview was with an engineer and involved two technical questions using an online code editor. One question was about data structures, and the other was object-oriented / system design. It was a good experience and the interviewer was pleasant and helpful.
I felt pretty good about the interview but felt I could have used more time on the second question (only had about 10 minutes left). The recruiter followed up and said that they wanted me for an on-site interview, which I was pleased with.
The on-site interview was about 3 and a half hours with 4 different people. Each asked me a technical question and some behavioral questions. One question involved object-oriented design. The other questions involved algorithms, two touching on specific data structures. Each of these technical questions had follow up questions regarding optimization, trade-offs, and alternate solutions.
The interview process was long and taxing, but overall a good experience. All interviewers were pleasant to talk with and helpful in both discussions about the problems and answering my questions about the team. Again, though, time was tight!
Overall the entire process this time around was interesting, fun, and especially challenging.