Hi Everyone
I recently gave onsite interviews for Google Zurich and wanted to know from the folks here my chances of selection. (as well as put up my interview experience)
Interview 1: Design Round
The Problem was around reconciling internal data with inputs from many external partner APIs.
I was able to come up with a good design, handled processing of internal data and sharding/partitioning based on certain attributes to handle scale, Rest API based ingestion from partners, worker-queue model to process this data, handling of faulty data, the recon strategies for a singular datum, and some strategies around verification as well.
This interview went very well in my opinion and I was able to answer every counter-question by the interviewer. Morphed into a discussion at some point as well. I am expecting a strong hire/hire maybe on this.
Interview 2: Coding
I was asked a problem around range queries on a list of numbers/booleans. I started with brute force, optimized it to N^3 precompute (sort of brute force), came up with N^2 DP with N^2 space and then N^2 DP with O(N) space. However, the interviewer gave many hints, some around approach and some around code as well. By the time we finished, the time was almost over I was not asked another question.
(P.S.: The interviewer mentioned the possibility of an O(N) solution, and I hinted at Segment Tree and told her I usually refrain from coding segment trees. The interviewer mentioned that they also don't expect anyone to come up with that in an interview and no one (including them) has done so.). The interviewer was very positive and seemed happy with the solution.
Interview 3: Coding
Question 1: It was related to a two-pointer, printing stuff based on a matcher in an array, something similar to implementing basic grep without regex. It took some time and back and worth to understand the question and the inputs correctly from my end, (and the clarification invalidated my previous approach).
Reached an N^2 solution and optimized it to O(N). The interviewer was very poker-faced and I couldn't guess if they were happy. This took around 30 mins
Question 2: It was around getting data from external APIs and displaying them based on priority. I said we can call the APIs parallelly using threads/go-routines sort of thing and store the results as returned in a priority queue to handle returning.
I mentioned to the interviewer that I am not aware of the exact syntax of threads in Python, and they were fine with it. Wrote some skeletal code with functions and threads.
Was asked about things to be aware of in multi-threaded programming. Told about shared resources and deadlocks and stuff. Might have fumbled a bit about the thread-safety of the priority queues in python, but I told that I am not super confident about my answer to the interviewer. Again same poker face from the interviewer, so no idea how this went
Interview 4: Coding
This was a graph problem based on the minimum path in a city. I discussed BFS and DFS solution, BFS vs DFS pros and cons, and then coded the BFS solution.
I was asked several follows up based on limits of capacity, capacity increase, constraints around the capacity increase, and such stuff.
This also morphed into a discussion over time, since I was done with most of the coding and all the follows up needed minor changes in specific functions. The interviewer seemed happy with my solution and the time situation was also good. We discussed only this question, with follow-ups.
I think this interview also went very well, maybe towards a strong hire.
Interview 5: Googlyness
This round went as well as can be expected. Was able to answer all situation-based questions that revolved around relationships with managers and leadership, working together and resolution of conflict with a sister team, some questions around career path and mentorship, some examples about deadline handling, and all.
Overall the interviewer (and I) were satisfied with this round. It got over 5 mins earlier, even after some questions from my end.
So I wanted to understand the chances of a hire/no-hire. I am most worried about interview 2 and interview 3. In 2, I only solved one question with quite some help, and in 3 I took a lot of time on the initial question, and the code for the next one was also not perfect (though the interviewer seemed fine by it)
#google
#engineering
#interview