Today I got accepted for an Internship at Google this summer! This is so crazy.
I haven’t yet come back to my senses. There’s so much I want to write regarding this, mostly about the process so far, which started on September 12th (exactly 5 months ago!), specifically because there’s some people in my university afraid or unsure of applying (even if university recruiters try to motivate people to do so), so I believe a personal account of my process so far (regarding applying, the interviews, process structure, etc) would be really useful and motivating for some people I know (and perhaps some others I don’t, which still may find this interesting).
Of course, I have survivorship bias, since this is viewed from the eyes of someone who ‘made it through the process’, so there’s no guarantee that following the very same steps will yield the very same results, as I believe there’s always a substantial part of luck involved (people keep believing that their success was completely at their hands, or that because there’s plenty of focus on stories about people who succeeded, it may look easier, but its because almost nobody hears or tells the stories of failure, which can even come to really capable people but that bad timing/placing/luck caused them to fail), so the purpose of this is just being an account of my story, and that you should look into others’ stories, even if those are stories of success or failure, to build your own opinion, and to set on your own personal development path looking to achieve what you want to.
Also there are details I can’t talk about (like specific interview questions or other concrete details of the process), so I’ll try explaining it best as possible, also updating this blog entry every step along the process (which takes several months).
- The Visit From The Googlers, August 20th
- Sending the Resumé, September 11th ~ 12th
- The Technical Interviews, September 29th
- The Host Matching Process, November to January
- The Background Check
- The Visa Process
- The End… Or The Start!
1. The Visit From The Googlers, August 20th
|The Googlers||The Audience|
(The leftmost guy, Andrés, is an engineer at Google, graduated from my university, and is someone whom I admire in a strange ~ positive way! Also, all three of them and an unseen fourth are Colombians :-P The pictures are by Miguel, the rightmost guy, and a terrific human being).
Every year some Googlers (engineers and university recruiters) do a tour across several universities from many countries (I think that they try sending Googlers native from a country to that country if possible) to do talks to students about the prospect of doing an internship, or better yet, working full time for them. The engineers talk mostly about the work environment and the cool things (a.k.a perks) they have, the incredible projects they work on, and how working on the products of such a critical company requires technical skill and dedication and can lead to very rewarding and fulfilling work experiences.
(I personally believe that the perks are nice, but shouldn’t be the most important factor when choosing a job. Of course one wants to work in a great place and feel comfortable, but then, what good is a place that offers you a ton of stuff to make you feel comfortable, but what you do there isn’t rewarding or fulfilling? It would be like trying to lure people into an awful job just because of the benefits. At least it seems Google is a mix of both good things, a comfortable workplace with great perks, and getting to work on really neat stuff! Also, they cover many basic needs, which helps in the ‘landing’ or ‘transition’ of people coming from abroad).
Then, university recruiters deal with questions more related to the process of applying, resumé advice, etc, but it doesn’t mean that you can’t apply if Google doesn’t visit your university! Of course you can!
Then, to engage students into asking questions to the Googlers, or answering tricky questions from them regarding Google trivia or things said previously in their presentation (for those really paying attention), they gave things like key chains, t-shirts, pens, etc (and in past years, lovely things like this). But this year, there was an even better prize, a Chromecast, just a single one, and I won it! It wasn’t related to asking or answering questions, but a small challenge they posed, one really related to their actual interviewing process.
They gave everyone interested in participating a white, empty flashcard, and a pen. Then, they said ‘In that flashcard, write a program that will read several lines from the standard input, and will output them in the same order, but skipping repetitions’ then whenever people finished, they should hand over the card and wait for the winner to be announced (now that I think about it, this is like the UNIQ program in UNIX). At first it seemed easy, but there was a time constraint (and also other people running for it), and it had to be done by memory, no way to use an IDE for syntax checking. I tried to keep it cool but nonetheless felt pressured, because hey, it was a Chromecast! Still, I gave them the flashcard (first!) but the winner wasn’t who did it first, but an engineer checked the code, and if it was valid, it would be inserted into a bag, so that someone in the end would pick a flashcard from it randomly, and that would be the winner. They asked someone else to draw the flashcard (the lady at my left, Andrés’ mom) and it was mine!
|What Makes Google What It Is||Andres’ Mom, Me, and Miguel|
The lesson about this small contest, is that it really relates to how their interviews are. The interview problems are meatier of course, but basically they consist of questions that are not that hard themselves, but that involves knowledge of data structures and algorithms, that you are under a time constraint, and that you don’t have access to an IDE for syntax checking (in the past I think people used to write code in a sheet of paper or a whiteboard via videoconference, but now you write it in Google Docs for the interviewer to see it in real time).
I was myself amongst the people afraid of applying, doubting of my own skills and not really sure if I would make the cut, but Andrés told me that I should really give it a try, that it wasn’t that hardcore to make it through, and that applying is better than not even trying, and that was true, because not doing so results in a 0% chance of getting in, whereas trying would increase that chance a bit heh.
2. Sending the Resumé, September 11th ~ 12th
I followed their resumé building guidelines, and submitted it on the 11th. By the next day, I got contacted by a recruiter asking me to arrange dates for the technical interviews.
I’ve heard many people don’t even make it past this first screening and are not even called for interviews, so your resumé has to make a good first impression. Also, I don’t know if a human does the first check anymore, as I’ve heard some places pre-screen resumés with automated software looking for certain keywords as a pre-filter step. My advice at this point is to make a resumé no longer than 2 pages, and list the most substantial stuff, because even if a human checks it, I bet they don’t take longer than 30 seconds rapidly skimming through it due to the high volume of candidate submissions they are getting.
By the way, when filling the application form there’s a field for indicating if you know any Googler, kind of a recommendation field. I sorta know two of them, not friends, just acquaintances, but I didn’t put them in there because I really wanted to earn this myself, not with the help of someone inside.
Also, not everything is awards, contests and grades. Sure those may help, but they told us they look for actual work experience, like having been a teacher/research assistant (teaching others is very hard but very rewarding), having contributed to projects (open source, personal projects, etc), having worked with a diverse set of tools/languages (not being a one-trick pony), and the extracurricular courses you’ve taken (which show a huge desire for learning outside the classroom).
3. The Technical Interviews, September 29th
I indicated 5 potential days for the technical interviews, and they choose one of them, to assign both interviews to that day, almost back to back, with a bit of time in between.
My interviews were both scheduled for September 29th. The structure of each one was pretty straightforward, it was with an engineer from any area, who introduced itself, mentioned its area of work and perhaps other bits about its experience there (it makes things a bit chattier, like 5 minutes of lets get to know each other!) and then the interview starts.
They give you a problem, in a Google Docs file, and you’ll write code in there for both to see in real time. No access to documentation. No code completion. No syntax highlighting! You talk via their Hangouts platform, or in a regular Cellphone/Phone call. I STRONGLY suggest talking via Hangouts, my firsthand experience is that internet calls are a thousand times better (regarding quality and stability) than phone calls, specially if its an international call.
Also, I have a hint of my own: don’t rush to start writing code right away in the document, if there’s something not quite clear from the problem statement, or there are things you think could be implied from it but are not sure whether to consider that implication true or not, ask first, don’t make assumptions. Also try to make it chatty, its not like on the other end there’s a teacher just evaluating you, its a person that may give you hints (though try to not rely much on that) and also engage in thoughtful conversations about the approach taken for a given problem.
I then waited for the result to come, as the recruiter said, it would take 1 to 2 weeks, but it came the next day! I guess that I applied very early, when there weren’t that much people taking interviews. This is then another advice, apply as early as you can, so you get results faster, and if it doesn’t goes through, you get to evaluate other options elsewhere while there is still time.
You can actually get called for a third technical interview, a friend had to do it, but I’m not sure what are the reasons for this to happen. Is it that you did really good on an interview, but not on the other, but still they want to give you the chance to redeem yourself? Who knows.
But still, I consider this part of the process has much to improve. At least they’ve come a long way from past times when they were very strict with GPAs and brain teasers, but there’s still parts of it where I believe they can do better. Surely technical interviews with data structures and algorithms questions are important, but this is just an aspect of what constitutes a good Computer Scientist or Software Engineer.
This strict filtering depending on solving two problems and not talking through more thorough topics allows them to easily remove a lot of potential candidates, seeking to weed out false-positives (not very skilled ~ capable ~ experienced people getting through the process), but in the process it also causes several false-negatives (very skilled ~ capable ~ experienced people that for one reason or another didn’t do good here).
There could be more thorough challenges for the candidates to assess knowledge and experience, like thinking about system design, but such thorough things are more time consuming to evaluate at this stage considering the amount of people (it must be harder to evaluate whether a system designed by someone makes sense than evaluating if someone came to an optimal solution to a data structures and algorithms problem). Later in the process there’s indeed this kind of assessment, but you can only get there if you make it through these two interviews.
4. Host Matching and Interview, From November to January
Post still in writing
5. The Background Check
Post still in writing
6. The Visa Process
Post still in writing
7. The End… Or The Start!
Post still in writing
*The process is far from over, there’s still the Visa thing, but as far as Google is concerned, I got past their interviews and their project matching, which makes me really happy and optimistic for whats about to come! Once the Visa process has finalized, I’ll update this blog entry to detail very thoroughly what my experience of this whole process (from the moment of applying to the moment of getting the visa) has been!*