I have attended Google Interview 2 times till date. Both the times I got REJECTED!
In my opinion, Google Interview is all about luck! Well, I will tell you the reason!
In other companies, interview is like - they will ask one question and you fail to answer that question at first attempt! You go back and study that question and clear your next interview when the same question is asked! In general, if you consider normal programming question, you may get OOPS Concepts, String Reverse, etc. This you can study/prepare and clear your interview after 1st or 2nd attempts.
When it comes to Google . .
You read books, write code regularly, watch videos, practice in GitHub/LeetCode, and so on. You prepare for a Google Interview years and more! The coding question you will get during the interview is nowhere related to the study you have done so far! It is purely a RANDOM question! and moreover it is upto the interviewer at that point! It might be a Tree or Linked List or Matrix. No one can imagine what sort of problem.
Interview Experience 1:
06-07-2021 : I sent an email to Google HR to refer my profile for the relevant role at Google.
17-08-2021 : I got an email at 11:21 AM IST from Google HR for the Introduction Call. I have accepted the same.
17-08-2021 : Introduction Call with Google at 01:00 PM IST.
18-08-2021 : I got an email from the Google Recruiting Coordinator to fill the Candidate Availability Form for the interview.
18-08-2021 : I have filled the form by scheduling 5 slots between 10:00am - 11:45pm IST, Monday - Friday. I also replied to the email stating the same.
26-08-2021 : Google Interview at 10:30 AM IST.
26-08-2021 : After my Interview, I sent an email saying - Everything went well and I'm waiting for the next steps. { A nice gesture!)
No update since then!
20-08-2021 : I have sent an email asking the status of my interview!
No update since then!
28-09-2021 : I have sent an email asking the status of my interview!
28-09-2021 : I got a call from the Google HR and recieved an email with interview status
REJECTED
Interview Experience 2:
17-05-2022 : I sent an email to Google HR to refer my profile for the relevant role at Google.
18-05-2022 : I got an email from Google HR for the Introduction Call. I have accepted the same.
02-06-2022 : Introduction Call with Google at 01:00 PM IST.
02-06-2022 : I got an email from the Google Recruiting Coordinator to fill the Candidate Availability Form for the interview.
02-06-2022 : I have filled the form by scheduling 5 slots between 10:00am - 11:45pm IST, Monday - Friday. I also replied to the email stating the same.
14-06-2022 : Google Interview at 01:30 PM IST.
30-06-2022 : I got an email from Google HR stating hiring team has decided not to move forward with my profile.
REJECTED
I have been preparing since 4 years when I first interviewed at Google 06-07-2021. I referred resource's like GitHub, HackerRank, LeetCode, Stack Overflow, YouTube, etc. Also, I had extensively invloved in reading and writing articles/blogs across C# Corner, Dev Community, Medium. I followed and connected with a lot of folks over GitHub and LinkedIn.
- Cracking the Coding Interview
- Introduction to Algorithms
- GeeksforGeeks
- GitHub
- GitHub Repository 1
- GitHub Repository 2
- HackerRank
- LeetCode
- Stack Overflow
- Life at Google
Practice, Practice, Practice!!!
- Big-O Cheat Sheet - Big-O Cheat Sheet
- Refer this GitHub Repository - jwasham/coding-interview-university
- Read enough coding Books - Best Books
- Understand and practice enough Algorithms - List Of Algorithms
- Solve enough problems on LeetCode - LeetCode Problems
- Read this blog - Blog
- Join communities like:
- YouTube Channels:
Talk through your thought process about the questions you are asked. In all of Google's interviews, our engineers are evaluating not only your technical abilities but also how you approach problems and how you try to solve them.
Ask clarifying questions if you do not understand the problem or need more information. Many of the questions asked in Google interviews are deliberately underspecified because our engineers are looking to see how you engage the problem. In particular, they are looking to see which areas leap to your mind as the most important piece of the technological puzzle you've presented.
Think about ways to improve the solution you'll present. In many cases, the first answer that springs to mind isn't the most elegant solution and may need some refining. It's definitely worthwhile to talk about your initial thoughts to a question, but jumping immediately into presenting a brute force solution will be received less well than taking time to compose a more efficient solution.
Access to a computer at the time of interview is required as you will be requested to write and share code. Interviewers use Google Docs to facilitate coding in real time.
Couple of pointers to bear in mind during the interviews:
Coding rounds: Emphasis on Syntax, Naming, Organisation and testing. Please take care to use the best features of the language. Ensure a high level of code readability (use good variable names etc). Be particular about boundary conditions and incorporate the same in your answer. Do test your code independent of the interviewer hinting to do so.
Data Structures: Emphasis on right tools for the job, varieties of DS (Lists, Hashtables, Stacks, Queues, Graphs etc). Don't force a question into a structure that doesn't fit.
Algo: Binary search, sorting, Recursion, Dynamic Programming, Time & Space complexity. Try to start simple and improve.
A simple elegant solution is preferred. You are expected to hit the optimal solution, and be able to discuss alternate methods and their tradeoffs. Time complexity analysis is expected.
Efficacy: Fast solutions with minimum guidance is expected.
Remember to think out loud - ask for clarifications - check corner cases - pay attention to the interviewer's hints/ clues.
- Binary search
- BFS/DFS/Flood fill
- Tree traversals
- Hash tables
- Linked list, stacks, queues, two pointers/sliding window
- Binary heaps
- Dynamic programming
- Union find
- Ad hoc/string manipulations
- Other good to know topics: Trie, segment trees/fenwick trees, bitmask
- You'll be expected to know and apply: lists, maps, stacks, priority queues, binary trees, graphs, bags, and sets.
- For algorithms you'll want to know greedy algorithms, divide and conquer, dynamic programming, recursion, and brute force search.
- You'll definitely want to be conversant with bigO notation, time-space complexity, and real world performance of all of this.
- Can you implement the most optimized data structure and algorithm for the question?
- Can you explain the tradeoffs between the data structure/solution?
- Can you explain why you choose a data structure for implementation?
- Can you explain and analyze the time and space complexity correctly?
- Can you translate the algorithm to code well?
15 Minutes Before the interview:
- Arrange proper room/table/lights with laptop/desktop and proper headset/earphones.
- Make sure you keep a pen, notebook/paper, water,etc.
- Keep your phone in silent mode.
- Plug-in charger for the laptop/desktop and make sure you have suffiecient charge for the interview.
- Close all the background apps.
- Open a Browser (Google Chrome) and hide your Bookmarks Bar.
- Open your email and open the interview invite link.
- Test your mic and video.
- Be ready!
Once The Interviewer Joins . .
- Say Hi and be confident!
- Let them start next and wait for your turn.
- When they introduce themselves, you just listen!
- When they ask your Introduction, introduce with confidence.
- Introduction should be very short and clear.
Now they will ask you to share your screen and open the Google Doc. link.
- Open the link in new tab.
- They will paste the Question.
- Just wait an watch!
There are 2 chances:
- 45 minutes - 1 Difficult question
- 45 minutes - 2 Easy/Medium questions
- They will explain you the Question and what exactly they want output.
- Now it's your turn to read the Question carefully and ask for clarification.
- Take 2 minutes . .
- Ask few questions related to the problem. Let them clarify the same.
- Once you are clear, explain your approach to the interviewer.
Now start coding . .
- Write proper variable names.
- Don't hurry up! write slowly.
- Ask if you have any doubt's in the middle. They will explain.
- Once you are done with coding, stop writing. Let them know you are done.
- They will ask you to explain your code and how you are solving the problem.
- Explain them properly. Don't get stuck anywhere!
Not finished yet!
- They will ask you to write the test case's.
- Write relavant test case's and let them know once you are done.
- They will ask you - What is the Time Complexity and Space Complexity?
- Write the Time Complexity and Space Complexity
- Explain why!
Almost you reached end of the interview!
- They will ask - Do you have any questions for me?
- Ask one or two valid questions.
- Listen to them what they are telling!
Done! Interview is completed!
What Next?!
- Close all the opened tabs and exit the Browser!
- Open the Browser again and open your email.
- Reply to the Interview email saying - Thank you for providing the opportuninty and it was a great discussion. I'm waiting for the positive feedback!
That's al!! Go out and RELAX!!!
- Google Interview HR Co-ordinator will share resource's soon after the Introduction Call. Always have a look at them and study hard!
- I have attached here the resource's shared by the Google Interview - HR via email. Please have a look!
- Note: I have kept the HR details confidential and converted the email to pdf and attched here.
- Interview-1 Resource
- Interview-2 Resource
You can get in touch with me on my LinkedIn Profile:
You can also follow me on GitHub to stay updated about my latest projects:
If you liked the repo then kindly support it by giving it a star ⭐
Made with ❤️ by Pranam Bhat. Connect me on https://www.linkedin.com/in/pranam-bhat-11670689/
For any queries : pranam707@gmail.com