What do the challenges look like?
When you get invited to Foobar, the top of Google’s search results page slides open, revealing a dark background and the words “You’re Speaking our Language. Up for a challenge?”
If you agree, you’ll be taken to a page that fills you in on the program and gives you a set of commands you can type in to make the console do things.
Once you figure out what’s going on and get the hang of typing commands into the console, you can create an account (which saves your work for later) and access the first challenge. Mostly likely, you’ll find yourself working undercover as a minion for the evil “Commander Lambda,” who is trying to crush the Bunny Rebellion. As the story progresses, you will rise higher in the organization (completing a total of five challenges) until you can finally manage to use your coding skills take it down from the inside.
You can choose to write your code in either Python or Java, but either way, it’s a good idea to write it and test it in whatever editor you’re familiar with and paste it into Google’s solution file afterwards. I won’t make my own challenge’s details public, since it’s presumably ongoing, but level one only required a bit of creativity and some basic Python. All I had to do was write a function to take Latin characters and translate them into sequences of ones and zeroes. From what I’ve heard, though, the challenges can increase in difficulty quite quickly, so I’m waiting until I have more free time to solve the others.
Google will run the code through some test cases (some they tell you about, and some they don’t!) and let you know if you passed or failed. If you pass, you get the option to move on to the next challenge. Keep in mind that once you accept the challenge, there is a time limit, ranging from a few days to a few weeks. If you don’t complete the code in time or if your code fails Google’s test cases, the challenge is over, though you may get another shot if you can trigger it again.
How do you trigger Foobar?
For me, Foobar appeared after I googled the term “Raft consensus,” which is essentially a way to get machines to agree on shared values. Even though I’m pretty unlikely to ever actually use this algorithm (the Google search was just for research), Google doesn’t know that, so I got an invitation anyway.
Google has a few ways of bringing you in, but they’re not easy to find. Even if you know the URL, you can’t do anything with the site unless you’ve gotten an invitation first. One way is to search for a certain term, but it changes frequently, probably depending on their hiring needs at the time. As of this writing, Googling “raft consensus” seems to still be working (I’ve tried it across browsers, machines, accounts, and VPN connections, and it keeps coming up), but that could change anytime or be restricted by geographic area – there is speculation that only US-based Googlers can be invited.
Another possibility is browsing around Google’s developer pages and spending around five minutes on one. Some pages may then pop up with a tiny button on the top right that opens up an invitation to the challenge. An engineer wrote on LinkedIn of the way he managed to find it this way in February 2018, but I haven’t had any luck getting it to work.
There have also been reports of users investigating the code in Google Doodles (the little illustrations that sometimes replace the Google logo) and finding a way to access the challenge in there. The final way is by invitation. If you know someone who’s doing the challenge and they get to level two or three (it varies), they will have the option to send out an invitation to someone else. Play your cards right, and it could be you.
Conclusion: if Foobar_success == 5: return ‘Maybe you’ll get a job at Google!’
There are plenty of stories about people who got interviews with Google, and a few of those people even got in. The first confirmed hire was Georgia Tech computer science student Max Rosett. It doesn’t seem to be a magic bullet, though: making it past the challenges doesn’t replace every step of Google’s hiring process, and you’ll still have to jump through a few hoops to get a position at one of the planet’s most valuable companies. Regardless, the challenges are fairly entertaining, so even if you don’t succeed, it’ll at least be some enjoyable coding practice!