Failing at Google Interviews

I’ve participated in about four sets of Google interviews (of about 3 interviews each) for various positions. I’m still not a Googler though, which I guess indicates that I’m not the best person to give this advice. However, I think it’s about time I put in my 0.002372757892 bitcoins. I recently did exactly this to help my brother prepare for his interviews and the guy kicked ass. If he gets the job I’m going to take as much credit for it as I can ;)

During my interviews I didn’t sign a NDA, but I do respect the effort that interviewers put into preparing their questions so I’m not going to discuss them. That doesn’t matter though, because you probably won’t get the same questions anyway, and the algorithm stuff is far from the whole story.

This post is mainly about the rituals I perform during preparation for the interviews, and the lessons I have learned from them. I am of the strong opinion that everyone should apply for a job at Google.

Why Should I?!

Not everyone wants to work for Google, but there are valuable side effects to a Google interview. Even if you don’t think you want a job there, or think that you are under-qualified, it is a great idea to just try for one. The absolute worst thing that could happen is that you have fun and learn something.

A couple of the things I learned are algorithms for (weighted) random sampling, queueing, vector calculus, and some cool applications of bloom filters.

The people you will talk to are smart, and it’s a fun experience to be able to solve problems with smart and passionate people. One of my interviews was just a discussion about the good and bad parts (in our opinions) of a bunch of programming languages (Scheme, Python, C, C++, Java, Erlang). We discussed SICP and the current state of education, and he recommended some research papers for me to read. All the intriguing questions and back-and-forth made me feel like I was being taught by a modern Socrates (perhaps Google should consider offering a Computer Science degree taught entirely with interviews :P).

Sadly, a subsequent interview stumped me because I didn’t understand the requirements. Even the stumping interviews have given me a great chance to realise some gaps in my knowledge and refine my approach. I knew that it was important to get the requirements right, but this really drove it home.

I hope I’ve got you curious about what you could learn from a Google interview. If you are worried about the possible rejection, treat it as a win in a game of Rejection Therapy. You can re-apply as many times as you like, so you could also think of it as TDD for your skills, and you like TDD, right?

How To Prepare for the Interview : Technical

When you are accepted for a phone interview, Google sends you an email giving you tips on how to prepare. Interestingly, this has been a different list each time. I’ll discuss the one I liked the most. They only give advice on the technical side. I will also discuss what I think are some other important aspects to be mindful of.

First of all, you are going to want to practice. Even if you have been coding every day for years, you might not be used to the short question style. Project Euler is the bomb for this. You will learn some maths too, which will come in handy, and it builds confidence. Do at least one of these every day until your interview.

You will also want some reading material. Google recommended this post by Steve Yegge, which does a good job of calming you. They also recommended another post by Steve Yegge where he covers some styles of questions that are likely to be asked. Yegge recommends a particular book very highly – The Algorithm Design Manual:

More than any other book it helped me understand just how astonishingly commonplace (and important) graph problems are – they should be part of every working programmer’s toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. But the gold mine is the second half of the book, which is a sort of encyclopedia of 1-pagers on zillions of useful problems and various ways to solve them, without too much detail. Almost every 1-pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types.

I haven’t read the whole thing, but what I have read of it is eye and mind opening. This wasn’t recommended to me directly by Google recruiting staff, but one of my interviewers emailed me a bunch of links after, including a link to the page for this book. There was a recent review of this book featured on Hacker News. It is very good. The author, Steve Skiena, also offers his lecture videos and slides – kick back and watch them with a beer after work/uni.

If the size of The Algorithm Design Manual is daunting and you want a short book to conquer quickly (for morale reasons), give Programming Pearls a read. Answer as many questions in it as you can.

Additionally, Interview Cake offers a new approach, which systematises your technical preparation so you can know exactly what to focus on while avoiding becoming overwhelmed. It is a paid service, but they also have a free mailing list with weekly questions to keep you sharp (great for your long-game).

