I applied online, and was later referred by a friend who had gotten an internship offer earlier in the academic year. I first had a phone screen with the recruiter, who then matched me with a team that was tailored to my interests/skills/experiences. I then had a 1-hour technical phone interview with one of the staff software engineers on the team, and was notified of the feedback that night. I was then scheduled for a second technical phone interview that would occur a few days later, which ended up being much more difficult than the first. I then had a third interview, which was mostly informational, with the engineering manager of the team. I got to ask questions about the types of projects the team worked on, the types of projects planned for interns, and the overall environment and culture. Overall, the entire process was very transparent and organized: you know who you are interviewing with (given a link to the interviewer's LinkedIn profile before each interview), and the recruiter was available to answer questions at any point in the process. They were also able to expedite the process for me since I had other competing offers.