Forgetforget
10 min readApr 5, 2022

--

Google Interview Experience

  • Some Links for practice:
  • leetcode.com
  • binarysearch.com
  • https://cses.fi/problemset/list/
  • https://progvar.fun/problemsets
  • https://www.teamblind.com/
  • GreedyPi Discuss Telegram Group : https://t.me/+TJaC_M4dzrV5zHlT
  • GreedyPi Resources Group : https://t.me/+S3UkZ9utTv_PSMPG
  • GreedyPi Leetcode Daily Group : https://t.me/+6UNwy5_PxO00ZDU9
  • Leetcode list :
  • https://leetcode.com/list/j45yzrd
  • https://leetcode.com/list/92xnn8bh
  • https://leetcode.com/list/90g9ogdr
  • Difficulty of the interview rounds and my take on the interview tasks :
  • There were a total of 6 rounds of interviews in my case and in most of the friends I know who interviewed for the Warsaw location. One of them was a phone interview which is also known as a screening round to make sure that candidate is ready for the next 5 rounds. Now for the next 5 rounds 4 of them were DS algo based and 1 was googliness.
  • As due to non-disclosure agreement, I wouldn’t be sharing exact tasks, sorry about that but trust me I have very good memory for any tasks, I can remember tasks i solved before 2 years too, i have solved numerous tasks in contests and on leetcode. Not one of the tasks that were asked to me was seen before by me. So it’s no use for anyone.
  • Still I could share that tasks were something like ,not exactly like that but variation of
  • Merge Sorted Lists (easy-medium)
  • Probability Sampling/Randomisation, data processing (Hard, I nailed this one as i am more maths inclined person)
  • String Hashing / Tries , (I used Polynomial Hashing or rolling hash, as using tries was getting too complex and extra factor of 26, so i preferred randomised solution over deterministic solution) (This was medium-hard i guess, this task was more CP side rather than on classic data structure usage like insert/query)
  • Binary Search , extension to binary search , little maths in that (This was easy-medium but lot of edge cases to handle)
  • Experience of the interview rounds process and how are they conducted:
  • So now Everything is online, there is much difference between old interview rounds and the current interview loop. Previously whenever you passed the screening round google used to call you onsite and all of your expenses were covered by google including two way travel tickets, also there were white board interviews, which might be advantageous for some people depending upon person to person.
  • So currently interviews are conducted online on google meet, in most cases all of the interviews are conducted in a span of 1–3 days. So on your first meeting with your recruiter they will ask you your preferred language in my case it was C++, you might ask for your preferred language java or python.
  • All of the coding round interviews are of 45 minutes, 2 to 3 minutes up maybe. There is one hour between each round.
  • Googliness round is of 30 minutes duration.
  • For Coding part there is an editor in your preferred coding language, which takes care of indentation , it does not have auto-complete suggestions, also it doesn’t have a compiler to check if everything runs correctly or not. Basically it is just a normal editor with syntax highlighting and indentation handling.
  • Depending upon your preferred choice of language and preferred choice of your interviewer , your interviewer will be assigned to you, the name of the interviewer is not revealed in your mail. But obviously during the interview you will get to know about them and their work. You will never be assigned to be an interviewer of a different language , even if they are comfortable in your language, like in one round of mine, by mistake a python user was assigned to me so my interview was rescheduled.
  • So for the interviews 5 minutes will be spent on introducing you both to each other. This is not counted towards judgement according to me. So for the next 40 minutes this will be your main data points of judgement.
  • In these 40 minutes it is expected that you solve 2 easy to medium tasks or 1 hard task but you also have to express and maybe code brute force solutions.
  • As for location specific In India , you won’t face any communication issues as there are not many language barriers and fluency of expression is more. But for the Warsaw location in some interviews I faced little communication issues, so you might have to ask them to repeat the word they are saying. rest you will be fine. In one of the interviews I mentioned, upto first 10 minutes I was just on clearing the task. In general it took me at most 1 minute after reading the task, and 2–3 minutes for clearing all my doubts and also letting them finish their explanation.
  • You will be at an advantage if you could think of a solution while they are explaining the task, but do not ignore the explanation, what I meant is just dont be blank and always keep thinking because time is crucial. If you understood the task you might keep thinking of a solution and let the interviewer explain.
  • During the whole interview process you have to communicate your whole thought process, what are you thinking , what data structure might be handy here, but try to practice on explaining in intervals like take 2–3 minutes gap and then think, then explain and so on. While coding your thought process shouldnt stop, you should also make sure that you are clear on your solution.

