A week ago, we talked about , where in the comments we were pointed out the importance of internships and practical experience. This is hard to disagree with, as theoretical knowledge needs to be reinforced by practice. With this post, we are launching a series of articles about summer internships for students: how they get there, what they do, and why it's beneficial.
In the first article, I will discuss how to successfully navigate all stages of interviews and secure an internship at Google.
A few words about myself
I am a first-year master's student at the St. Petersburg campus of Higher School of Economics, having completed my bachelor's degree at the Academic University in machine learning. During my bachelor's studies, I actively engaged in competitive programming and participated in various hackathons. You can read more about the latter , and .
About the internship
To start, I want to share a bit about what an internship at Google is like from the inside.
Every intern coming to Google is assigned to a particular team. This could be a team working on internal infrastructure that someone outside the company has never heard of, or a product used by millions of people around the world. Products like the well-known YouTube, Google Docs, and others fall into this category. Since dozens, if not hundreds, of developers work on these projects, you will join a team that specializes in a more specific part of it. For instance, in the summer of 2018, I worked on Google Docs, adding new functionalities for working with spreadsheets.
As an intern in the company, you have a manager referred to as a host. This is a regular full-timer who is also involved in product development. If you don’t know something, cannot solve an issue, or face any problems, you should reach out to them. Weekly one-on-one meetings are usually scheduled, where you can discuss the current state of the project or chat about something entirely unrelated. Additionally, the host is one of those people who will evaluate the work you do during your internship. There will also be a second additional reviewer evaluating your work. And of course, they are interested in your success.
At Google, you will be injected with ideas, but it's not certain. It's a good habit to write a design document (dizdok) before you embark on any task. For those unfamiliar, a dizdok is a document that outlines the essence of the existing problem and provides a detailed technical description of its solution. A dizdok can be written for an entire product or for a specific new feature. Reading such documentation helps understand the intended purpose of the product and the manner in which it was implemented. It's also common to see dialogues between engineers in the comments, discussing various ways to implement a part of the project. This offers a good understanding of the reasoning behind each decision made.
The unique aspect of the internship is that you get to use amazing internal development tools, of which Google has an abundance. Having worked with them and interacted with many people who previously worked at Amazon, Nvidia, and other well-known tech companies, I can conclude that these tools are likely to be among the best you will ever encounter in your life. For example, a tool called Google Code Search allows you not only to browse the entire codebase and the history of changes to each line of code, but also provides navigation through the code that we are familiar with in modern development environments like Intellij Idea. And all you need for this is a browser! A related downside to this feature is that you will find yourself missing these tools outside of Google.
When it comes to perks, the company has cool offices, provides decent meals, offers a gym, good insurance, and other nice benefits. I'll just leave a couple of photos from the New York office here:



How to get an offer?
Overview
Now it's time to discuss something more serious: how to land an internship?
This isn't about Google specifically, but rather about how this typically works. I will cover the specifics of the intern selection process at Google below.
The interview process at the company will likely look something like this:
- Internship application
- Contest on Hackerrank/TripleByte Quiz
- Screening interview
- First technical interview
- Second technical interview
- Onsite interview
Internship application
Clearly, it all starts with your desire to get an internship. To do this, you need to express it by filling out a form on the company's website. If you (or your friends) know someone who works there, you might try to get in through them. This option is preferable as it helps you stand out from the massive flow of other students. If that opportunity isn't available, then apply on your own.
Try not to get too upset when you receive emails with messages like 'you are awesome, but we chose other candidates.' Here's a piece of advice for you:

