Earlier this year, I had the opportunity to interview for a role at Google. A recruiter reached out to me on LinkedIn, and after enthusiastically saying yes, I dove headfirst into preparation.
Initial Technical Assessment
While initial anxiety set in with the vast amount of material to cover, I tackled a mix of technical and non-technical questions in a 45-minute screening.
The interview commenced with standard introductions. The interviewer inquired about my professional background and past projects. Subsequently, I was presented with a series of technical questions pertaining to fundamental algorithms such as merge sort, quick sort, and binary search. The discussion extended to data structures, their optimal applications, and the associated time and space complexities of various search algorithms, including DFS and BFS. To facilitate further preparation, the interviewer provided relevant study materials and allotted a three-week timeframe for the upcoming technical interview.
I was asked about my preferred coding language and was recommended to the second round. Advancing to the technical round, I honed my coding skills (focusing on my preferred language) and prepared from LeetCode, HackerRank , W3Schools.com and CodeSignal.
Technical Interview: A Deep Dive into Graphs
The second interview was primarily focused on algorithmic problem-solving. Unlike technical interviews of other organizations where coding on an IDE is involved, this phase emphasizes clear communication of problem-solving approaches using Google docs or simple text editor. Candidates are expected to demonstrate their thought process, starting with a brute-force solution and progressing towards an optimized one.
For my second interview, I was presented with a medium-level graph problem from LeetCode. I successfully implemented the brute-force solution and discussed the potential optimizations with the interviewer before the time was out.
While I was not selected for the System Design round, this experience proved invaluable. It highlighted the specific areas where I needed improvement to successfully navigate FAANG/GAMAM/MAANG interviews.
The following key takeaways will be beneficial for anyone preparing for FAANG/MAANG/GAMAM interviews:
- Coding platforms are a stepping stone, not a silver bullet:
While coding platforms are great for building problem-solving logic, real-world problems might require different approaches. Time management is also crucial!
- Clarify, discuss, but don’t stall:
While asking questions is encouraged, striking a balance is key. Aim to reach a brute force solution, optimize it, and calculate time/space complexity within the allotted time.
- Learn from others, but find your own path: Don’t get stuck on coding problems. Utilize resources like YouTube videos to learn different approaches and broaden your problem-solving horizons. Google seeks your unique approach, not a memorized solution.
- Feedback is your friend: Request a short follow-up call with your recruiter to gain valuable insights into your interview performance.
- Rejection is a chance to grow: Google has a 6-month reapplication period. Use this time to refine your skills and come back stronger! I will be re-applying again in January 2025 and would document the process again!
I’m especially grateful to fellow Googlers who provided invaluable support, influence and guidance throughout the process. Their encouragement helped me manage interview anxiety and motivated me to keep learning.
This experience has been incredibly rewarding and most importantly, it has given me the exact picture of where I lag as a developer and I can’t wait to apply at Google with better preparation this time.
Here’s my portfolio, Github and LinkedIn for anyone who would like to stay in touch and say Hi!
Top comments (0)