Preparing for an interview? Check out Cracking the Coding Interview
Published on

Google | SDE | US | July 2023

Author
  • Shared Anonymously

Offcampus Opportunity

Disclaimer: As per non disclosure policy of Google, we cannot reveal the exact questions asked during the interview, hence I have tried to find similar leetcode problems to give an idea on the difficulty level and stuff.

<br>

Start of the Process

In the beginning of July, I had my Google interview lined up while interning for Google US in their Site Reliability Role. The HR got in touch and set up the initial phone screen. The first question was like a puzzle involving intervals, kinda similar to the interval list intersections problem on LeetCode. I managed to solve it and even tackled the follow-up questions.

However, things took a turn as Google announced a hiring freeze when my technical interviews were scheduled. After a few weeks, I decided to reach out to the HR. He was really helpful and forwarded my resume to other teams. The positive feedback I received from one of those teams was a morale boost.

Interview Rounds

  1. First Round - Technical Coding:
    I was faced with a challenge similar to the "My Calendar III" problem on LeetCode. It was labeled as "hard" and threw me for a loop initially because the question had a twist, and I wasn't completely confident about Segment Trees. Despite the struggle, I managed to break down the problem logically and explain my thought process to the interviewer. They seemed satisfied with my approach and asked me to implement it. Although my code had a few syntax errors, the logic was spot on. The interviewer overlooked the syntax issues and liked the optimal approach I presented, considering various scenarios. Unfortunately, we ran out of time to delve into complexities.

  2. Second Round - Technical Coding:
    This round presented me with a tricky task: using four cards with numbers from 1 to 9, create an expression that evaluates to 24 using basic math operations and parentheses. This was quite a challenge, and I initially stumbled. My first solution wasn't up to par, and the interviewer questioned my choices of data structures. After reflecting on my approach and discussing it with the interviewer, I improved my Depth-First Search (DFS) approach, focusing on handling different cases and using a set to prevent duplicates. This time, my solution managed to pass the test cases, and the interviewer seemed satisfied with my approach. We even delved into discussing time complexities.

  3. Third Round - Behavioral:
    This round was more about discussing my past experiences and how I handle various situations. I shared about my family, work experience, skills, and touched on my projects, open-source contributions, and achievements in hackathons. It was a more relaxed and positive round.

  4. Fourth Round - Technical Coding:
    By this point, I was quite drained. The question revolved around generating a sequence of digits that remains the same when rotated 180 degrees, essentially a number that looks the same upside down. The task was to find all such numbers of a specified length 'n'. While I initially struggled to come up with an iterative solution, I eventually managed to create a recursive solution that passed the test cases. We discussed time complexities and core concepts.

  5. Final Round - Googlyness and Logical Puzzles:
    This round was a mix of fun and challenging puzzles, and I managed to navigate through them fairly well.

After the rounds, I was asked to wait while the feedback was reviewed. After a brief period, I got the news that my feedback was strong and would proceed to the Hiring committee. It took a bit of time to get the final response due to some team members being on leave, but in the end, I was thrilled to learn that I had succeeded.

If I were to offer advice, I'd suggest focusing on Graphs and tackling difficult DP questions. It's okay to get stuck, just make sure to ask relevant follow-up questions.

<br><hr>
VERDICT: SELECTED

ReportMark as Helpful