Contest on Hackerrank/TripleByte Quiz
If your resume has caught the recruiter's attention, you'll receive an email with the next steps within 1-2 weeks. You will likely be asked to complete a contest on Hackerrank, where you will need to solve algorithmic problems within a specified time, or take the TripleByte Quiz, where you'll answer various questions related to algorithms, software development, and low-level system architecture. This stage serves as an initial filter in the candidate selection process.
Screening interview
If you successfully pass this challenge, the next step is a screening interview, where you will discuss your interests and the projects that the company offers to interns with the recruiter. If you show interest and your previous experience meets the company's expectations, you will get the green light. From my experience, this is the most unpredictable part of the entire process, heavily dependent on the recruiter.
If you have managed to get through these three challenges, the bulk of the randomness is behind you. What remains are the technical interviews, which depend more on you, meaning you have more influence over their outcome. And that's good!
Technical Interviews
Next come the technical interviews, which are usually conducted via Skype or Hangouts. However, sometimes more exotic services that require additional software installation may be used. So, make sure everything works on your computer in advance.
The format of technical interviews heavily depends on the position you are interviewing for. If it’s a Software Engineering Intern position, you will likely be given a couple of algorithmic problems that you need to code in an online code editor, such as . You may also be asked questions about object-oriented design to assess your understanding of software design. For example, you might be asked to design a simple online store. However, I've never encountered a task where the solution could genuinely gauge this skill. At the end of the interview, you will certainly have the opportunity to ask questions. I strongly recommend taking this seriously, as your questions can demonstrate your interest in the project and show your competence in the subject. I usually prepare a list of potential questions in advance:
- How is the project work organized?
- What complex problem have you had to solve recently?
- What is the developer's contribution to the final product?
- Why did you decide to work for this company?
You are not always interviewed by the person you will be working with later. Therefore, the last questions can provide insight into what is happening in the company as a whole. For me, it is important that I have an impact on the final product.
If you successfully pass the first interview, you will be offered a second one. This will differ from the first in terms of the interviewer and, accordingly, the tasks. The format will likely remain the same. After passing the second interview, a third one may be offered.
Onsite interview
If you haven't been rejected by this point, you're in for an onsite interview, where candidates are invited to the company's office for a meeting. Typically, it consists of several technical interviews and one behavioral interview. During the behavioral interview, you discuss your projects with the manager, the decisions you made in various situations, and similar topics. In other words, the interviewer aims to better understand your personality and delve deeper into your experience. Some companies, which conduct 3-4 technical interviews, offer to remotely complete just one behavioral interview instead of an onsite meeting.
Now, all that's left is to wait for the recruiter's response. If everything went smoothly, you'll definitely receive an email with the long-awaited offer. If there's no offer — don't be discouraged. Companies systematically reject good candidates. Try applying for an internship again next year.
Coding interview
So, hold on… We haven't gone through any interviews yet. We've only learned what the entire process looks like, and now we need to prepare well for the interviews to make the most of our summer.
There are resources like , and , which was created as a tool for preparing for technical interviews, is much more suitable. If you solve 100-200 problems of varying difficulty, you will likely have no issues during the interview. Another good option is Facebook Code Lab Many also recommend reading the book "
Many still recommend reading the book "I only selectively read certain parts of it. However, it's worth noting that I solved many algorithmic problems during my school years. For those who haven't had such experience, it's still recommended to at least browse through this book.
Also, if you haven't had many technical interviews with foreign companies, it is advisable to go through a few trial ones. The more you have, the better. This will help you feel more confident during the interview and reduce anxiety. Trial interviews can be organized at .
Behavioral Interviews
As I mentioned earlier, during a behavioral interview, the interviewer tries to find out more about your experience and understand your personality. What if you are an excellent developer but unable to work in a team? I fear that many companies would not accept this. For instance, you may be asked, "What is your biggest weakness?" In addition to questions like this, you will be asked to discuss projects in which you played a key role, the challenges you faced, and how you solved them. It's worth noting that in the first few minutes of technical interviews, you may also be asked about this. There’s a good discussion on how to prepare for such interviews in one of the chapters of "Cracking the Coding Interview."
Now that we understand how the internship selection process generally works and how to prepare for interviews, it's time to discuss how this works at Google.
A list of available internships can be found . If you plan to go for a summer internship, you should start applying as early as September.
Interviews
Here, the process looks a bit unusual. You will have a screening interview and two technical ones. If you perform well, you will move on to the project search stage. You will need to fill out quite a long questionnaire where you will list all your current skills and express your preferences for the project topic and the location where you want to intern.
It is very important to fill out this questionnaire well and diligently! Potential hosts looking for people for their projects review available interns and hold interviews with candidates they are interested in. They can filter students by location, keywords, and checkmarks in the questionnaire, and sort by interview scores.
During the interview, the interviewer discusses the project you will be working on and learns about the candidate's experience. This is a great opportunity to understand what the work process will actually look like, as you are communicating with the person who will be your host. After the interview, you write an email to the recruiter with your impressions of the project. If you liked the project and the interviewer liked you, you will receive an offer. Otherwise, you will be waiting for subsequent calls, which can be 2, 3, 4, or even more, or may not come at all. It is worth clarifying that even if you perform well in interviews, if no team selected you during the project search phase (and perhaps no one even interviewed you), unfortunately, you will be left without an offer.
America or Europe?
Besides that, you will need to decide where your internship will take place. My choice was between the USA and . And it's important to know some specifics. For instance, there is a perception that it's harder to get into the USA. First, you will have to pass an additional 90-minute contest, where you will need to solve algorithmic problems, as well as another 15-minute survey trying to reveal your character. Secondly, from my experience and that of my friends, teams are interested in you less often during the search stage. For example, in 2017 I had only one interview, after which the team chose another candidate, and I did not receive an offer. Meanwhile, those who applied to Europe had 4-5 project opportunities. In 2018, I found a team in January, which was quite late. The guys worked in New York, I liked their project, and I agreed.
As you can see, getting into the USA is a bit more complicated. But I wanted to go there more than to Europe. Plus, they also pay more in the USA.

What to do next?
At the end of the internship, you have two options:
- Get an internship for the next year.
- Pass two technical interviews to secure a full-time position.
These two options are available if you have successfully handled your current project. If this isn't your first internship, you might even be offered a full-time position without interviews.
This leads to the following scenario, which can be illustrated by one picture:

Since this was my first internship, I decided to go through two technical interviews to get a full-time position. Based on the results, they agreed to extend an offer and started looking for a team, but I declined that option as I chose to finish my master's degree. Google is unlikely to disappear in 2-3 years.
Conclusion
Friends, I hope I have clearly and understandably explained what the journey from student to intern looks like (and then back…), and I hope this material will find its reader, who will find it useful. As you can see, it's not as complicated as it might seem; you just need to overcome your laziness, face your fears, and start trying!
P.S. I also have a on Telegram, where you can check in.
Source: habr.com
