Last January, I received an email from a Google recruiter asking if I’m interested for a quick call. I scheduled the call a day after. She talked about Google, ask about my experience, behavioral questions, and a few technical questions just to gauge my computer science knowledge. I didn’t manage to answer correctly on some of her technical questions. She told me that I need to review for the actual technical interview. Luckily, she let me schedule my technical interview. To have a lot of time to review, I scheduled it one month after. She also provided me tips and review links that I can use to prepare for my interview.
Throughout the month, I reviewed various computer science topics starting from basic sorting algorithm to dynamic programming. I started from this YouTube playlist about sorting alrogithms which I posted few weeks ago. I also read few chapters of Cracking the Coding Interview and tried answering the questions in the book. I make sure that I just write my answers rather than typing it in front of a computer.
I also studied data structures especially trees, graphs, and hashmaps. Knowing the difference and writing the code for breadth first search and depth first search is really valuable. Solving problems with dynamic programming helps a lot. But understanding DP is quite a struggle.
The interview is a 45 minute call that started with a system design question. After that, the interviewer will provide the technical question that needs to be coded using Google Docs. That is why practicing coding in a paper is essential because in the actual interview, no compiler is allowed.
I was asked with a horse in a chess board problem. I will not discuss more about the problem but in essence, it can be solved by simply breadth first search. Unfortunately, I made critical mistakes in my implementation. First, I tried optimizing it prematurely which resulted into a wrong implementation. Second, I mistakenly interchange the for loop and while loop in my BFS implementation. Funny when the code is traced, the implementation resulted into a depth first search. The interview ended and I’m not sure how it went.
After a few days, the recruiter scheduled a call to provide feedback. She mentioned that my interview got a mixed feedback. She provided valid comments which I agreed having the same sentiments regarding the interview. She mentioned that I will have another technical interview call to get a more concrete feedback. I scheduled the call two weeks after because I have an on site interview in Singapore (Agoda) coming up.
The second technical interview for me is really disappointing. I think the question is really hard, but I also jump into conclusion that it is a dynamic programming solution. Eventually, the interviewer made me realized that it can be solved by basic recursion that I also didn’t managed to answer. In the end, I expected my interview to be a failure.
After a few weeks, the recruiter scheduled another feedback call. She mentioned that they will not push through with my application which I expected. Although, she mentioned that I can reapply again in the future. Let’s see, maybe next time.
After the interviews, I recently accepted a software engineering role at Agoda.