I failed, a lot.

Background

Going into recruiting season for 2020 internships, I felt slightly more confident than I had in previous years. I had just finished taking most of the required computer science courses (data structures, architecture, operating systems, etc.), and was finishing up my software engineering internship at Google. However, in my past two years of hunting for an internship, I had experienced failure an overwhelming amount of times, mostly in the form of recruiters simply not replying to me. In fact, before this year, I had only ever received two internship offers, both of which I accepted and completed an internship at (Magento [bought by Adobe] in 2018 and Google in 2019). However, this year I had a few things going for me:

  • As stated before, I had completed two internships at well-known companies, Adobe and Google.
  • I knew many more recruiters and other friends who worked at various companies, making it easier to talk to an actual person when I applied.
  • I had spent a significant amount of time over the summer doing mock interviews with friends at Google and practicing Leetcode questions.
  • My class load was slightly easier, leaving me more time to prepare for and attend interviews.
  • After hearing feedback from my intern manager at Google, I was reasonably sure that I would receive an offer for a return internship. I really enjoyed my experience at Google and would not mind going back if I did not find an opportunity that excited me more.

In the past two years, I had often held back from applying to companies I thought I had no chance of landing interviews with. But this year, due to the reasons listed above, I decided to commit myself to make the most I could of all the opportunities in front of me and approached the recruiting season with a vengeance.

Software Engineer (intern) Recruiting Timeline

In case you are not familiar with the recruiting timeline, let me break down the typical process of getting an offer as a software engineering intern:

  1. Application - Usually involves submitting your resume and personal information to an online portal, or at a career fair.
  2. Coding challenge - 1-2 hour automated test that can involve multiple-choice questions about computer science topics. Almost always includes one or more programming questions for which you must write working code to pass automated test cases.
  3. 1st round interview - 30-min to 1-hour session of programming a solution to a given problem with an engineer watching to take notes, guide the interview, and ask additional questions. Often virtual or on-campus.
  4. Final round interview (technical) - 1-3 hour-long interviews where you work through a solution to a technical problem with an engineer. Often onsite at the company office.
  5. Final round interview (behavioral) - Usually with an engineering manager to determine your cultural fit, and how well you might work with the team.

This is just a rough timeline. Some companies do more rounds of interviews (I have also seen design interviews, and HR screenings), and some skip steps that I listed. The entire process can take anywhere from 2 weeks to 2 months and it varies widely from place to place, but I usually see these steps in some form for most established tech companies.

The Struggle

I do not think that anyone can deny that hunting for a software engineering job is often a tedious grind. I had already spent a significant amount of time studying computer science in college, and learning how to be a good programmer. Separate from that, I was also studying for interviews using programming questions that would likely have little correlation to what I would do at a job, or even in school. However lucky for me, I have always enjoyed interview-style questions, and did not mind most of the interview prep I did, whether it was studying with friends or alone.

Another thing I feel like is not talked about much is how early companies start recruiting for internships. For example, I started applying for summer 2020 internships in July 2019, nearly a year before the expected start date. I had not even finished my current internship before I was applying to another one. This often led to tiring circumstances where I had to wake up at 6 am to interview at a company on the east coast so that I would not be late to work at 9 am. It does not help that while some companies start recruiting very early, other companies do not start until around November. This means that you can potentially be deciding between an offer with an August deadline, while another program you have your eye on does not even open their application for another 3 months! (based on a true story)

Finally, the interviews themselves can take their toll. Often with software engineering interviews, you do not have much time to talk about anything else besides the code you are writing, and it can feel that you are being reduced to a single aspect of who you are as a person. Furthermore, doing a large number of interviews (especially when you have to fly to another city), can leave you very busy and stressed, with less time for your friends, classes, and hobbies than you want. For example at my Microsoft interview, my flight was scheduled to leave at 3 am the day after I arrived, and I returned home slightly sick after getting zero sleep on the plane.

Also, rejection hurts, and if you do a lot of interviews, you will likely get rejected a lot.

My Experience

