Hi everybody. In this small article, I want to share my experience about how I failed a tech interview with Google.
Some years ago, I was interested in getting a job at Google or any other world-famous IT corporation, such as Microsoft, Amazon, or Apple. At first, it was just a thought, but then I decided to try it. I understood that it will be not so easy, and I spent a couple of months sending my CV to many different job positions.
It’s hard work cause every day you have to go to a Linkedin page or a company website and monitor what they have, figuring out whether these open jobs match your skills or not. But in another way, this is very interesting. You can understand which specialists are needed and what the trends are. But, let’s move on.
One day, I found an e-mail from the Google HR team; they were interested in my CV and wanted to discuss an opportunity with me. WOW!!! That was my first reaction and biggest emotion for that day. I couldn’t believe that this was happening. I quickly typed an answer, and we scheduled the first call.
The first call, in all such activities, is an introduction call with HR. It’s just for 15-30 minutes. During this call, HR will tell you about the interview process, ask some general information about you, and answer your questions. I had a nice small talk with the HR manager, and after the conversation, we scheduled the first tech interview.
The interview process with Google consists of several steps: an introduction call, a pre-tech interview call, and an on-site interview (or online as it was during the COVID period).
My first pre-tech interview call was with a guy from Norway. One of the great plusses of such calls is that you can speak with people from any part of the world. This interview was easy. We just discussed some basic topics, like discussing some real-life cases.
For example, one of the questions was how we can implement a loading spinner, and you need to say some variants: CSS, simple word Loading, a variant with Canvas, or any other of your ideas. The main thing is to say some variants and discuss the plusses and minuses of such an approach. This interview took 45 minutes, and after that, I received an invite to an on-site interview.
An on-site interview is not a single conversation. It’s a series of interviews, 5 or 6 based on your target position. And all these interviews take place in 1 day. You just have 5-6 interviews, one by one with a break for lunch. Usually, it will be 4 tech interviews, 1 interview about system design (for senior positions and higher), and a behavioral interview.
I personally had 5 interviews, but one of them was canceled as the interviewer didn't have a chance
to join the session. All these calls take 45 minutes.
The first one was with a guy from Japan, a very smiley person with perfect jokes :). The task for this call was to check if the target words are anagrams of each other. Here, it is probably worth talking about what the main tasks in these interviews are; tasks with data structures and algorithms. And I started to prepare for this too late.
As a self-educated developer, I had never learned data structures and algorithms before. This was my main mistake in my self-education process and during my first years of working in software development. I started to learn all these just before these interviews.
But let’s go back to the story. As I mentioned, the first task was with anagrams and I could resolve it.
The second interview was with a nice woman from Hungary. She told me that she previously worked for Fitbit, but it was acquired by Google. My task for this call was with queue and map structures. The idea was to implement the logic of queues in restaurants where we have some free spaces and groups of people in the queue. I also resolved this task successfully.
The third call was canceled as I told you previously.
The last tech call during this day, but not the last interview, was with a guy from Denmark. The main task was with graphs, and this was a total fail cause I didn’t have enough time to learn and understand this structure and main algorithms to work with it.
The last session was behavioral. Let me explain what this means. During this call, the company tries to understand what type of person you are. How you will work in a team, with people of any race, will you comply with the company policies, your motivation, etc.
They can ask you about some situations and how you will do in them. The interview was a very interesting one with a guy from Spain. We discussed many interesting cases and some funny stories.
After all these interviews, I waited for 1 week for the final results. And, I think, as you already have guessed, the final result was negative. I got feedback that all the interviews were good, except for the call where we discussed graphs. Due to this, we couldn't continue the process.
Of course, I was sad but I've taken some lessons from this story. It is very important to learn and understand data structures and algorithms. And not only for interviews but also for your better understanding of how they work and how we can use them in our everyday work.