Google SWE Internships Decoded

Vidhi Bhatt
Codess.Cafe
Published in
10 min readJun 13, 2022

A blog by Neha Goyal and Navya Singla

Welcome to the new blog by Codess.Cafe. In this blog, we will be interviewing our Sophomore mentors: Neha Goyal and Navya Singla, and know more about how they both cracked an SWE Internship at Google.

For a wider perspective, the blog is documented in 2 parts. One from the perspective of a STEP intern who bagged a PPI for the SWE Internship (By Neha Goyal) and the other from the perspective of a non-STEP intern who directly cracked the internship in 3rd year (By Navya Singla).

It is to be noted that the views represented in this blog are the personal views of both the writers and neither of Google nor Codess.Cafe.

Before getting started, let us first see what an SWE Internship is.

SWE internship is the internship provided by Google for the position of Software Engineering role. 3rd-year female and male students are eligible to apply. Both on-campus and off-campus hiring drive is conducted by Google for this internship.

Part 1: By Neha Goyal

[1] Please introduce yourself to the readers.

Hola readers! I’m Neha Goyal, a junior at Delhi Technological University, pursuing my major in Computer Engineering. I am interning at Google as a Software Engineering (SWE) Intern this summer and have been a STEP Intern at Google in 2021, a part of Twitter DevelopHER’ 21, winner of Snap Developer Challenge’ 21, and MLH Prep Fellow in March’ 22, You can know more about me here. I have always loved learning and experimenting with new technologies.

Disclaimer: All of this is based on my personal experience and journey as a STEP intern at Google. I do not speak officially on behalf of the recruiters or the company.

[2] How did you bag the SWE offer?

All the STEP interns working with Google India are eligible for a return offer to intern with Google as an SWE intern. This is something based on the feedback of the hosts and managers solely, which is used to assess the performance of the intern. In some cases, there might not even be an interview conducted.

This duration varies based on a number of factors, like college placement seasons. There is no such thing as First-come-first-serve. Every intern has their own fair chance of returning as an intern. I got my return offer by the end of my internship.

[3] Did you give any interviews?

No, I did not have any interviews. The interviews conducted though are technical, consisting of questions based on Data Structures and Algorithms, along with the intern project.

[4] Advice that you would like to give to current STEP interns.

Sure, here are a few things that I would like to convey.

A. Don’t fall into the trap of Imposter Syndrome: Usually, when we are entrusted with a project, and that too is something as major as belonging to a big company, we tend to doubt ourselves and compare our skills with others. We feel bewildered by the new things happening so rapidly around us.

‘If you are the smartest person in the room, then you are in the wrong room.’

Just know that you have earned your place there and it is a blessing to be surrounded by people, who you get so much to learn from. Make the best out of it. Talk with your co-interns, hosts, and extended team members, and have an incredible journey of learning and building.

B. No question is a silly question: Don’t get stuck with the idea of becoming a perfect intern by not asking questions and trying to do everything on your own. Do spend time trying to figure out things, but if it takes more than 2–3 hours, know that it is time to approach someone and seek help. When you approach the person, direct them to what all you have researched about and ask them on-point questions.

C. Documentation: Make sure to have a document in place to keep track of the workflow and deadlines, to be on the same page with your managers. Keep a document to keep track of your learnings and challenges, something like a ‘Personal Tracker’. This will help you to avoid getting stuck with similar problems and doubts

Most importantly, have fun. Don’t get stuck working all day. Make sure you join your team socials, actively participate in other social events organized by the team and take moments to reflect back and praise yourself at the end of the day. Don’t let work pressure come in your way to enjoy what you do.

Google SWE Internship swags

[5] What topics should one focus more on if they are preparing for the SWE interview?

Interviewers at Google focus more on how you approach the question, instead of the most optimized answer. Make sure to have clear concepts about the various data structures and algorithms. Some of the most important topics, in my opinion, will be Dynamic Programming, Recursion, Graphs, Trees, Searching, and Sorting.

[6] Would you like to recommend some resources for prep?

Some of the resources that I found to be really helpful are:

[7] Ending notes

This was all from my side. Feel free to reach out to me on LinkedIn. Wishing you all the best for an amazing journey that awaits you! :)

Part 2: By Navya Singla

[1] Please introduce yourself to the readers.

Heya! I am Navya Singla, currently a junior at Delhi Technological University, where I am pursuing B.tech in Computer Engineering. I have previously been an SWE intern at Flipkart through Flipkart Runway, where I worked on the backend of a 4-player Ludo game along with the Flipkart Hello play team.

I have also been a mentee at Microsoft Engage 2021, where I got the opportunity to interact and learn from Microsoft Engineers and simultaneously work on an interesting project. I have also been selected as a mentee at Micron GWMP’22. I also recently started my internship at Google as an SWE intern!

Technically, I am into Web development and Machine Learning, and also started exploring competitive programming recently. I also love creating projects (GitHub) and I have been a finalist at ELC Hack for accessibility, and a winner at TechTogether New York Hackathon 2021. You can stalk me here!

[2] How did you bag the SWE offer?

I bagged the internship offer from Google through the on-campus process. The first step of the process comprised of an online coding assessment, along with resume shortlisting. The selected candidates underwent 2 interviews, which were eliminatory in nature. The interviews were based on data structures and algorithms.

