Summer 2020 Internship Hunt

Introduction

This is a summary of my experience searching for a Summer 2020 Internship. Here are some stats on what that process was like:

72  Interviews

31 Companies Interviewed With

20 Companies Withdrawn From

21 Companies Reached Final Round

13 Offers

75% Interview Success Rate

July 9th - First Interview

October 21st - Last Interview


A flowchart of my interviews processes at all of the companies that I didn’t withdraw from, green boxes indicate stages I’ve passed, red boxes indicate stages I didn’t move on from. "(x3)" indicates 3 interviews in that stage.


My Recruiting Cycle

Background

Last year when I had applied for internships as a freshman my options were few since most companies don’t hire freshman Software Engineering Interns. Nonetheless, during my Winter Break of my freshman year, I studied concepts in data structures and algorithms and practiced on Leetcode for about 2 - 4 hours a day (more info in the “Preparation” section). I was able to secure internship offers from Microsoft, Google and Two Sigma. I chose Two Sigma because I knew it had strong engineering talent and many interesting problems for interns to tackle. 


Interning at Two Sigma drastically changed my internship search this year. Ever since updating my LinkedIn with the internship back in Spring 2019, I started receiving messages from recruiters and executives at several top companies suggesting I apply for an internship for Summer 2020 when the applications open (this is over a year in advance of the start date). 


I really enjoyed my internship at Two Sigma and would most definitely recommend it to anyone interested. However, I wanted to take advantage of my ability to use my undergraduate summers to explore new domains and industries, so I had a strong urge to try a new company the following summer despite receiving a return offer.

Process

As my internship at Two Sigma started to wrap up, I began applying for internship positions and preparing for interviews. While applications start to open in mid-August to early September, reaching out to recruiters (or them reaching out to you) can sometimes allow you to move forward well even before applications are open. (This helped me get 3 internship offers before I started the fall semester). 


What I value most in internships is the ability to have an impact, to learn, and to participate in a collaborative culture. I applied and interviewed at such a large number of companies for two main reasons: gaining significant interview know-how to eventually prepare me for my future search for a full-time job senior year and for widening my understanding of the Software Engineering Industry by chatting with several engineers at different companies. In addition to Software Engineering Intern positions, I interviewed for some Quantitative Research roles as well, at Jane Street, Hudson River Trading and Citadel. As the flowchart suggests, these didn't end so well because I had little exposure to that arena. I plan to prep this summer and give it a better shot the next recruiting cycle.


I had on average 5 interviews per week for about two months and soon got tired of this process, so I started withdrawing from companies. It’s also inconsiderate to continue interviewing with companies that you know you wouldn’t work for. However, in many cases I decided to withdraw just because I received a response so late: I received a coding challenge from Dropbox a week after accepting my Airbnb offer even though I applied on September 1st and am still getting interviews in January. I withdrew from Nextdoor, Yelp, Uber ATG, Salesforce, LinkedIn, Tableau and few others.

By mid-October, I held offers from Google, Facebook, Microsoft, Cruise, Lyft, Snap, Airbnb,  Doordash, Pinterest, Coursera, Wish, IBM and Two Sigma.

Companies I got Summer 2020 Internship offers from

Why Airbnb

One of the strongest perks that brought me to Airbnb was its culture. Before I received an offer, I was invited to have dinner with a few recruiters during the Tapia Conference and noticed they were such amazing people. I think Airbnb creates this culture with the help of its recruiting process. For one, it has a strong involvement in different conferences devoted to STEM diversity. Also, the final step of the interview process is a thorough behavioral interview where you have a deep discussion about your own personal story, motivations, obstacles, failures and triumphs.


Also, Airbnb has a strong reputation for its product engineering and I believe I’ll benefit from getting some exposure to building a consumer focused product. I initially feared that there wouldn’t much room for me to tackle more technically oriented challenges at Airbnb but after chatting with a few more engineers after receiving the offer I discovered otherwise.


Airbnb plans go public next year (hopefully over the summer) so I’m looking forward to experiencing that milestone in the company's development.

General Tips

Tips on Interviews

Completing so many interviews within a couple of months made me realize common trends between these different companies. Here are some notes:

  • I’d recommend prepping and interviewing with Python even if it's not your strong suit. Python syntax is much more concise and nifty than Java/ C++ for solving interview problems
  • Previous work, project, academic experience only gets you past the resume screen, after that your journey to get an offer relies mainly on your ability to solve technical interview questions
  • Attending career fairs & conferences can significantly improve your odds of passing the resume screen
  • Most companies used Leetcode-style questions but some had interviews that required navigating and debugging codebases, these were personally much more difficult
  • Interviews are honestly a toss-up but preparation can significantly improve your odds
  • Several companies asked me the same exact questions
  • Recording interview problems that you’ve failed and revisiting them later helps you improve a lot
  • Be prepared to discuss a personal or work-related project in-depth
  • Be prepared for interviewers with a weak connection and/ or thick accent, try to communicate any issues with your recruiter immediately after
  • If your college has an internship offer deadline policy for companies, use that to try to get extensions
  • Competing offer deadlines can drastically expedite interview processes at other places
  • Take notes during your interview on any info about the company that your interviewer provides
  • Prepare yourself with questions to ask your interviewer - this allows you to get a better picture of the worklife at and structure of the company
  • Quant interviews require a fundamentally different regimen of preparation than SWE
  • Companies sometimes auto-reject freshmen/ sophomores but would interview junior/ seniors with similar experience 
  • This is often because they hope to soon hire full-time
  • Few companies have onsite interviews for interns
  • I’ve gotten responses from companies after submitting an application in anywhere from 1 day to 4 months, referrals and contacting recruiters can expedite this


Tips on Decision-Making

  • Estimating your preferences for interning at certain companies early on can help you make more timely decisions after you receive your offers
  • Review the notes you’ve recorded from the interviews you’ve had
  • Many companies hire general interns that won’t be assigned to a team until a month before the internship. If you are particularly interested in a certain domain like machine learning or distributed systems, ask your recruiter about the availability of related teams in the past
  • Ask recruiters to speak with more engineers if you want a better picture of the work life the company


Preparation Materials

Believe it or not, I didn’t make much use of Cracking the Coding Interview, despite how most coders swear by its essentialness. It’s written in Java and I planned to interview in Python, so the written solutions weren’t very useful to me. Instead I watched YouTube videos by Gayle Laakmann Mcdowell (author of CTCI) to understand the data structures/ algorithms and proverbially crammed LeetCode to apply my learning. I’ve completed around 200 LC questions, a combination of easy, mediums and a few hards. After the semester started, I stopped prepping entirely and just used each interview as practice for the next (I had already prepped substantially before doing this though). 


Here are the main resources I’ve used:

HackerRank Tutorial

LeetCode Interview Questions

Ranking Interview Questions by Cram Score

Tech Interview Handbook


Final Points

Interviewing at 31 different companies revealed to me how trivial these recruitment processes are. Choosing top talent is a difficult task and there are often way more adequately qualified applicants than available positions. Sometimes a silly interview question about binary search trees can undermine the weeks, months or years you have dedicated to building your career. Nonetheless, with perseverance, practice and some luck you’ll be given the opportunities you desire, and you’ll have to make the most of them.

I hope this success story is enough to inspire your hustle. 😈

Update: On April 16th, 2020 Airbnb cancelled its summer internship due to COVID-19, here's how I responded. 😛