Tired of ads? Enjoy an ad-free experience by signing up.
Xiaohan Zeng · · 9 min read

How I interviewed for 5 top companies in 5 days and got job offers from all of them

From July 24 to 28 2017, I interviewed at LinkedIn, Salesforce Einstein, Google, Airbnb, and Facebook and got all five job offers.

It was a great experience, and I feel fortunate that my efforts paid off. So, I decided to write about how I prepared, the interview processes, and my impressions of the five companies.

How it started

I had been at Groupon for almost three years. It was my first job, and I was working with an amazing team and on awesome projects. But I felt I wasn’t learning as much as I craved. Also, as a software engineer in Chicago, there were so many other great companies that attracted me.

Life is short, and professional life shorter still. After talking with my wife and getting her full support, I decided to take action and make my first ever career change.

Preparation

I was interested in machine learning positions, though the positions and titles at the five companies were slightly different. Three were under “machine learning engineer” (LinkedIn, Google, and Facebook), one was under “data engineer” (Salesforce), and one was in software engineering in general (Airbnb). So, I needed to prepare for three different areas: coding, machine learning, and system design.

Since I had a full-time job, it took me two to three months to prepare.

Coding

While I agree that coding interviews might not be the best way to assess your skills as a developer, there’s arguably no better way to do so in such a short period of time. (In my opinion, it’s the necessary evil to get you that job.)

I mainly used Leetcode and Geeksforgeeks for practicing, but Hackerrank and Lintcode are also good options. I spent several weeks going over common data structures and algorithms, then focused on areas I wasn’t too familiar with. Finally, I began solving some common interview problems. I usually did two problems per day.

Here are some thoughts:

  1. Practice a lot. There’s no way around it.
  2. Rather than doing all 600 problems on Leetcode, cover all types and spend time understanding each problem thoroughly. I did around 70 problems in total and felt that was enough for me. (If 70 problems aren’t helpful, then you may not be doing it right, and 700 won’t be helpful either.)
  3. Go for the hardest ones. After those, the rest all become easy.
  4. If you get stuck on one problem for over two hours, check the solutions. Spending more time might not be worth it.
  5. After solving a problem, check the solutions. I was often surprised by how smart and elegant some solutions were, especially the Python one-liners.
  6. Use a language that you’re most familiar with and is common enough to be easily explained to your interviewer.

System design

This area is more closely related to the actual working experience. Many questions can be asked during system design interviews, including system architecture, object-oriented design, database schema design, distributed system design, scalability, etc.

The interview process

Negotiation

My failed interview with Databricks

Afterthoughts

Stay ahead in Asia’s tech landscape

You've reached your 2 free content limit for the month. Sign up for free to read the full story.

🏄 For casual readers / 👶 Free

Basic

US$0

Free forever

Get instant access to this article and more every month

0 premium content

Unlimited news briefs

5

5 articles

Ad-free reading experience

Just US$0 per day

⌛Sign up in 20s. No payment details needed.

📖 For learners / 👍 Starter

Lite

US$4.92/month

Billed annually at US$59/year

Get instant access to this article and more every month

4

4 premium content

Unlimited news briefs & articles

Ad-free reading experience

Just US$0.17 per day

Cancel anytime

Our subscriber community includes professionals from these companies:

Stay updated on the go with our mobile app.

Get latest insights with smoother, more personalized experience through TIA mobile app.

Community Writer

Xiaohan Zeng

Machine learning, data science, data pipelining