~/.file

~/blog/google-job-interview

Interviewing at Google: What I Learned by Failing the Technical Round

  • #career
  • #interview
  • #algorithms

Overview

Short story long: over the last few weeks I started applying for a new role as a software engineer, and trust me, it was not an easy time. So I was genuinely surprised when a headhunter from Google reached out to me directly, asked if I wanted to talk, and asked for my resume. Super friendly guy.

I thought: why not. It is a great opportunity, and he came to me. Worst case I gain some experience and find out first-hand what a Google interview actually looks like.

Spoiler: I did not get the offer. But I still think it was one of the most useful things I did this year.

The Screening Call

I scheduled the screening call, we talked, and he decided to move me forward to the interview stage.

First time being interviewed by a huge US tech giant, one of the best tech companies in the world. A few years ago that felt like a dream that would never happen, and here was Google inviting me personally because my profile matched their standards and ticked their boxes.

The Gap I Already Knew About

Here is the honest part: I am a pragmatic programmer and a problem solver.

I had heard about Big O notation, time and space complexity, data structures and algorithms. I had solved some LeetCode problems and hundreds, maybe thousands, of Codewars katas. But I do not have the academic CS background, and I knew it.

So I decided: if I got this opportunity, I would spend real time learning. I went to work on:

  • sorting algorithms (bubble sort, insertion sort, counting sort),
  • binary search,
  • the two-pointer technique,
  • prime factorization,
  • hash map lookups,
  • linked lists,
  • recursion,
  • and Big O analysis for both time and space.

I also started reading Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People by Aditya Y. Bhargava. Great book, by the way. I recommend it to anyone starting out with algorithms and programming.

Somewhere in the middle of this I started getting fascinated by computer science itself, and I began looking at my own job in a completely different way. The work is so much more than language syntax, a basic for loop, and knowing an API.

Two Interviews to Prepare For

After the screening, I was invited to two separate interviews:

  1. SRE/SWE technical interview (Site Reliability Engineering).
  2. Leadership and Googleyness interview.

Google sent me a lot of resources and videos about how to prepare and what they expect. I combined those with my own preparation, and I focused almost entirely on the technical side, because I was fairly confident the leadership and culture-fit part would not be a problem.

Spoiler alert: I was right. That interview went really well.

For that one, the simple STAR method (Situation, Task, Action, Result) did the job. They mostly wanted to understand how I approach non-technical problems. I prepared for it about 15 to 30 minutes before it started.

How I Prepared for the Technical Round

The technical interview was the one that needed real work. Alongside the algorithms book and LeetCode problems, I did two things I actually enjoyed:

  • I built my own AI tutor with Claude. I used it to simulate interviews and to ask a lot of questions along the way. That last part mattered: my Google HR contact told me directly that asking plenty of questions during the interview is the way to go.
  • I vibe coded a game in Godot to train and visualize algorithms. Years ago I was really into gaming, so I figured learning by playing might actually stick.

Interview Day

I am not a native English speaker, so I was a little worried about that. Honestly, I should not have been.

I did all the preparation steps: went to the page, accepted the protocols, and joined the Google Meet at least 5 minutes early like they asked. There was also a note in the instructions:

If the interviewer does not show up within 10 minutes of the scheduled time, send a message to this email address.

So I waited. 11:00 came. One minute. Two minutes. Three minutes.

And I caught myself thinking: “maybe they will not show up and I do not have to stress about any of this.” My stress actually dropped a bit while waiting.

Then they showed up.

Round One: Leadership and Googleyness

We started chatting, and it went really well. I answered with confidence and without hesitation, pretty much like a dream run. We ended the call with smiles on both sides.

I thought: nice, that went really well.

The 30 Minutes In Between

I had about 30 minutes before the next call. I went to the kitchen for a fresh glass of water with salt and lemon (my homemade electrolytes, to stay sharp), stopped by the bathroom, and got ready for round two.

Round Two: The Technical Interview

This time everything was on time. Quick introductions, then straight to the technical question.

The question was a little too complicated for me, and I was not able to solve it. I tried. I tried to ask the right questions, but there was not much to ask about, which was a pity. I spent around 32 minutes on the problem out of a 45-minute cap, and at about the 35-minute mark the interviewer called time.

Then something nice happened. She asked if I had any questions at all, and it was clear she just wanted to keep talking. I said I did not want to waste her time, and she replied: “don’t worry, I have plenty of time.” So we chatted about her years of career at Google and how they actually work there. I will not go into details, but some of what she said genuinely surprised me.

The Result

The next day my Google HR contact reached out about the results.

He asked how my experience felt, and I told him it was really good. Then he told me what I expected: one part went really well, the technical interview did not, and he could not invite me to the final round.

I was not surprised at all. I did fail the technical assessment. It also feels a bit like a roll of the dice: with a different task, there is a real chance I would have solved it.

But the more important part is what he said next. I have his contact, and after 12 months I can message him directly and he will organize the interview again.

So I finished this with more knowledge and a direct contact at Google, with the option to apply again in the future. That is a good deal.

Final Thoughts

This was definitely not a waste of time, especially compared to some other interviews I went through recently. One of them was a 3-hour coding assessment followed by a 1-hour technical call, and even though I scored 94/100 on the assessment, I got rejected. But that is a story for another day.

It was a great experience, and it made one thing clear to me.

This time I will focus more on raw CS: algorithms, data structures, and a lot more LeetCode problems, so I am actually prepared when the next opportunity shows up.