They originally came to my campus and emailed me several weeks later. They setup an initial HR phone screen which consisted of a dozen mostly easy questions. The recruiter doing the phone screen couldn't really answer my questions when I asked for clarification on the screening questions, because the recruiter wasn't that technical. I thought some were trick questions they were so easy, but you can find almost every question from this interview on glassdoor.
Then I had another interview, which was technical and over skype with a young engineer. He asked me about my projects/resume, then got into some coding questions. I passed this interview and went on to another that followed the same format. If I could suggest one thing- practice recursion. I started solving all their problems iteratively and quickly realized that they were easily solved with recursion.
After a solid second technical interview I got their generic rejection email. It was pretty sudden, I had gotten pretty far in the process (apparently a back-to-back interview was the only thing left). Several friends of mine were also in the same boat - a sudden rejection late in the process. So clearly they have a tough time making decisions. It seems like they waste a lot of time/resources on all these interviews when they only hire ~30 interns.