The application, phone screen stuff is the usual. They are available on other channels (Glassdoor, blogs ...). In this blog post, I will only tell about the things that specific to my onsite interviews, the things that I could have done better.
metadata
- I interviewed with Google Sydney in Nov 2017 and Facebook Singapore in Dec 2017.
- both for android engineer positions
- I failed both.
My preparation
- 6.006 course from MIT on YouTube, about twice for each lecture.
- CodeJam 2017, could not get to round 2
- KickStart 2017, best rank is 239 on round C
- Hackerrank and LeetCode, about 200 problems, only a few hard problems.
- CTCI, did most of the problems, only a couple problems on the
hard
section.
The onsite
My onsite with google consists of 5 coding interviews on a single day. They are heavy on algorithms and DS. They asked questions that are about the hard
difficulty on LeetCode. Usually, it will start with kind of a warmup question (medium
difficulty) then it got more difficult as I solved them.
Facebook asks not only coding but also system design, behavior questions. The questions are relatively easier. I did give correct solutions, but that is not enough. I should have shown how did I arrive at the solution
. My recruiter suggests me to work on Algo and DS. So I guess that was the reason for rejection.
####### Why I could have done better:
-
for Google, solve more hard problems. Don't fall into the trap of pattern matching, especially for ad-hoc problems. The key is to strengthen problem-solving skill, not study the kind (category) of problems then pattern match them. Readmore: https://www.topcoder.com/community/data-science/data-science-tutorials/planning-an-approach-to-a-topcoder-problem-part-1/
-
for Facebook, think and explain more critically.
I'll try again in 2018.