How Not to Get Rejected by Google?

How Not to Get Rejected by Google?

My experience on being both side of the table in Google hiring - as an interviewee and an interviewer.

Google interviews aren’t just about Leetcoding, there’s much more to it than just writing code.

During my 2 attempts at Google, I gave total of 12 rounds of interview(8 coding, 2 Googlyness and 2 telephonic). Hence, I’ve some decent experience on what the interviewer expects from a candidate during an interview.

What this article covers?

  1. What are the key characteristics Google interviewers look in a candidate apart from Algorithm knowledge.
    1. How can you exhibit these characteristics, so as to increase your chances of getting a Hire rating.

      What this article don’t cover?

      1. Preparation Strategy — Resources on how to prepare for a specific role. (I believe there are already enough articles on the same.)
        1. Google interview process. (Again, quick Google search will give you this information).

          So you’ve done hundreds of Leetcode question and you’re a ninja in solving any problem thrown at you. You take nanosecond in writing any algorithm. That’s great! Congratulations!

          Let’s take a look at some other important aspects of the interview, so you don’t mess up even after knowing the solution to a given problem.

          1. Effective Communication

          This is the most important thing interviewers look into. Even if you’re able to find the most optimised solution to a problem, poor communication can ruin your chances.

          Interviewers expect that if you’re able to solve a problem, you should be able to explain it clearly as well. You should know the tradeoffs, understanding of data structure used(if any) and how the solution works.

          Here’s how you can communicate effectively during the interview:

          1. Always think out loud. Interviewers are genuinely interested in knowing how your thought process works, given a problem.
            1. It’s okay to start by Brute Force solution. No matter how bad it is, if the solution works, it’s fine. You will ultimately be asked incrementally to improve upon the time complexity. Those who can think in different directions are rewarded, not penalised! :)
              1. Be clear in what you speak. Lets say the candidate doesn’t know how Hashmap works internally, it’s better for him/she to tell the interviewer that he/she doesn’t know about the internal functioning rather blabbering out some random words. Shooting in the dark usually doesn’t help here!

                2. Effective Coding

                What does effective coding means?

                To write efficient, neat and clean code that covers all the edge cases.

                Each Google interview is of 45 minutes(as of today). In these 45 minutes, you need to understand the problem, think about the solution, discuss it with the interviewer and then write code for it. Hence it always help to be effective in coding.

                Here are few tips for effective coding:

                1. Learn to code fast. Obviously, we’ve limited amount of time, hence should be fast in coding in your favourite language. It’s always better that you’ve spare time in the end of interview, in case interviewer might want to discuss some follow-up questions. This ultimately can be improved by practising more and more.
                  1. Make sure the code is neat and clean. The code should be easy to read. If you need to explain each and every line of the code to the interviewer, you might want to take a minute to clean the clutter and re-organise the code. Good variable naming, separation of concerns, removing redundant operations are some of things that you can keep in mind while writing a code.

                    3. Your code should cover all the edge cases.

                    Scenario 1:

                    Interviewer: What would happen if the array is empty?Candidate: Oh sorry, I forgot to handle that case. Let me add an if statement to check it.Interviewer: Sure

                    Scenario 2:

                    Interviewer: You’ve already added a check to handle empty array. That’s nice!

                    Noticed the difference in both the scenarios. It’s always good to handle all the corner cases on your own. Even if you ran out of time to write code for each and every case, discuss with the interviewer verbally on what’d you do for these cases.

                    4. Did anyone talk about Unit Tests?

                    Yes, you read it right. Explaining the interviewer that how will you test your solution is also a great way of communicating that you care about the core functionality of code working correctly. You can tell them on what all different tests you can write to ensure the the code works on all the possible cases.

                    Bonus Tip: Leetcode Discuss section is a Gold mine. You get to understand on how differently people think about the same problem and how to write beautiful and elegant code.

                    3. Hints?

                    But what if I get stuck and not able to think in any direction? Is it okay to take hint?

                    Taking hints once or twice is fine, but don’t overdo it. While you’re encouraged to come up with the solution on your own, you can ask for a hint if you’re not able to move the needle after some time. Just make sure you’re not doing this repetitively.

                    Also, there’s difference between asking clarification questions and asking for a hint. Asking clarification questions are always encouraged.

                    4. Googleyness

                    As you might already know, Google has an interview round called Googleyness round where they assess certain values and evaluate whether the candidate is right fit for Google or not.

                    While you might have performed strong in all other rounds, messing up this round can directly lead to a path of rejection. Hence this round shouldn’t be taken lightly.

                    There’s a nice article written by Jeff that covers on how to prepare for Googleyness Interview. So I won’t be repeating the content. You can read more about the article here. Just an add on to the article, what works for me is answering a question in STAR methodology. That way, it’s easier to justify the impact/result from your actions.

                    That’s all folks. I hope you find this article useful. Wish you all the best for preparation and interviews. See you on the other side! :D

                    Thank you!