How to Prepare for a Google Internship Interview

SWE Careers
7 min readMay 21, 2020

--

Article was written by Anishka Gupta

Background

With around 3 months remaining before I graduate, I realize I will probably never be an intern again. Nevertheless, having done 3 software engineering internships at Amazon Web Services, Google, and Adobe and participating as a student developer in Google Summer of Code, I already feel immensely grateful for the amazing learning experiences and the improvement I have had in terms of my technical and communication skills. As an intern you get to experience company culture first-hand, apply your theoretical knowledge in the real world (at a massive scale sometimes!), build connections, make mistakes and learn from them, and get the opportunity to convert to a full-time engineer after you graduate ;)

This article is written with the hope to help students receive SWE internship offers from top tech companies in the future. It is structured into separate sections talking about the process of internship search, preparation, and interviewing.

Beginning with a brief on my background, I am Anishka Gupta, a Computer Science and Engineering grad student at National Institute of Technology, India. I have always been passionate about programming, since writing my first C++ code in high school, which naturally made me lean towards pursuing a CS degree. Over the past 5 years in college, I have tried my hand at various things related to computing and failed at many, but each of those has helped shape me and my SWE career in a way.

Internship Search

The best strategy is to not pin down your hopes on one single company and apply to several different ones ranging from tech giants to unicorns to cool startups.

Looking for internships is certainly a tedious process that requires patience and perseverance. For most companies, the application process is pretty simple and straightforward, requiring you to look online for relevant SWE intern positions on their career portals and submit your resume. The difficult part is getting your resume noticed.

To maximize your chances of being considered for interviews, you can ask someone you know who works at the company to refer you to the position. Other than that, there are plenty of guides on the Internet that can guide you on how to make an impressive resume. A key point to keep in mind here is that your GPA doesn’t matter as long as it’s above a certain threshold. Nor does your university brand name matter much, if you have intriguing projects and accolades to showcase. As far as my experience goes, it’s worth it to build mini-projects of your own, perform research, contribute to open source, collaborate with friends on a start-up, or build something for your university. Participating in hackathons and programming contests aid in refining your technical skills, and an achievement in those can add bonus points to your resume! :D Being active in the tech community, or volunteer work can go a long way. All these little things help make your resume shinier and differentiate you from other candidates in the pool. It is also common these days for recruiters themselves to contact candidates based on their LinkedIn profiles or participation in company organized developer events and competitions. I have been through both — applied online as well as been contacted by recruiters.

The best strategy is to not pin down your hopes on one single company and apply to several different ones ranging from tech giants to unicorns to cool startups you may be interested in. Also any prior work experience helps, meaning your first internship doesn’t always have to be at a big shot organization. My very first experience was in fact working remotely on an open-source project, and was absolutely beneficial.

Internship Interview Preparation

Woohoo! Once your resume gets shortlisted, it’s time for the interview process. This is when you need to be well prepared and confident already. Before diving into the details of an interview process, it’s worth talking about prepping.

Most internship interviews focus primarily on data structures and algorithms. You should be clear with the basics that you’re normally taught in undergrad classes itself. But interviews don’t focus on your theoretical concepts, they require you to solve algorithmic problems using it. You need to be able to come up with an approach(es) to solve the problem, and clearly and concisely communicate it to the interviewer. After that, you are asked to code it up using the language of your choice, but some companies are fine with pseudocode or even no code at all. I always start by explaining the brute force approach and keep optimizing until the interviewer is satisfied and asks me to write the code. As interviews are mostly of a fixed duration, it’s essential to manage time and not use it up on discussion alone. Interviewers often drop hints to guide you in the right direction, make sure to pick up on those. Also, be prepared to answer any questions on the time and space complexity of your code.

To develop a solid command over data structures and algorithms, I think the best way is to solve problems on websites like SWECareers.com. They have tons of coding problems to practice that help widen your thought process, enhance your coding ability, speed and efficiency, and handle different edge cases.

You can also read books like Cracking the Coding Interview and Programming Interviews Exposed for practice. If you’re looking for an additional fun way to improve your ability to come up with an approach quickly, definitely give competitive programming a try. Though not a necessity at all, I believe doing some CP gradually helped me over time to improve my thought process.

For most companies, interns and new grads are not expected to have system design skills, so this section can be skipped during your preparation. Although a few companies might be interested in talking about OOP design or ask you to talk about the high-level overview of a simple system. This is when the projects you’ve worked on lead you to the right thought-process, and also act as a good point of discussion beyond algorithmic questions. I have also come across and heard about certain basic application based questions on operating systems, object-oriented programming, databases, and computer networks being asked in some interviews. For this, a revision of the basics of these courses you learn in university should be more than enough.

Before your interview, you can also try to get mock interviews from your friends or experienced interviewers on websites like Pramp. Their feedback can help you keep track of time, assess your shortcomings, and make you feel more confident.

Generic Internship Interview Process

Generally, most companies start with an online test for screening candidates. This is followed by a series of technical interviews and optionally a behavioral or resume discussion-based interview. My experience with each of these has been discussed further:

Online Test

Online tests usually focus on programming questions requiring you to write working code that is run of multiple test cases to test the correctness and efficiency. As for me, I didn’t specifically prepare for online tests, as I felt my practice with algorithm-based questions on online judges was more than enough to get past this stage. You might even encounter a few questions on core computer science concepts or aptitude in some tests, but subjective knowledge gained in undergrad CS classes is good for those.

Technical Interviews

The technical interviews pose certain algorithmic problems that are primarily concerned with your approach(es) to the problem and how well you can translate your thought-process to code. The questions can be purposefully vague, requiring you to keep questioning the interviewer until you extract all the relevant information. Again, clear basics and practice on programming platforms was the key for me. I also got some mock interviews and discussed coding questions with friends to get better. You can have anywhere from 1 to 4 technical interviews, that can be either telephonic, video or onsite depending on the company. You will first be expected to arrive at an optimized approach after a thorough discussion with the interviewer(s) and then write some code on paper, whiteboard or a code sharing interface. You may also have brief resume discussions and get a chance to ask the interviewer questions about the company towards the end.

Final Interview

This varies from company-to-company and usually revolves around resume discussions, behavioral or HR questions to assess how you are as a person to work with. The key takeaway is to be honest here :)

Final Words

View from the Amazon Berlin office terrace!

Piece of advice? If you could secure an internship offer, perfect! Make good use of this opportunity to improve your skills and try securing a full-time job if you like.

If you could not, do not lose hope. All the efforts you put in will undoubtedly be useful when searching for a SWE role. Good luck! :D

--

--

SWE Careers

We help students ace their software engineering interviews.