I interviewed at five top companies in Silicon Valley in five days, and luckily got five job offers

How it started

Preparation

Coding

  1. Practice, a lot. There is no way around it.
  2. But 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. My thought is that if 70 problems isn’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 stuck on one problem for over two hours, check out the solutions. More time might not be worth it.
  5. After solving one problem, check out the solutions. I was often surprised by how smart and elegant some solutions are, especially the Python one-liners.
  6. Use a language that you are most familiar with and that is common enough to be easily explained to your interviewer.

System design

  1. Understand the requirements first, then lay out the high-level design, and finally drill down to the implementation details. Don’t jump to the details right away without figuring out what the requirements are.
  2. There are no perfect system designs. Make the right trade-off for what is needed.

Machine learning

  1. Figure out what the objective is: prediction, recommendation, clustering, search, etc.
  2. Pick the right algorithm: supervised vs unsupervised, classification vs regression, generalized linear model / decision tree / neural network / etc. Be able to reason about the choice.
  3. Pick / engineer relevant features based on available data.
  4. Pick metrics for model performance.
  5. Optionally, comment on how to optimize the model for production.

The interview process

Phone screening

Onsite

Negotiation

  1. Be professional.
  2. Know your leverages.
  3. Be genuinely interested in the teams and projects.
  4. Keep your patience and confidence.
  5. Be determined but polite.
  6. Never lie.

My failed interview with Databricks

Afterthoughts

  1. Life is short. Professional life is shorter. Make the right move at the right time.
  2. Interviews are not just interviews. They are a perfect time to network and make friends.
  3. Always be curious and learn.
  4. Negotiation is important for job satisfaction.
  5. Getting the job offer only means you meet the minimum requirements. There are no maximum requirements. Keep getting better.
  1. Korean, by Jubilee Kim
  2. Chinese (multiple translations), by Rambo Zhu and Yunfei Mu
  3. Russian, by nanton

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store