The Google Experience

A couple of years ago I was typing a search on Google about dependency injection, and the search screen fell away to a dark terminal window that said."We like the way you think". It turns out that Google uses their search platform as a recruiting tool. Since I was researching things that applied to their technology, I was invited to work through five problems, with the potential of getting an interview with Google at the end. 

I sent a link to the shell to a friend of mine and asked if he had ever seen anything like this. I thought it was really cool. He sent me a reply telling me that he wasn't invited, so he couldn't use the shell. He also sent me an article that explained what was going on and how the process worked. 

The first thing to figure out was the limited shell that was presented. The help command gave me instructions for how to edit and run my code. There were a total of five algorithms I had to write, but you had to finish them in order. The code had to be written in Java, and when you were finished with the algorithm, the code was run through an automated unit test. If it passed, I got to go to the next one. I was given 24 hours to finish each problem.

I have programmed in Java a bit, but I use C# for the majority of my coding which is very similar to Java. What I did was code the solution in C#. Then I would test it in Visual Studio to make sure my logic worked, and finally I would translate the code to Java and paste it into the Google shell. Then for each problem, I would run the code against the tests, and I would get a pass or fail. There wasn't any debugging info given for the failed test, so it was really tricky trying to figure out how to resolve errors because they weren't syntax errors, they were logic errors. 

I made it through the first couple of problems pretty quickly, but they did get progressively harder. I had 24 hours to work on them, so I would work during the day and come home and work on one of the problems. After getting through four of the five problems, I started thinking I would actually get an interview at Google. I started thinking what a life changing opportunity this could be.

I had really mixed emotions about the idea of working for Google. As a developer, Google is like the holy grail of programming jobs. Everything about the company from the culture to the constant innovation is really exciting. I started looking at their campus in California, they had bikes all over their campus, and I saw they had a cycling group that rode to work everyday together. I really started thinking this could be my dream job come true. The other side of the coin is that all my family and friends are in Michigan. I was getting close to turning 50, my daughter was getting married, my son was still figuring out what he was going to do with his life, and I had pretty deep roots. Switching jobs and moving away would be a really massive change in my life. 

I got to the fifth and final problem. I coded it in C# using Visual Studio then transferred it to Java in the shell environment like I had done previously. I ran the program, and the first four tests passed, but the final test failed. I remember staring at the screen thinking "What? What is failing?". I went through the logic over and over, but I couldn't find any problems. I couldn't figure out what I was missing. I kept thinking they must be looking for something that I am not thinking about. I kept going through the requirements and working on my algorithm, but I couldn't get the last test to pass. 

In the end, I never got the algorithm to pass. The deadline passed, and I was told I had failed, but to keep searching and maybe I would get another opportunity. I remember thinking, I almost made it, isn't there a consolation prize? Of course it's Google, there is no prize for second place. The worst part of it was that I never knew what the error was. If I could have just seen what my error was, I could have had that duh moment and at least understood how I failed. I didn't get that, and I am left never knowing how I missed my opportunity to interview at Google. 

I think a small part of me was relieved that I didn't get interviewed by Google. I think it would have been an amazing opportunity, and I would probably really love working there. It might even be the best thing that could happen to me, but I am really a creature of habit. I get into routines, and I like them. I love doing new things which is why I am always working on updating my skills, but I like to have a balance of routine and new experiences. My daughter got married, and now she is having her first child, so I am going to be a grandfather. Staying in Michigan means I get be around for that. 

How about you? Have you ever had an intense interview experience? How about a life changing offer that you accepted or rejected, and how did that affect you going forward? Let me know in the comments.

Comments

Popular posts from this blog

Asp.Net Core with Extended Identity and Jwt Auth Walkthrough

File Backups to Dropbox with PowerShell

Dynamic Expression Builder with EF Core