The phone interviews usually are accompanied by a Google doc for you to program into. I usually nominate Python as my preferred language, but usually they make me use C or C++ (they often say I can use Java too). I was rusty with my C++ syntax at the time, but they didn’t seem to mind. I just explained things like using templates, even though I can never remember the syntax for the cool metaprogramming tricks.

Speaking of tricks, you get style points for using features of the language that are less well known. I had an interviewer say he was impressed because I used Pythons pattern matching (simple example: (a, b) = (b, a)). List comprehensions, map/reduce, generators, lambdas, and decorators could all help make you look cool, too. Only use them if they are useful though!

How To Prepare for the Interview : Non-Technical

There will also be a few non-technical questions. When I did my first one, a friend recommended that I have answers ready for cookie-cutter questions like “Where do you see yourself in ten years?” and “Why do you want to work for Google?”. Don’t bother with that! Do you really think one of the biggest companies in the world will waste their time asking questions like that? Every candidate would say the same answer, something about leading a team and how Google would let you contribute to society, or whatever (great, but everyone wants that).

They will ask you about your previous work and education, though, and pretty much always ask about a technical challenge you overcame. I like to talk about a fun incremental A* search I did at my first job (and why we needed it to be iterative). You can probably think of something, don’t stress, but better to think of it before the interview.

And have a question ready for when they let you have your turn. Don’t search for “good questions to ask in technical interviews”, because if it isn’t your question, you might be uninterested if the interviewer talks about it for a long time. Think of something that you could have a discussion about, something you are opinionated about. Think of something you hated at a previous job (but don’t come across as bitter), how you would improve that, and then ask them if they do that. For me, I was interested in the code review process at Google, and what sort of project they would assign to a beginner.

I know someone who asked questions from The Joel Test. The interviewer might recognise these questions and either congratulate you on reading blogs about your field, or quietly yawn to themselves. It’s up if you want to take that risk (well, it’s not a big risk). I definitely think it’s better to ask about something that has the potential to annoy you on a personal level if they don’t give you the answer you want ;) it’s subtle, but people can detect your healthy arrogance and passion.

If you have a tech blog, refer to it. I’ve had interviewers discuss my posts with me (which they found from my resume). Blogs aren’t hard to write, and even a few posts on an otherwise barren blog will make you look more thoughtful.

Finally, the absolute best way to prepare for a Google interview is to do more Google interviews, so if you fail, good for you! ;)

Just Before the Interview

Here are a few things that help me handle the pressure before an interview.

One time I was walking to an interview in the city (not a Google interview) and I was really nervous, even though I didn’t care either way if I got the job. I thought about how the nerves wouldn’t be an issue after the interview, because I’d have already done the scary thing by then. I couldn’t time travel, but I instead wondered if there is a way to use up the nerves on something else.

There was a girl walking next to me, so I turned to her and said she was dressed nicely. She said a timid “thank you” and picked up pace to get away from me. I laughed at my failure, but suddenly I didn’t feel so scared about the interview. I think this is a great example of why Rejection Therapy is worth experimenting with.

So yeah, talk to a stranger. If you are waiting at home for a phone call though, another thing I do is jack jumps, dancing, or jogging on the spot just to make myself forget the other reason my heart is pounding so fast.

During the Interview

If you are doing a phone interview, answer it standing up (you can sit down after) and pace around a little bit. Smile as you talk, as well. You should also take down their name on paper ready to use a few times casually. These are tricks from the infamous How to Win Friends and Influence People. Maybe these alone won’t make you likeable, but I think it causes you to think about the other person and stop being so self conscious, which helps you to relax. You’ll be one charming motherfucking pig.

Take some time to think before answering, and especially to seek clarification on the questions. Ask what the data representation is. I’ve found that they tend to say “whatever you want”. In a graph question, I said “Okay, then it’s an adjacency matrix”, which made the question over and done with in ten seconds. The interviewer seemed to like that, so don’t be afraid to be a (humble) smart ass.

