I recently got a chance to take part in Google’s foobar challenge, thanks to Manik Narula who gave me a referral link.
For those who don’t know about the foobar challenge, Google Foobar is Google’s secret hiring challenge. Google uses this to hire some of the best developers around the globe which they think can be a good match for their organization. You can read more about the foobar challenge here.
In this article, I’m just writing about my journey and my thoughts on the foobar challenge.
How Did I Get In?
A friend of mine, Manik Narula, got the chance to take part in the challenge. After completing 2 levels (out of the total 5), he got a referral link. Manik was kind enough to invite me to the challenge.
After going to the link, I was welcomed with this screen:
After this I was asked to sign in using a google account. I did and that is how I got in.
The Coding Problems
The challenge consisted of 5 levels. Each level had a varying number of problems.
- First level – 1 problem
- Second level – 2 problems
- Third level – 3 problems
- Fourth level – 2 problems
- Fifth level – 1 problem
First and Second Level
The first two levels were a breeze. To solve these problems I just needed to have basic computer science skills like array sorting and searching, arithmetic and geometric progressions etc. The easy stuff.
Third Level
Third level onwards, the challenge started to get interesting. Out of the three problems, I could only solve one of them without the help of Google. The other two problems weren’t straight forward. I had to learn about complex mathematical concepts like absorbing markov chains and distinct partitions (number theory) to solve these problems.
Overall, this level was fun. The problems were challenging but not impossible. I had to use my existing skills plus I also had to learn a few new concepts. It was a nice combination of coding and googling.
After completing this level, I was asked to fill my personal details like name, email, link to my portfolio etc. so that these details could be forwarded to Google recruiters.
Needless to say, I was ecstatic after this level: I had solved the problems comfortably and I had submitted my details to recruiters at Google.
Fourth Level
The fourth level had two problems. I was surprised to see the first problem because it was pretty straight forward. It was a maximum flow problem and didn’t require much effort to solve.
But the second problem. This is where I was flummoxed. It was a ray tracing problem and it was out of this world. It felt like a problem which was set by an engineer who wanted the world to suffer.
I spent 7 days on the problem and still couldn’t solve it. Eventually I found a blog post written by a person who solved the same challenge. After going through the explanation, I was finally able to solve it.
Fifth Level
By this level, I was tired and wasn’t interested in spending any more time on this challenge. Especially considering the fact that the number of engineers Google hires through this challenge is really less.
I thought about not requesting the last problem, buttttt I have a mild case of OCD and I couldn’t really leave the challenge unfinished. So I did what most engineers do, I copy-pasted the solution from a GitHub repository and I was done.
My Honest Opinion About The Challenge
The challenge isn’t really relevant nowadays. The purpose of the challenge is to be exclusive and help Google hire the best engineers in the world. However, it’s not really exclusive. There are multiple blog posts and videos on the internet which teach you to get access to the challenge. You just need to search for some specific terms 20-25 times.
Also, some of the questions don’t even test your computer science skills. These are over the top questions focusing on maths and physics. I don’t think it’s fair to ask someone to be good at computers (algorithms, the latest languages and frameworks etc) and also be a genius in physics.
In the end – It’s a fun challenge if you want to work your brain, but don’t take it too seriously. I’m pretty sure a lot of good computer science engineers would fail to solve a few problems because the amount of maths/physics required to solve them is astounding.
I haven’t been contacted by Google yet. If I do, I’ll update this article.