Skylines, Sushi, and … Spas? Retelling of my SWE Internship Journey: Part 1
Microsoft, Facebook, Google… These are the names of companies that I grew up surrounded by. Incredible companies created by incredible people creating incredible products.
This career goal was more a offhand comment thrown around at a Chinese family’s dinner table:
“Chris could definitely work at google-microsoft-facebook-apple-amazon-other-tech-companies-named-off-the-top-of-my-moms-head!”
Followed by
“Chris could also definitely be a doctor-lawyer-engineer-chef-researcher-professor!”
Strangely one way or another, I found myself in the middle of not in the doctor-lawyer-engineer-chef-researcher-professor boat, but very much in the tech company hubbub.
This year, I had the chance to interview at some of the biggest names in tech, alongside a few other companies who were bold enough to take a chance on me. I’m going to try to describe what this process was like, my impressions of each place, and then recap with the lessons I learned.
Writing Breakdown:
- Starting the interview process, reflecting on my sophomore year
- My general approach and experience with interview processes junior year
- A brief technical interview prep overview
- Recounting my final round experiences with Palantir, Intuit, Microsoft, Fin, Facebook, and Google
- Final takeaways
Just to be transparent from the beginning, I went through a significant (final round/on-site) interview processes with:
Facebook, Google (not yet concluded), Microsoft, Palantir, MongoDB, Fin (Exploration Company), Intuit
It starts in the Summer
Last year for my sophomore year, I felt like recruiting was an absolute disaster. I started seriously putting in time and effort around Thanksgiving and was still grinding away at online applications during Winter break. I hadn’t gotten many interviews at all (maybe 3 or 4, and a few more recruiter phone calls into no follow ups).
Through a LOT of LinkedIn searches for Company X University Recruiter and Hunter (check this out if you don’t have it!), guessing at valid email syntax, and occasionally being brave enough to ask not so good friends for recruiter emails, by the time February passed around, I had scrounged up interviews at Facebook, MongoDB, and IBM. The rest I got immediately passed over as a sophomore or didn’t get any response back at all. I got absolutely destroyed by rotated array binary search (pivot search + binary search) at Facebook, but I had done pretty well with Mongo, but by the time I heard back after my onsite, they had filled up their sophomore intern quota.
I ended up at IBM in their Austin office through a family friend’s recommendation.
As I packed up a set of my thinnest clothes, a mountain of sunscreen, bought antiperspirant for the first time in my life, and stepped into the rust bucket of Building 045, I committed myself to do better.
Specifically I dedicated myself to:
- Practice coding problems everyday starting in the summer (didn’t happen)
- Only apply via recruiter contact and referral
- Apply early, finish early
(I actually had a blast this past summer. Don’t worry — it was killer.)
Recruiting is ABSURD. There’s like some sort of global-warming-esque phenomenon happening where recruiting season seems to come earlier and earlier each year and just continues to get more and more intense.
As my internship approached its end at the beginning of August, something completely unexpected happened as I was getting back in the recruiting mood.
Recruiters started emailing me.
I got contacted by Brown’s Palantir recruiter after applying with no response last year to see if I’d be interested in interning for the following summer.
As more and more friends/acquaintances, both those in my year and more senior classmates, started reaching out to see if I’d like a referral, and more recruiters initiating conversations with me, the second goal was a million times easier to achieve than I had imagined. This was in stark contrast to the hours upon hours that I was prepared to spend trying to make initial contacts with anybody in a particular organization.
On a side note: I wish I had a good book or movie reference about people trying to make first contact with alien species, but I need to make more time to culture myself!
This was weird because I certainly hadn’t felt like I had improved to any significant degree. It sucks, but I guess the 4-digit year on my resume being one year closer was the biggest change on my resume.
Now we’re connected, what next?
After making first contact with a recruiter, I think most recruiting processes are pretty consistent. This part is pretty boring, so I’ll just highlight a bit of what I was doing, and then we’ll move to more interesting tidbits.
After getting interviews most of what I spent doing was coding practice. I’d work on about one to three Leetcode problems after reviewing the major chapters of Cracking the Coding Interview.
One thing to note was that I took a significantly lighter coursework semester in preparation for an intensive and long-spanning interview season.
For Brown students, my classes:
- Computer Systems (CS33)
- TAing Algorithms (CS157) for credit
- Abstract Algebra (MATH1530)
- Computational Linear Algebra (APMA1170)
- Auditing Consciousness PHIL1520 (in reality I pretty much dropped this course)
For around three weeks before my first technical phone screen (with Palantir), I made a study plan outlining how many questions per day I would do, on what focus area (a particular data structure or type of algorithm e.g. sorts, searches), of what difficulty level, and maybe even specific questions if I could find some beforehand.
Here’s a brief excerpt:
Leetcode Study Guide:
9/5:
3 Stack Questions
1 easy, 2 medium
9/6:
3 Linked List Questions
1 easy, 2 medium
9/7: 3 search questions
1 easy,
2 medium
9/8: 3 graph questions
1 easy,
2 medium
- Review cycle checking and djikstras
- Topological sort
9/9: 3 sorting questions
1 easy,
2 medium
9/10: 3 tree questions
1 easy,
2 medium
Then as I got closer to a specific interview then I would pick out company specific questions from Leetcode (I bought premium), and collect questions from Glassdoor.
I think I did at least the first page and a half of most frequently asked Facebook questions (by Leetcode measure), and every “reasonable” question in the first 4 or 5 pages of Glassdoor reviews. “Reasonable” as in I self selected what I thought based on my own guesses and Leetcode questions what seemed they might ask for interns.
In order to maximize my time spent on Leetcode/CTCI/Glassdoor, I used a timeboxing approach. I would set a timer for 15 minutes for easy questions, 20 minutes for mediums, and 25–30 minutes for hards, then try to solve the question entirely by myself. I might work in Leetcode’s code compiler or on a whiteboard I installed by my desk depending on if I was prepping for coderpads or whiteboarding. After solving or after time was up, whichever came earlier, I would read through the discussion/solutions to understand the approach. I felt like this approach was successful as a middle ground for challenging myself to building my “technical question intuition” and covering a broad variety of strategies and content areas. I’m happy to cover my preparation process more in depth if anyone is interested — let me know!
One thing that I tried to do as I got in contact with more and more companies was to hustle them using my other interview dates and processes as leverage. I stuck to lighter classes so that I could maximize my interview throughput: interviewing, for me, is a process that requires momentum and I didn’t want to lose it.
I think the best result of my shortcomings the year before was that I was so ready and committed to putting so many of my resources, brain space, and self-control towards making my Bay Area/NYC big tech aspirations come true, then when opportunities came flying through the door, I was ready and waiting.
Skylines, Sushi, and… Spas?
After making it through to final rounds with Palantir, Intuit, Microsoft, Fin, and Facebook, in that order, I suddenly had to think about a new question: Where do I actually want to work?
I think I stumbled upon this incredibly important question particularly late simply because I didn’t think that I’d be in the position to even start asking this question, or at least not this quickly.
I had all these interviews within one and a half weeks: from September 28th (Palantir) to October 6th (Facebook).
So bringing it back to the dinner table:
What is different about the google-microsoft-facebook-apple-amazon-other-tech-companies-named-off-the-top-of-my-moms-head companies? I’ll try to highlights the pieces that I picked up as I walk through my general interview processes, but primarily my final round experiences with each.
Continue reading in Part 2.
Read more of my stories by following me! Let me know if there’s anything you’d specifically like me to retell.