You might recognise the adjacency matrix as potentially being a very poor choice, depending on the nature of the graph. I did discuss when this might not be a good option. In fact, for every question, I start off by describing a naive approach, and then refine it. This helps to verify the question requirements, and gives you an easy starting point. Maybe you could introspectively comment on agile methodology (Google practises Scrum).

One last thing! Google schedules the interview to be from 45 minutes to an hour. I have had awkward moments at the end of interviews where the interviewer mentions that our time is nearly up, and then asks another question, or asks if I have any questions. It made me feel like he was in a rush, so I didn’t feel like expanding on things much. Now, I recommend taking as much time as they will give you. Keep talking until they hang up on you if you have to :) although it might help to say “I don’t mind if we go over, as long as I’m not keeping you from something” when the interviewer mentions the time.


Steve Yegge says there are lots of smart Googlers who didn’t get in until their third attempt (I still haven’t gotten in after my fourth, and I don’t think I’m stupid). As I mentioned, I’m writing this post because I found the process of doing a Google interview at all to be very rewarding.

It is important to reflect afterwards in order to reap the full benefits of interviewing at Google. If you did well, why? But more importantly, if you feel you did poorly, why? Google won’t give feedback, which can be a bit depressing at times. After each interview write notes about what you felt went well and what didn’t – this way you can look back if you don’t get the job, and decide what you need to work on. This post is the culmination of my reflections and the notes – if you decide to write a blog post, I’d enjoy reading it and will link it here.

If you want more blog posts to read about how to get better at Computer Science, I recently found this post by Matt Might to be a good target to aim for. Check out Ten Things Every Computer Science Major Should Learn by Macneil Shonle as well, and my previous post Advice to CS Undergrads (the links at the end in particular).

And as always, please read the comments below and add your own thoughts to the discussion. In particular, Sumit Arora gave some important advice that I didn’t cover.

