My Journey to Getting a Software Engineer offer at Google

Nimish Khurana
8 min readJan 10, 2021

I recently got a Software Engineer offer at Google, India(Bangalore). This blog is to share my journey to Google along with some preparation tips for tech interviews.

About Me

I’m a final year CSE student at UIET, Panjab University. I’m experienced in Web Development, DSA and Machine Learning. I’ve also participated in many Competitive Programming contests (that’s how we utilize lockdown time 😉) and love to solve challenging problems. I like to explore different technologies, build group projects and participate in hackathons. I was also the team leader of Finalist team in Smart India Hackathon 2019.

I’ve bagged Internship offers from Cisco, American Express, CRED and Full time offers from Google, Optum, Accolite, NCR.

My Journey

I’ve CS background in 10+2, so knew basic coding and data structures already. This is how I spent most of my time during my college —

1st Sem -> I was not having Laptop, took an Edx course — Intro to CS using Python, on Phone!

2nd and 3rd Sem->

  • Improved basics of DS implementations and practised them in DS lab (Thanks to our awesome DS prof).
  • Explored different fields — Completed Udacity Android Basics Nanodegree(Google India Scholarship), CS50 Web Programming with Python, and Coursera Machine Learning courses. Built a few projects around all of the techs.

4th and 5th Sem ->

  • Participated in Smart India Hackathon as Team Leader and went to finals trip with friends :)
  • Practiced questions on GFG, Leetcode.
  • Got a summer internship at Optum. Rejected by Goldman Sachs in the first internship interview on a trivial LinkedList Intersection problem, I was prepared for DP stuff :)

6th and 7th Sem(2020 Lockdown) ->

  • Utilised time effectively doing CP on Codechef, Codeforces and continuing Leetcode. Improved Problem Solving Skills a lot.
  • Grind Leetcode before the interviews.
  • Mock interviews with friends, helped in improving explanation skills.
  • Learnt and built a MERN Stack project. Recently did a part time internship in an early startup(100ms)-lots of learnings from working with awesome people(Ex-Facebook, Hotstar guys).

Failed Internship Interview Experiences and Learnings

I interviewed for Optum, Goldman Sachs and Microsoft, out of which Microsoft was offcampus opportunity. I bagged the summer internship from Optum. I wasn’t prepared much during the summer internship interviews and ended up getting rejected by GS and Microsoft, which motivated me to prepare really hard and improve my Problem solving and coding skills for the next year :)