Despite the struggles I listed above, overall I had a great experience interviewing in 2019. I got the chance to talk to engineers of all kinds, and especially loved the onsite interviews. I felt very lucky to be in such a privileged position to even have the opportunity to interview at such amazing places and meet so many different applicants, recruiters, managers, and random people on the plane.

Annotated map of the US

Map of all of the cities in which I had onsite interviews. It was my first time visiting Seattle, Chicago, and Washington D.C.!

Some of the highlights from my onsite interviews included:

  • Watching the painted ladies at sunset in Alamo Square Park the night after my Dropbox interview in San Francisco. I also later dined at the nearby restaurant Nopa, which was the most expensive dinner I had ever eaten ($40!!), which honestly was not too different from the quality of the amazing food at the Dropbox office.
  • Trying deep dish pizza for the first time in Chicago, after accidentally stumbling upon Millenium Park while walking around the city. Another notable moment from that trip was being serenaded by a very drunk man in the elevator of the Chicago Athletic Hotel singing “Hey Jude”, who ended the verse with “I’m gonna kill that guy” (pointing at me).
  • Touring the main Microsoft campus in Redmond, and meeting up with some college friends who were working there full time.
  • Trying another fancy restaurant in Houston (Xochi), to make the most of my food stipend from Two Sigma.

Painted ladies houses in San Francisco

Picture from my interview in San Francisco

Although these things experiences were great, I also remember many of the missed classes, late-night flights, and hotel room homework I had to complete to attend these interviews. I was never in a city for more than 48 hours (and often less than 24), so this short-term travel eventually lost its appeal to me. Lucky for me, Covid-19 made sure that I have not had any short-term or long-term trips recently.

Results

For the first few months of the internship season, I got eight rejections in a row before I got my first offer. The first rejection stung since I believed I had done a good job in the interviews. The second and third ones were easier to accept that perhaps I was just not a good fit for the company, but after that, I started to believe that there was something wrong with me, and maybe I was not as good of an engineer as I had thought. When my first offer came in from Flatiron, I was overjoyed, both because I really liked the company, and because I felt it was confirmation that I was not entirely a failure. Soon after that first offer, I had 3 more come in over the next two weeks, and I was floored because I had honestly expected to get no more than one or two, especially based on my earlier interviewing performance. When all was said and done, I had six internship offers to decide between for my next summer.

Sankey diagram of my statistics for my 2019 internship applications

Sankey diagram of my statistics for my 2019 internship applications

My internship offers for 2020 were:

Company Location Industry Duration
Flatiron New York, New York Health Tech 10 weeks
Dropbox Seattle, Washington Consumer Tech 12 weeks
Lyft Seattle, Washington Consumer Tech 12-16 weeks
Airbnb Seattle, Washington Consumer Tech 12 weeks
Google New York, New York Ads Team 12-14 weeks
Two Sigma New York, New York Fintech 10 weeks

These were all amazing options, but I knew I could only choose one, and that choice was really hard for me to make.

How I Decided

Early on, Lyft was omitted from my options because of how they handled recruiting. Once I got the offer I was told that I had 2 weeks to accept the offer, or until spots ran out. It turned out internship spots ran out in less than a week, and I was not ready to commit to Lyft in that short time frame (and under that amount of pressure).

That left 5 companies left to decide between, and early on I came up with a list of points that I was considering when accepting any offer.

  • Location - So far I had worked in Austin, TX and Sunnyvale, CA, but I wanted to try living in other places before I graduated. Many companies I received offers from had their HQ in San Francisco, but I specifically requested other offices so that I could try somewhere outside of the bay area.
  • Learning - I wanted to try working in a different place. Be it a different industry, different technology, different company size, I wanted an experience where I could learn more about what kind of environment I like to work at. I also wanted a place where I would be pushed outside of my comfort zone to learn things that I could not have learned anywhere else.
  • Meeting people - One of the things that pushes me the most to improve is working with people who are more talented than me and knowledgeable about what they do. I always like being able to chat with those who are passionate about their interests, as they often make the best kind of friends.
  • One thing I was not as concerned about was salary. I was lucky enough that all of my internship offers paid well enough for me not to worry about how I would pay for college or rent, as that had been a real concern for me in years past. I decided that all of these companies had intern and full-time offers that would pay enough for me to have no real worries about finances.
  • Another thing I was not too concerned about was full-time conversion. I had already been considering a master’s program at this point and thought that I would either do another internship the next year or recruit full-time if I really wanted to change companies.