[3] How did you prepare for the interview?

In general, I made it a point to solve at least 5 Leetcode problems each day. This gave me more confidence in my problem-solving abilities. I practiced solving every question within a fixed time limit.

I tried to give as many mock interviews as I could. This made me feel more at ease throughout the interview.

On Leetcode, I looked for the best solutions and tried to gain insights into different ways to approach a particular problem. Some problems may have many solutions with varying degrees of time/space complexity. I wanted to figure out which one was the best and why.

I Practiced my flaws. I learned more about data structures with which I was unfamiliar and pushed myself to meet my aim of being prepared for unexpected questions.

[4] Which topics one must prepare/focus more on if they are targeting the 2023 Google SWE Internship?

Okay, so here’s what I feel is important.

A. Data Structures: Having good knowledge of widely used data structures is essential. Arrays, Linked Lists, Sets, Stacks, Queues, Trees, Graphs, Heaps, Hashmaps, and Dictionaries are examples of data structures.

B. Algorithms

  1. Dynamic programming: Constructing solutions by breaking down the problem into smaller instances (e.g: recursion).
  2. Sorting: Learn implementation and concept of common sorting Algorithms with O(n²) time Complexity — Bubble Sort, Insertion sort, and O(nlog(n)) time complexity - Merge Sort, Heap Sort, Quick Sort.
  3. BFS & DFS: Basic algorithms for Graph traversal
  4. Binary Search
  5. Greedy Method
  6. Graph Algorithms — Djikstra’s, Floyd-Warshall, Bellman-Ford, etc.
  7. Time And Space Complexity Analysis

C. Time and Space complexity analysis: This is maybe the only algorithmic term about which you can nearly always be questioned in an interview. That’s because you will be asked algorithmic questions, and while you won’t know what areas they may come from, you will almost certainly be asked to examine the time complexity of at least one algorithm you design. Be familiar with expressing your solutions in terms of Big O notation for complexity analysis.

[5] Would you like to recommend some resources for prep?

Some of the resources that I found helpful for preparation were:

[6] What’s the ideal way of approaching the questions during the interview?

Here’s what one must do according to my experience.

>> Understand the Problem

Your interviewer will begin by quickly describing the problem you’ll be working on. However, beginning coding as soon as you see the problem, results in crucial mistakes later. Instead, take a few minutes to read and reconsider the question until you’re certain that you grasp the constraints and potential edge cases.

To double-check your knowledge, ask the interviewer to repeat the question in your own words to ensure you understood it right. Nothing is more frustrating than finding you’re answering an entirely different question in the middle of an interview

>> Think-Out-Loud

Throughout the interview, explain your thought process and decision-making. Engineers at Google evaluate not just your technical ability but also how you approach problems and strive to solve them in all of your interviews. Generally, questions asked in Google interviews are left open-ended to see how you approach the challenge. There isn’t a “single correct response” to them, but rather, they want to know what you’re thinking. If you can’t come up with the most optimized solution right away, you may concentrate on the brute force answer and optimize it later-just make sure you tell the interviewer.

>> Start Simple, Then Optimize

While it’s necessary to have a high-level design in mind before beginning to code, it’s also a good idea to start with a simple brute-force solution with your interviewer and then, optimize it from there. If the interviewer gives you a hint or a counter-example, make sure to include it in your solution. Begin with a brute-force strategy. Tell the interviewer about it. Explain the complexity of time and space, as well as why it’s a poor idea. After you and your interviewer have decided on a method and you have been given the nod, you should begin coding.

>> While Coding

Write your code in a professional manner. Your aim is to ensure that your interviewer understands your code so that they can quickly assess if it accomplishes what it’s supposed to and solves the problem.

  • Use descriptive variable names and avoid single-letter names unless they are used for iteration.
  • Use helper functions to put portions of the code together, especially if you plan on reusing them.
  • Use Comments. You don’t require extensive comments. You may use smaller comments (3–4 words long) in critical places.
  • Be careful with code structure and indentation!

[7] Piece of advice to aspirants

  1. While practicing, When you think you don’t know the solution to a question, don’t look up the answer immediately. See how far you can stretch your thoughts. Finally, when you believe you’ve reached capacity, look at the solution and understand.
  2. Prepare each topic one at a time. Make a list of everything you want to remember. A common blunder is preparing questions based on the company, rather than the topic. This strategy may assist you only if you have an interview with that exact firm tomorrow and have no idea what to prepare for today.
  3. Keep Practicing. Spending a lot of time solving problems and constructing algorithms is all you need to feel confident in the interview while addressing DSA problems. You can’t prepare for interviews in a month by answering questions on sites like GeeksforGeeks, CodeChef, Codeforces, PrepBytes, and so on, but you need to work towards your objective all the time.
  4. Be confident and Expressive throughout the interview!

[8] Ending words

The journey to prepare for your dream company is undeniably difficult, and certainly, there will be days when you feel like giving it all up, but keep going! This was all from me. You can connect with me here through LinkedIn.

We hope this blog was helpful to you, if it was then smash the clap button below and share it with all those who might need it and follow Codess.Cafe for more such stories. 🤩🚀

Codess.Cafe: LinkedIn | YouTube | Website | Medium | Twitter

--

--