Goldman Sachs Interview Experience — Goldman Sachs visited our campus for the first time for the summer internship. The process included the Online Test having 3 coding questions and some aptitude MCQs on Hackerrank. I solved 2 questions and some MCQs, got shortlisted for interviews. In this first interview, I was asked a simple LinkedList question which may sound trivial to most of you but I wasn’t able to solve it at that time because I didn’t prepared for LinkedList thinking it to be a really easy topic and prepared stuff like DP more. Linkedlist screwed up my interview that day :(

Learning from this experience is that we should prepare basics really good and not leave any topic while preparing. Don’t rely on your luck, try to minimize the role of luck in your success by working hard!

Microsoft Interview Experience — I applied for Microsoft summer internship through their All India Coding Test-One Test. There were 3 questions and all of them were pretty easy data structure questions. I got shortlisted for the interiews here also and got rejected in the first virtual interview again, even after solving both the questions asked in the interview.

Learning from this experience is that solving the questions isn’t enough to get through the interview. Being able to explain the thought process well and convince the interviewer by your solution is really important. Interviewer and you should be on the same page all the time during the interview. I coundn’t feel the sync with the interviewer and that reflected in the result!

Amazon Interview Experience — I had a PPO from Optum, so waited for Amazon as only a few Product based companies visit our campus. Even dropped out of a good company interview being confident that I was prepared for Amazon. Amazon visited for a 6 month internship in our campus, but even after attempting the complete Online Test, I was not shortlisted for interviews :( I was broken that day and started doubting my decision to drop out of the previous opportunity, but didn’t let that thought persist long as I think we shouldn’t regret any decision, that was the best decision we could think of considering the facts available and we should always look forward! I’m really grateful for my friends and family who supported me at that time. Later I got a BA internship offer at Amex.

Learning from this experience is that Luck is involved in everything. We can just improve our odds by working hard and smart. No need to worry after giving your best, regardless of the results. There are some things which we can’t control. If something isn’t in your favour even after you did your best, don’t lose hope and look for next opportunity.

Offcampus Placements Experience

I applied to a lot of companies, got SWE internship offerS from Cisco and CRED. Internship+FTE offers from Accolite, NCR and FTE offer from GOOGLE.

Google Interview Experience

Let’s start with the part for which you are here:)

I participated in Google Kickstart Rounds achieving decent ranks and applied on the University Graduate SWE Role on the Google’s career portal with a referral in Aug and received an online coding test.

Got a call for telephonic interview in Sept which was followed by 5 virtual onsite interviews (4 technical + 1 Googleyness) which completed in Oct. The technical interviews were completely based on DSA coding problems, medium to hard level. The coding questions were almost from all different topics including around one question based on Greedy Algorithms, Hashmaps, LinkedList, Two pointers, Priority Queue, Tree, Graph.

Assessment Criteria of Google (Holds good for most companies)

  1. Coding
  2. Data Structures & Algorithms
  3. Good Communication
  4. Independent Attitude
  5. Time Management/Speed of solving the question (20 mins per question for medium, 40 mins for Hard)

You can judge your preparation level by solving Leetcode problems with a timer according to the time limits specified above.

Independent attitude means very less dependent on interviewer, keeping yourself accountable for everything which goes in the interview process —

  • Drive the interview forward yourself.
  • Keeping the time management in mind.
  • Take minimum hints.

One should focus on all the assessment criteria which are mentioned above. Being good in Coding doesn’t mean good interviewing skills. It’s a complete package of skills which should be kept in mind especially good explanation of thought process, writing clean code and time management skills.

Googleyness interview is situation based interview which also analyse whether the person is culturally fit for Google. This is a good video to refer — https://youtu.be/TWFs3dxfiOc

Preparation Tips

Below is my advice for anyone who wants to prepare for SDE interviews, based on my own experience of giving a lot of interviews.

Beginners Plan

  1. Learn a Coding Language (C++/ Java prerrably)
  2. Learn OOPs concepts
  3. Understand all Data Structures and Algorithms well. You should be able to implement them from scratch without looking anywhere.
  4. Learn the inbuilt Containers and Algorithms provided by the language like STL for C++.

Long term Preparation Strategy and where to Practice

The goal of preparation should be to Improve Problem Solving skills so that any unseen problem can be solved.

Things to keep in mind while preparing and platforms best suited for them —

  1. Know the use case of all algorithms, analysing patterns of questions and building the intuition -> GFG, Leetcode
  2. Focus on Quality, not Quanitity -> Brainstorm around the question for around 20–30min before analysing editorial
  3. Gradually increase the level of difficulty of questions and challenge yourself
  4. Improving speed of coding and debugging -> Short Contests on LC, Codeforces(Upto Div2 C or D)
  5. Learn to explain your thought process well -> Mock Interviews
  6. DON’T worry much about Ratings, focus on improvements. I strongly emphasis that the goal of practicing should be to improve the problem solving, fast coding and debugging skills, not just to increase ratings.

Online Coding Test

  1. Practice on Hackerearth for Online coding tests of hiring.
  2. Always solve by brute force in the test, if you can’t optimize.

Before the placement season or interview (1–2 months)

  1. Practice problems only on Leetcode/Interviewbit.
  2. For every question you can’t solve, analyse and note what you missed so that you instantly get the intuition while solving similar questions in the future.
  3. If you find any interesting pattern, also note it down along with the link of question.
  4. Read past interview experiences on GFG, Leetcode.

Just before the interview

  1. Stay calm and Take a deep breath closing your eyes before any interview.
  2. Don’t try to memorise any question in mind, keep your mind free.
  3. Just remember the concepts that you should think in different scenarios if stuck .

During the interview

  1. Ask clarifying questions and repeat the question once.
  2. Immediately tell the brute force solution, whatever comes to your mind.
  3. Try to optimize the solution by keeping all the options in mind.
  4. NEVER stay quiet, silence is dangerous:) Keep explaining your thought process and treat your interview as a discussion.
  5. If the interviewer is quiet, ask Are you following up? or Does this makes sense?
  6. Don’t start coding before asking interviewer, interviewer should be satisfied by the approach.
  7. Write clean code fast and check once by dry running on any test case.
  8. Drive the interview according to your strengths. If you are a really good coder, logical thinker or good communicator, let the interviewer know this.
  9. Take care of edge cases and debug the code to take them into account while dry running.

CP Vs DSA Vs Dev

  1. CP is not for interview preparation specifically. It helps in Coding Tests and indirectly in interviews by improving the problem solving skills and thought process. It takes patience and consistency but results are fruitful. Only continue CP if you’re enjoying it and have enough patience and time to devote.
  2. Big Techs — Focus more on DSA, Startups — Focus more on Dev skills.
  3. DSA preparation on Leetcode/Interviewbit are enough for most of the tech interviews.
  4. Development experience is good for everyone. Just be careful when and how much time to invest time in Dev. (If you have interviews within 2months don’t go with Dev).

Final words :)

  1. Every challenge comes with a opportunity, just recognize it and make the full out of it. The amount of free time we got during the pandemic lockdown is good enough to prepare for anything. Just attending Online Classes? well think again😉
  2. Luck is involved in everything. We can just improve our odds by working hard and smart. No need to worry after giving your best, regardless of the results. There are some things which we can’t control.
  3. Good things take time. If something isn’t in your favour even after you did your best, don’t lose hope, GOD has better plans for you.
  4. Enjoy the journey!

These are just tips which I feel would be helpful from my experience. Everyone has their opinion and path, feel free to tweak this/create your own strategy which suits best to you. Any suggestions/feedback is welcome in comments.

All the best👍💯

Also watch this video where me and two collegemates interacted with juniors and shared our journey to GAM(Google, Amazon and Microsoft) and tips for tech interviews. Hopefully you’ll find this informative.

I’ll really appreciate some claps, if you find this blog useful :)

Connect with me on -

Linkedin , Twitter , Instagram

--

--

Nimish Khurana

Pursuing CSE @UIET, Panjab University. Competitive Programmer and Developer.