Initially, I received an email from a Google recruiter asking if I would consider a position at Google due to my experience. I graduated with an MSc in Computer Science over a decade ago. I replied that I was unfortunately quite busy at the time. After a while, the recruiter contacted me again, asking if I was perhaps available now. I decided to proceed because I wanted to know what kind of projects they could offer.
He then asked me a few easy questions. Next, we scheduled a technical interview call with an engineer. The following phone interview was surprisingly easy and enjoyable. After one week, I received very positive feedback and was invited for on-site interviews at one of their European sites.
We set up a date not too far off – two weeks later. I was informed that the on-site interview would consist of five rounds and would be more in-depth and challenging. I was also given some materials and book recommendations. During those two weeks, I did some preparation, refreshing my general knowledge of algorithms and coding tricks, and skimming through the recommended books. However, I didn't want to spend too much time on it, as it had been barely used in my professional work, expecting that they would want to evaluate my specialization.
Some time later, I arrived at the site. I was welcomed by an HR lady, very nice and cheerful, and she showed me to the interview room. It was pretty small, with no windows. I would have expected a more comfortable interviewing space from such a large company.
Then, I was introduced to the first interviewer. I was informed that he was a fellow countryman. He briefly said hello, informed me that we would be speaking English only from then on, and started writing a generic coding puzzle question on the board. There was no introduction, no chit-chat, and no questions about myself or my experience.
Overcoming the first impression, I first wrote a brute-force solution, stating that it was a brute-force approach. Once I finished, he took a photo of it with his phone, then asked, "Can you make it better?" I started giving some ideas, but he just stared at me without any interest. Finally, he said he didn't understand what I was saying and gave a hint. I realized he wanted a modification of a puzzle from 'Cracking the Coding Interview.' I wrote the code. He again took a photo and left without another word.
The second interviewer was nicer. However, the second question was again a coding puzzle, with nothing to do with my experience, and quite similar to the first one. But at least this interviewer gave me feedback on the direction he wanted me to optimize, and we soon reached a good point. He said he got what he wanted, and we had some less formal chat.
The third interviewer was 30 minutes late, leaving only 15 minutes of his time! We rushed through a solution for caching database responses. Again, nothing to do with my experience! It was simple overall, but I only had 15 minutes to present my ideas. The interviewer was okay and matter-of-fact.
The fourth interviewer asked me how I would design some Google-specific stuff/systems. He looked like a higher-grade employee. And again, nothing specific to my experience! We talked quite a lot, eventually leading to the question of whether I knew MapReduce. I said I had heard of it but not really. He replied, "You've just described it." Weird!
The fifth interviewer started by pointing out that my CV was done in LaTeX, and he used to use LaTeX when he did his PhD (emphasizing PhD for some reason). That was the first time someone had commented on my CV. When I responded by saying LaTeX is programmer-friendly, he ignored what I said and just started asking an interview question. And again, it had nothing to do with my experience, and it was the third coding puzzle that day. I was feeling really disappointed. Regardless, I started clarifying the details and assumptions, gave the brute-force solution, and began optimizing it. I reached a certain point of optimization for read and write, but he then said he wanted O(1) on write, without mentioning read. I immediately gave him an answer that was correct but really ignored the write performance. He seemed irritated. The interview soon ended, and he escorted me out of the office and briefly said goodbye. That was the end of the on-site interview.
I left feeling really confused. It was nothing close to what it was supposed to be, according to the nice YouTube videos. I walked around the city a bit and then flew back home. Two weeks later, I received feedback from the hiring committee stating that my performance was "mixed." They said I coded well but my answers could have been cleaner and more efficient at times, so they decided not to proceed. No details were given about what was exactly wrong. They also said I could re-apply in one year. Yeah, I cannot wait to do that. Or, wait, I can.
Altogether, it was a negative but very valuable experience. I guess this process might work for a fresh graduate or a TopCoder fan, but if you want to get a job done and coding riddles are no longer fun because life is more about that, this process can be surprising for you.
On the phone: Write a set class after clarifying certain range integers.
On the site:
The following metrics were computed from 71 interview experiences for the Google Software Engineer role in Poland.
Google's interview process for their Software Engineer roles in Poland is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Google's Software Engineer interview process in Poland.