Generally the interviewer will tell you to code you only in the case of you are on the right track like expected. If you are blank they will just tell you to code brute force.

  • Not in my case but if you are blank for sometime , interviewer will start you giving you hint, Also they could hint you towards try different data structure this was in my case when interviewer hinted me towards thinking of other data structure than trie, as the process was getting complicated. Even though it was feasible, that hint helped me a lot as I explained the solution using string polynomial hashing.
  • After explaining the solution you also have to dry run on test cases.
  • In one round of interview, I made mistake while dry running as I got nervous as I knew the interviewer and he was kind of ICPC world finalist, so it costed me 5 minutes , which was loss for me , as i got less time to cover edge cases later, things like this will happen so try to give more mock interview, if you are nervous try to talk to interviewer it will help you relax.
  • Also in one of the rounds I preferred the extra log factor solution as it was more easier to implement , you can discuss this with your interviewer and code accordingly.
  • As it was a one time opportunity for me, I was always a little nervous at first but whenever I got the approach, I felt more confident.
  • Dates of Process from applying to getting selected:
  • I applied in September 2021 On google career site for 3 locations India, Warsaw And Zurich, as you can apply for 3 job positions in 90 days. One of my friends referred me, as he found me a suitable candidate.
  • Recruiter reached out to me at the end of September for GCP , as they are hiring for GCP in the Warsaw location.
  • This was my first attempt. I applied numerous times before with a referral but I was never considered even though my profile wasn’t that bad, I think there is immense competition for google that may be the reason and maybe little bad luck involved. Still I am unsure of the exact reason.
  • Here After everything was communicated via email and meetings on video call. I was being asked my wish to relocate, preferred coding language and what is the earliest time to start the interview process.
  • I asked for 2–3 weeks of preparation time for the phone interview. Even though I was ready, because I didn’t wanna risk the one time opportunity.
  • My phone round was scheduled around the end of October.
  • I got positive feedback but I got many pointers for improvement from the interviewer such as using references and many more.
  • Your recruiter will give you the feedback and ask dates for further rounds. I asked for another 3–4 weeks of time, you can even ask for 2 months of time depending upon your preparation. I will share the preparation strategy and resources of mine later in the blog.
  • My interview round was scheduled for the end of November in a span of 2 days.
  • In one of the interviews there was a little bug in the coding editor so we coded on google docs , also in one interview, the interviewer’s coding language was different so that one interview was rescheduled on the third day.
  • I got feedback that it was on the positive side. Now the next phase was team matching , generally your hiring committee stage is before the team matching but for most of my friends and me team matching was before.
  • As in general headcount come around Jan-Feb so until end of year there are very less headcount for team matching and it becomes more difficult for team match , recruiter asked my interest if I am interested in full stack roles as my resume was more inclined in backend, which I replied yes as I was more interested towards increasing my chances as team switch is not that hard in google.
  • Also December is a month of holidays so most people are on leave. Which extended the process again by one month.
  • In January I got a team matched with one of the teams. Team matching is like a date where a manager right swipes you if he is interested and he will schedule a meeting explaining what team does and what roles you will be getting to work on.
  • I was ready if I didn’t like the team, but working on a team was pretty awesome so I liked it and replied to the recruiter that I was interested in the team on first go.
  • Resources/roadmap and preparation strategy:
  • TBH I was over prepared for google and was prepared for any topic they could ask. I solved many leetcode questions but my competitive side helped me more than leetcode preparation, as tasks are not generally repeated.
  • I solved nearly 300 tasks covering everything in 3–4 weeks. Out of which most of them were rated Hard , as I was comfortable in easy/medium ones. But you should focus on easy/medium ones. It would be more helpful.
  • Also I used to google search leetcode tasks in the discuss section like this according to topic “site:leetcode.com/discuss topic_name/company_name”, and then visit every page.
  • Don’t worry about covering the whole syllabus, just keep learning over your weak topics.
  • Keep participating in the leetcode contest.
  • Give as many mock interviews as possible.
  • Some leetcode list of questions that I solved or tried to solve :
  • https://leetcode.com/list/j45yzrd
  • https://leetcode.com/list/92xnn8bh
  • https://leetcode.com/list/90g9ogdr
  • Make sure you cover the following topics :
  • Topological sort
  • DFS/BFS
  • 2-D Matrix Prefix Sum
  • Binary Search over functions
  • Dijkstra/Bellman Ford/ Floyd Warshall/ Kruskal’s Minimum Spanning Tree
  • UnionFind
  • Trie
  • Cycle Detection
  • Intervals
  • Segment Tree/Fenwick Tree
  • KMP
  • Bridges/Articulation point/Tarjan SCC
  • In general my main focus was on following topics as I was comfortable in other ones:
  • Graph distance
  • Bin packing and all NP
  • String fitting and searching
  • Trie
  • Randomisation problems
  • Tips for the interview and general preparation:
  • Make a time schedule like in my case it was first 5 minutes introduction, next 5–15 minutes understanding and explaining the solution and then write the code as fast as possible
  • Don’t be blank. If you cannot think of an optimal approach in your general required time then think of a brute force solution.
  • Don’t worry if you messed up in one of the interviews.
  • It is ok, if you are not unable to crack google in the first attempt. This thought process will make you more calm.
  • I have seen people who give google interviews as if they don’t care if they are not selected or not. Their interview performance gets better.
  • Always keep the never give up strategy in the interviews , keep trying something instead of nothing.
  • Try to write clean code.
  • Use proper variable names but don’t do it over the time of coding because what’s the use of this if you cannot complete the code in time. So first priority should be code completion and estimate how you should code, this you could learn by practising.
  • Don’t repeat the code, make a separate function for it.
  • Try to implement your solution just like leetcode template
  • Ask the interviewer what the input format is instead of assuming yourselves.
  • Make sure you have your knowledge of language like why are using pair<int,int> instead of vector<int> , why not array
  • Try to give mock interviews as much as possible.
  • Use leetcode premium for the preparation if possible.
  • Read all the approaches of the task in depth and make sure you can explain it to someone.
  • Try to have coding buddies , join our telegram group.
  • Googliness round (copypasta):
  • Tell me an area where you think you can improve.
  • Tell me about a time when you received critical feedback from someone.
  • Give me an example of when you took a risk and it failed.
  • Tell me a time when you created an innovative product.
  • How do you find the time to stay inspired, acquire new knowledge, innovate in your work?
  • Tell me about a time when you had to deal with a poor performer on your team. (Somewhat around this question I was asked in my interview)
  • Tell me about a time when you could have stopped working but persisted.
  • Tell me about a time when you proposed a new business through requirement analysis.
  • Describe how you would handle a busy situation where three people are waiting for help from you.
  • Tell me about a time where you thought of a clever new way to save money for the company.
  • Tell me a time when you earned the trust of a group.
  • Tell me about a time when you had to dive deep into the data and the results you achieved.
  • Tell me about the most difficult interaction you had at work. (Somewhat around this question I was asked in my interview)
  • Tell me about a time where you overcame an obstacle and delivered results.
  • Negotiation of Salary:
  • Remember that you should have leverage over negotiation, ask for a number from the recruiter first. Never reveal your current salary.
  • Having a Competitive Offer will help you the best in negotiation. I had a competitive offer from Amazon, that helped me much in negotiation.
  • Try to give all the factors for getting a decent salary , like relocation , purchasing power parity , and many others. Even though it will not be considered in the case of google.
  • I will make a video later on how to professionally negotiate.

Best Luck !!

--

--