Have you really read this far? Consider adding me to Twitter and telling me what you thought :)

  • g

    Have you removed all comments?

    • Yes, but hopefully not permanently. I migrated from Posterous over the weekend. There is a way to import my comments into Disqus, but it requires some hacking. I will get around to it in a week or two when I get time :)

      Edit: It turns out importing the comments is realllllllly tedious. I’ve tried 20 times (not an exaggeration). Disqus’ parser doesn’t tolerate Posterous’ output XML, and being remote it is quite difficult to debug :( and this script doesn’t seem to work anymore.

      Edit: Oh, and now Posterous is dead.

  • Ari Roux

    Hi Alex, kudos to your for being so persisting with interviewing at Google. I hope you’ve found it rewarding. All the best in your future endeavours and thanks for sharing your thoughts!

    • Thanks for the comment Ari! I did find it rewarding and enjoyable, and an efficient way to learn and benchmark myself.

  • n1te

    Hi Alex, great article. Couple of questions, were all of those interviews for Google Sydney, if so what positions did you interview for?

    • Hey n1te, thanks for the feedback :)

      Here is the timeline for my locations and positions:
      1. Product Manager in Sydney,
      2. Software Engineer in Sydney (this job wasn’t advertised, but they saw that I had a stronger background in programming that product management),
      3. Software Engineer in Mountain View, and
      4. Intern Software Engineer in Tokyo.

      • n1te

        It’s a bit frightening that you being a PhD CS student didn’t get the Intern SE position (I’m a Master of CS student myself). What would you say is more important to the interviewers, your math or programming skills? Also, was the interview for SE in Mountain View any different than the one in Sydney?

        • I wasn’t a PhD student at the time :)
          But a PhD isn’t the best indicator of ability anyway.

          It is competitive, which is why good people can be turned away. It does highlight holes in your knowledge though, which is what I especially took away from the whole experience.
          Everyone has holes in their knowledge… some people will be a better fit for various projects at a given time though.

          Anecdotally, programming. The thing is, I feel that the same areas of the brain would be used for math problems too. When trying to solve math stuff, you undergo a very similar creative process. To me they are the same. In case you disagree, I would say that the best talent to have would be to enjoy solving problems (mathematical, programming, or other). By extension this would mean welcoming a math problem, even if you don’t have a strong background in it.

          The mechanics were slightly different (programming into a Google Doc was a new addition) but other than that no. I think it would be the same either way now.

          Just a reminder though, this is all speculative ;) I only have a few data points to work with.

  • Rosso_R

    I had my first phone interview with Google Software Engineering position yesterday. I think I agree with you on all the aspects you mentioned. But what I would like to add though questions even though are not very difficult it is the time and the given moment you have to think and come up with code. I still have not heard about anything from them but my guess is I wont get to the next stage as they are pretty quick to respond to positive ones.

    • Thanks for sharing your experience. You are right, given more time and less pressure to perform the problems become much easier. I think interviewers would know this and take it into account, but it isn’t a perfect signal of talent. Unfortunately, I think interviewing may never reach perfection :)

      Hmm, I don’t think even positive interviews would have a follow up after just one day. I think it would be at least a week. But don’t let it deter you if they take much longer – it probably doesn’t mean anything other than that they are busy.

      Good luck!

  • Sumit Arora

    Here are my comments related to the Google Interviews.

    If you talk about the programming then :

    (Step-1) : You should have practical understanding of the Algorithms (e.g. When to use BackTracking, When to Use Divide and Conquer, Why double hashing required ?,Where brute force concept can be applied ?)

    (Step-2): You should have practical understanding of Data Structures e.g. (Practical use cases related to :when to use circular buffer , or when to use adjacently list )

    (Step-3) : You must practice several coding problems to implement the things which learn from Step-1 , and Step-2 (you may do the following choose any coding language for the choice of yours (C,C++ or Java or Python or PHP)

    Other than that :

    However other than programming you might need to understand the main concept for the interview is to keep the interview active and this requires some action from your side, such as the following:

    You need to talk

    You need to explain

    You need to discuss

    You need to express your views

    You need to understand clearly the questions given to you

    You need to understand the interviewer’s expression and mindset to un- derstand those questions

    You might need to ask appropriate questions to understand the question or any other discussion item.

    However other than programming you might need to look on the below points that can help you to understand the overall concept :

(Possibly that may help you to have further thoughts to think what extra you might need.)

    Why Google will not hire you ?,

    Here Google doesn’t mean the Google, it means any company which is very creative to introduce the computer science related products e.g. Google, Microsoft, Apple, Amazon, Facebook, ..or any one else which you feel to be a reasonable fit

    Please see the attached ppt, that provide few points that might be helpful to plan the missing things around you If exist.

    • Thanks for the contribution Sumit.

      I agree with everything you wrote. The algorithm stuff is covered in Algorithm Design Manual, but I didn’t say it explicitly.

      I recently read Cracking the Coding Interview (, which gave similar advice.

      I would like to add that even if you choose Python, you should be familiar with either Java or C++, because they will probably still ask you questions about those (those are the languages they use most for production code).

      And I’m glad you said that this isn’t just about Google. The fact that the company doesn’t matter has missed many people :)

      FWIW, my mistakes were specifically not understanding/clarifying the question. This is probably easier to remember to do if you express your assumptions and talk through your thinking more. It isn’t easy to master this without practice either. I’d recommend solving questions with a friend (take in turns to ask each other, but discuss it together).

      I’ll add a link to your comment in the article. Thanks again.

      • Sumit Arora

        Thanks Alex :-), for your reply :-)

  • hsenpaws

    Does Google informs us if we are not selected? I had couple of interviews via ‘hangout’, Its been 5 days since.

    I do not mind weather they inform or not, but i want to know if they do.

    • They do, but you might have to wait up to 2 or 3 weeks.

      • hsenpaws

        Thank you Alex

        • No problem! Best of luck (:

          • GS

            Hi Alex, following up to hsenpaws’s question – I’ve only had one round so far and have not heard back. Will they inform me if I’m not making it to the next round or should I consider no news as bad news?

          • HI :)

            They will contact you either way. It can take a few weeks sometimes. I think its because they collate a bunch of candidates results, and then discuss them all in a meeting. They have a lot of people applying at any given time, and I bet they don’t have a meeting every day. Just sit tight for now ^^

          • GS

            Thanks a lot Alex! :)

          • Thanks for commenting! Good luck with it :)

  • Icelander

    Great article Alex, thanks. I have been doing some serious preparation and I now have some good idea about how the google interview might be like. But, after reading the article, I am wondering if my preparation will be a waste if I cant clear interviews from the top 5 companies(Google, Microsoft, Apple, Amazon, Facebook). Or are there other companies that do CS-algo based interviews? If yes, where to find them?

    • I have interviewed with some other companies too, and most of them asked me algorithm style questions (the ones that didn’t already knew me personally). I don’t think it would be a waste to prepare for algorithm questions :)

  • Nitish Thakur

    Thanks Alex for sharing your interview experiences.Actually I want to go to google and with your post i have got quite clear idea about how to prepare for google interviews…..

    • Glad to hear you found the post useful :) let me know how things turn out!

  • DT

    Thank you for the article and taking time answering comments! I find the article still being relevant even 3.5 years later. Great links and suggestions too!

    I have had my phone interview today for Test Engineer in Mountain View. I was 50 min long. I answered the question about testing google maps and then there was pretty strait-forward coding task in Java: Given an array of integers, please write a function to print a pair of integers from the array whose sum is closest to zero.
    I came up with the approach to solve this but struggled to get rid of bugs (I recently self-educated in programming). Then I was asked if I had any questions. I did ask few. I was very nervous during the interview and mentioned it few times to the interviewer. After the interview I finished the task and sent email to the recruiter thanking her and added my solution to the email, that to show that I don’t give up and get things done. I read somewhere that proper communication with the recruiter may help.

    Now waiting for the feedback…

    • Thanks for sharing your experience DT, and best of luck with it :)

  • Randomer

    Hi Alex, great article. I just gave the on-site interview at Google and thought it went OK. Do the recruiters inform you of their decision even if they are not hiring you? Or do we just have to wait for a couple of weeks and move on? What’s your experience with Google rejection notification. Thanks

    • Sorry for the late reply! I guess you have figured it out by now, but yes, they will contact you regardless of the outcome.

  • Gaby Lopez

    Hey, I think it is great that you don’t give up. It’s been three years since this post. Did you finally get in?

    • Hey, Thanks Gaby! No, I haven’t. I did interview once again (this time I did a full day of in-person interviews – super fun), but I’ve really been focusing on my PhD since I wrote this. I’ll probably apply again though (and many other places. I might do a follow up post if it’s something people are interested in).

      What about you? Any plans to interview there (or somewhere else)?

      • Gaby Lopez

        I had an interview via hangout today. I totally effed it up and I don’t expect to hear from them again. But that’s OK. I already have a job and I only applied because they’re google, not actively looking for a new job. Would have been nice to work there, but no one has died from their rejection, I think. Best of luck with your PhD!

        • Ah damn. Hope you had fun all the same :)

          Yeah. It can feel like a big deal before the interview though ;) but if you take a step back and realise you are doing fine as you are, then it’s just a good learning experience either way.

          Thanks! Best of luck to you too! ^^

  • Can i opt Ruby language?

    • You can ask. It really depends on the interviewer though.

      Even when I opted for Python (one of the official languages used there) it didn’t guarantee that the interviewer would know it. Some interviewers are happy for you to explain the syntax as you go, but others might insist you use C/C++ or Java.

      That’s my experience anyway. I think the opt-in part is so they can *try* to find good interviewers for you (but it probably isn’t that high priority for them, especially if you don’t opt for a language they use officially).

      If you know another language that they do use, I’d suggest to focus on that instead (you won’t have to waste any cognitive power on switching languages unexpectedly).

  • Kav Nico

    Now I’m working with java barcode creator, like many people, I also hope I can work in Google, but I don’t have enough experience, so google interviews is difficult for me. But still thank you a lot, your experience learn more. Hope your dream come true, good luck.

    • Thanks for your comment. Out of curiousity, have you gone through the process before?

  • jasmeet sasan

    this is an awesome post! I made it till the end! :) Fucking great links! Skeina is great as everyone confessed! Thanks for putting it all together!

    • Thanks dude! Glad you liked the post, and especially for mentioning the quality of the links. I want to post more often, and knowing that people like the links makes it easier for me to justify writing posts curating ideas and linking them together (my more recent posts were explaining my original research… much harder to write). Cheers!

  • Shay

    Wow Alex,

    Thanks for all the efforts in putting this together, not to mention replying to all the folks here!
    I really find your actions (reapplying, taking notes, taking those notes into action, writing the blog, answering every single post) inspiring! I’m sure you’ll find your way with or without Google!

    It’s funny how nervous one can get from a simple phone call, I have my first tech interview for a YouTube grad position in 2 weeks and I’m terrified, even though I’ve seen and been through a bunch of more intense experiences in my life from a combat army service, running marathons and other things we all approach during life.
    I’ve never been a studying person, I could barely get myself to study unless I had to. Though I have absolutely no problem sitting down hours straight intrigued, learning or solving problems for projects. I managed to pass through my CS degree scraping an 80 avg. I know I can do anything I put my mind to but since my degree was kind of a fly by I have so many holes and feel truly lost on how to approach all these subjects and to which depth I should get involved for a grad position.

    I started reading back on sortingsearching algo’ and data structures but I’m afraid to waste time on the wrong things, and getting too scattered will probably result in a loss of interest or motivation.

    My main reason for applying is actually to help me with other job applications, I don’t really believe I’ll be able to make it passed the first interview unless somehow I’ll manage sit my ass down and study in an organised and effective way, and of course have a lucky questions streak.

    I don’t expect you to have an answer to my nonsense, just sharing makes me feel better and I would be happy to hear any thoughts you may have, given your knowledge and experience. :-)

    • Hi Shay, thanks so much for your kind words. Sorry for my slow reply (I was travelling). How did your interview go?

      I’m not so much of a studying person either. I used to be one, but now I am so distracted by learning other things (usually tacit knowledge, especially about cultural, psychological and sociological things after moving to Japan) that I am a totally different person. But if the right problem presents itself, I can lose weeks of sleep. The thing is, I guess focused learning/solving is a good skill to master. I don’t believe we are victim to the way we are right now.

      I feel I have so many gaps in my knowledge too. As you can probably appreciate, the more we learn, often the more we realise there is left to learn. I get overwhelmed sometimes, but learning is a lifelong thing, so don’t beat yourself up about it. And FYI, 80 average isn’t “scraping” ;)

      The interview process usually reflects this. They usually want to see how you would go about solving something you don’t know. There is a relatively small core of skills in algorithm design, which are also tacit knowledge, that if you practice enough beforehand, you should have a good idea about them and be able to reapply them to many problems you’ve never seen before. In addition, I think they want to see how passionate and welcoming you are to difficult problems (see them as a game, not a chore), and how well you communicate.

      Yes, I’m glad you picked up on the fact that this blog post was actually to encourage people to use it as practice for many other things. Working for Google would be cool of course, but I got so much more out of it than that :) so really, the result doesn’t matter so much, as long as you open yourself up to the whole experience.

  • BeALittleDecent

    You seem like a reasonably educated guy. Why the hell then you have to use such profanity you mother*****? Do you want everyone to talk like that you a**hole?

    • I write how I speak, and I don’t believe people should be offended so easily (profanity can add nuance and value to language – in fact, your comment would sound totally different without the profanity you used). But I don’t want to impose my beliefs on you. You are welcome to not read my blog in the future (as it will most likely have swearing).

  • Glenn

    They Alex. I know your brother and mentioned this post to him when I caught up recentlyof course over spicy food. I recently went through the process. The phone interview I did in person due to disabilities I mentioned to them and they were willing to accomodate.

    The phone interview they asked the non technical interviews mainly while the guy was showing me around the local campus. I got past the phone interview without problem.

    Then the day of the interview the week before I lost a bit of my voodoo. Did well with one of the interviews and not so well with another. Overall the other two I knew the optimal solutions to their code problems. I did really well at their design questions.

    The recruiter rang today and said the hiring committee noted positives but decided not to extend a offer. He then said they would like for me to do another interview in a years time and the recruiter would be in touch.

    In your experience do they do the follow up?

    • Hey Glenn :) Cool that you know my brother. Apparently you worked at Infinite? Maybe we’ve met before (during my brief stint there).

      To answer your question: They do indeed get back in touch with promising candidates each year during hiring time.

  • disqus_5wZW2V8OEl

    I recently got rejection from Google. I am a fresher from India. I made it til the last round but screwed up there because I couldn’t properly understand the question, the interviewer asked me, I kept on asking clarifying questions but that didn’t help and I got rejection call after 2 weeks. After 2 days from rejection, I received an offer from Epic Systems. But I’m still very depressed. I just needed one more interview after that final one. My friends got one. And they might get into Google. I was the only girl from my college to have reached that far this year. And I missed a great opportunity even after doing well. I just don’t know how to handle this. I am just not able to move on. I need help and I don’t know what to do.

    • Gaby Lopez

      Been there. I felt awful after I got rejected. I try not to think about it now.

  • Deepika Pandhi

    Hi Alex, thanks for sharing , its great post. You mentioned Python is your preferred language but still they asked you for C,C++. What does that mean should we need to prepare for other languages apart from Python for interview then?

  • Kostas Lekkas

    Hey Alex,

    I’m glad that I found your post before interviewing with Google in mid July, you offer some solid advice! Eventually I also failed in my first two attempts and wrote a blog post about it, in order to reflect and give my point of view :

  • Tim Richardson

    Thanks Alex,
    I finished my CS degrees (BS and two MS) a long time ago. And I’ve been managing developers for a decade. I can barely remember these algorithms, and I don’t think you even use data structures I was taught…does anyone actually build a linked list from scratch these days? Google called me last week and invited me to interview for a management position tomorrow. All I can think about is that movie “The Interns.” Well, we’ll see how it goes.

  • David Sumich

    Thanks for posting this! I have my first phone interview next week. I don’t feel super confident about it really, as my friend that works there gave me a mock one, and said I didn’t pass. However, every piece of info you can find on the internet is very helpful!

  • Sally Talks

    Thanks Alex, this surely gonna help me in preparation for Google. Some Blogs write the following to know , for instance Operating System, Computational Geometry, Machine Learning, NLP. I am still not sure what kind of technical interviews Google hold for experience people because list can go on and on. Although what I found common in every blog is “Problem Solving “

  • ueberflieger

    I usually start with a naive approach to buy some time and while I am describing the naive approach, I think about the optimal solution for a problem.

  • kiran

    Hello Alex,
    I have 2 weeks left for my technical phone interview , please let me now where should i begin my preparation for my technical phone interview?

    • Hey Kiran. Check out for good exposure to a lot of problems, and and for practice interviews ( is better but I think they have a waiting list to get accepted). Do those as much as you can. is good if you cant do and dont mind spending a little bit for very specific feedback.

      If you have some extra time, is better than, but much more difficult (which matters, since motivation is important too). I recommend first because its somehow addictive.

  • Bang Bui

    Hey Alex, I dunno if you still look at this blog, but I am actually interviewing for a non-technical position at Google. Do you know how the process is like for those kinds of roles? I don’t think it requires coding, but it sounds like a support role. If you can tell me what you know how to prepare for a non-technical role, it would be very much appreciated.