Taking these things into consideration, I ultimately decided on joining Two Sigma for summer 2020.

It seemed the most different from my past experiences, and I believed would give me the most opportunity to grow both personally and professionally. I knew from chatting to full-time engineers and past interns that Two Sigma hired a ton of smart people, and I would have no shortage of talented peers to be surrounded by. Another factor that weighed heavily on my mind was how hard the Two Sigma interviews were, and I honestly believed that I would have a very slim chance of ever passing them again, which made this feel like a once in a lifetime opportunity.

Before I end this blog post, however, I want to give my Two Sigma interview saga its own section.

Two Sigma Interviewing Saga

My first interview with Two Sigma was in 2018 when I was reached out to by a recruiter who found my email through the Tapia database. I went through a 2-hour coding challenge, an hour-long phone interview (at 6 am in a hotel that was plagued by dropped calls on my end), and finally, a day-long interview “superday” consisting of 3 technical interviews in the morning, and 3 behavioral interviews in the afternoon. As a bonus, if you do poorly in your technical interviews, you will be asked to leave midday, after lunch. After I went through this whole ordeal in 2018, I was contacted a few weeks later to be told I did not get the offer (I accepted my Google offer the day after). However making it so far in the process gave me the benefit of being able to go straight to the onsite portion in 2019, without repeating any of the earlier steps.

After emailing a Two Sigma recruiter in summer 2019, I was quickly scheduled for an interview on Friday morning, beginning at 9 am. My flight was scheduled to leave at 6:30 pm Thursday, and I would arrive in NYC later that night. However, as we were taking off, a bird flew into one of the engines of the plane, and we were forced to turn around and land back at ATX after only 15 minutes in the air. The flight was then delayed to around 3 am, and I did not know what to do, as I did not have a car, and there were no earlier flights to NYC I could switch to. I ended up just waiting in the airport, working on homework and coding challenges (and grabbing ~10 minutes of sleep) until the plane took off early in the morning. I took an uber straight from the airport to the office once I landed, and arrived only a few minutes after 9 am, carrying all of my luggage, and severely sleep-deprived.

Somehow I was able to make it through the grueling 8-hour long day without falling asleep and did fairly well on my interviews given the circumstances. A week or so later, I was told that I would be advancing to the final stage, where my application just needed to be approved by a few higher-ups in the company, and would likely receive my offer in the next few days. I had a few competing offers at that time, so I was very anxious to hear back on the final verdict, but when I did, it was that my technical interviewing feedback did not show enough evidence to support a hire. Thus I would need to do 3 more hour-long technical interviews to reach a final decision.

At this point, I was very close to just giving up. Two Sigma seemed like a great place but I was not sure if it was worth doing a total of 9 interviews for (16 if you count the ones from the previous year). However, the sunk-cost fallacy was definitely at play here, meaning that I felt I was in too deep to give up now. Also, the interviews would be held in the downtown Houston office, someplace I had never been before. I decided to see it through and eventually ended up getting the offer.

Conclusion

Was it worth it? Was it worth all of the studying and rejections and flights just for a summer internship?

Maybe - I still have mixed feelings about it.

Especially this year during the pandemic, I have found that I am grateful I got the opportunity to experience the recruiting whirlwind in its entirety last year, and travel while I had the chance. On the other hand, something I internalized at the end of the recruiting season is that you can only choose one offer. No one else cares how many offers you get, and neither should you. While it was a great experience, and definitely strengthened my confidence in technical interviewing, I will probably never try to repeat the intensity of that recruiting season. It was entirely too draining to consider going through that gauntlet annually, and I have since focused much more on figuring out what it is I want out of my career, and making more deliberate decisions to take me closer to that goal.