How to get an internship at Google

A week ago we talked about our educational programs , where in the comments we were pointed out the importance of internships and practical experience. It is impossible not to agree with this, since theoretical knowledge must be consolidated by practice. With this post, we open a series of articles about students' summer internships: how the guys get there, what they do there and why it's good.

In the first article, I will tell you how to successfully pass all the stages of interviews and get an internship at Google.

How to get an internship at Google

A few words about myself

I am a 1st-year master student at the HSE St. Petersburg campus, I graduated from the Academic University with a bachelor's degree in machine learning. During his undergraduate studies, he was actively involved in sports programming, and also participated in various hackathons. You can read about the latter here, here ΠΈ here.

About the internship

First, I want to talk a little about what an internship at Google looks like from the inside.

Every intern who comes to Google is assigned to a team. It could be an internal infrastructure team that no one outside the company has heard of, or a product that millions of people around the world use. Notorious YouTube, Google Docs and others can be such products. Since dozens or even hundreds of developers are involved in the development of these projects, you will find yourself in a team that specializes in some narrower part of it. For example, in the summer of 2018, I was working on Google Docs, adding new functionality for working with tables.

Since you are an intern in the company, you have a manager, who is called a host. This is an ordinary full-timer who himself is engaged in product development. If you don’t know something, can’t solve it, or have encountered any problems, then you should contact him. Usually there are weekly one-on-one meetings where you can discuss the current situation in the work on the project or chat about something completely irrelevant. In addition, the host is one of those people who will evaluate the work you have done during the internship. It will also be evaluated by a second, additional, reviewer. And of course, they are interested in your success.

Google will instill in you, but this is not certain, a good habit of writing a design document before you are going to do anything. For those who do not know, a disdoc is a document that sets out the essence of an existing problem, as well as a detailed technical description of its solution. Dzdok can be written both for the whole product, and for some one new functionality. After reading such documentation, one can understand the purpose for which the product was conceived and how it was implemented. Also often in the comments you can see dialogues between engineers discussing various ways to implement some part of the project. This gives a good understanding of the purpose for which each decision was made.

The peculiarity of the internship is that you have to use the wonderful internal development tools, of which there are a huge number in Google. Having worked with them and talked to many people who have previously worked at Amazon, Nvidia and other well-known technology companies, I can conclude that these tools have a good chance of being the best you will ever encounter in your life. For example, a tool called Google Code Search allows you not only to view the entire codebase, the change history of each line of code, but also gives you the ability to navigate through the code that we are used to in modern development environments such as Intellij Idea. And for this you need just a browser! The disadvantage associated with this feature is that outside of Google, you will miss these same tools.

As for the goodies, the company has cool offices, good food, a gym, good insurance and other goodies. I'll just leave here a couple of photos from the New York office:

How to get an internship at Google
How to get an internship at Google
How to get an internship at Google

How to get an offer?

Review

Now it's time to talk about something more serious: how to get an internship?

Here we will not talk about Google, but about how it happens in the general case. I will write about the features of the process of selecting interns at Google below.

The interview process for a company will most likely look something like this:

  1. Application for an internship
  2. Hackerrank/TripleByte Quiz Contest
  3. Screening interview
  4. First technical interview
  5. Second technical interview
  6. Onsight interview

Application for an internship

Obviously, it all starts with your desire to get an internship. To do this, you must express it by filling out a form on the company's website. If you (or your friends) have acquaintances who work there, then you can try to get through them. This option is preferred because it helps you stand out from the crowd of other students. If this is not possible, then apply yourself.

Try not to get too upset when you receive letters in the mail with content like β€œyou are so cool, but we chose other candidates.” And here I have a piece of advice for you:

How to get an internship at Google

Hackerrank/TripleByte Quiz Contest

If the recruiter liked your resume, in 1-2 weeks you will receive a letter with the next task. Most likely, you will be offered to take a contest on Hackerrank, where you will need to solve algorithmic problems in the allotted time, or TripleByte Quiz, where you will need to answer various questions related to algorithms, software development and low-level systems design. This stage serves as the initial filter in the selection process.

Screening interview

If the test is passed successfully, then you will have a screening interview, where you will have to talk with a recruiter about your interests and about the projects that the company offers to interns. If you show interest and your previous experience matches the company's expectations, you will be given the green light. In my experience, this is the most unpredictable place in the whole process, which is very dependent on the recruiter.

If you have completed these three challenges, then most of the randomness is over. Then there are technical interviews that are more dependent on you, which means you can more influence their outcome. And this is good!

Technical interviews

Then there are technical interviews, which are usually conducted via Skype or Hangouts. But sometimes there are more exotic services that require the installation of additional software. Therefore, make sure that everything works on your computer in advance.

The format of technical interviews is highly dependent on the position you are interviewing for. If we are talking about the position of Software Engineering Intern, then you will most likely be offered a couple of algorithmic tasks, the solution of which will need to be coded in some online code editor, for example, coderpad.io. They may also ask you an object-oriented design question to see how good you are at software design. For example, they may be asked to design a simple online store. True, I have never come across such a task, by the solution of which it would really be possible to judge this skill. At the end of the interview, you will likely be given the opportunity to ask questions. I strongly recommend that you take this seriously, because thanks to the questions you can show your interest in the project, demonstrate your competence in the topic. I usually prepare a list of potential questions ahead of time:

  • How is the project structured?
  • What difficult task have you had to solve lately?
  • What is the developer's contribution to the final product?
  • Why did you decide to go to work for this company?

You are not always interviewed by the person with whom you will work in the future. Therefore, the last questions can give an idea of ​​what is happening in the company as a whole. For me, for example, it is important that I have an influence on the final product.

If you successfully pass the first interview, you will be offered a second one. It will differ from the first one by the interviewer and, accordingly, by the tasks. The format will most likely remain the same. After passing the second interview, they may offer a third one.

Onsight interview

If up to this point you have not been refused, then an on-site interview awaits you, when the candidate is invited for an interview at the company's office. It usually consists of several technical interviews and one behavioral interview. During a behavioral interview, you talk to a manager about your projects, what decisions you made in different situations, and so on. That is, the interviewer is trying to better understand your personality and understand your experience in more detail. Some companies that conduct 3-4 technical interviews offer only one behavioral interview instead of an on-site interview.

Now all that remains is to wait for the recruiter's response. If everything went smoothly, then you will definitely receive a letter with a long-awaited offer. If there is no offer, don't worry. Companies systematically turn down good candidates. Try again to apply for an internship next year.

Interview coding

So, wait... We haven't had any interviews yet. We just found out what the whole process looks like and now we have to properly prepare for interviews so as not to miss the chance to have a pleasant and useful summer.

There are resources like codeforces, Topcoders ΠΈ Hackerrankwhich I have already mentioned. On these sites, you can find a large number of algorithmic problems, as well as send their solutions for automatic verification. This is all great, but it reminds me more of shooting sparrows with a cannon. Many tasks on these resources are designed for a long time to solve, require knowledge of advanced algorithms and data structures, while tasks in interviews are usually not so difficult and are designed for 5-20 minutes. Therefore, in our case, a resource such as LeetCode, which was created as a tool for preparing for technical interviews. If you solve 100-200 problems of varying complexity, then with a high probability you will not have problems during the interview. There are still some worthy Facebook Code Lab, where you can select the duration of the session, for example, 60 minutes, and the system will select a set of tasks for you, the solution of which, on average, takes no more than an hour.

Many people recommend reading the bookCracking the Coding Interview". I myself selectively read only some of its parts. But it is worth noting that I solved a lot of algorithmic problems in my school years. For those who have not had such experience, it is still worth at least flipping through this book.

Also, if you have had few technical interviews in foreign companies in your life, then it is recommended to go through a couple of trial ones. But the more the better. This will help you feel more confident during the interview and less nervous. Trial interviews can be arranged for Pram.

Behavioral Interviews

As I mentioned, during a behavioral interview, the interviewer is trying to get to the bottom of your experience and understand your character. What if you're a great developer but unable to work in a team? I'm afraid this won't work for many. For example, you might be asked the following question: "What is your weakness?" In addition to these types of questions, you will be asked to talk about the projects in which you played a key role, about the problems that you had a chance to meet, as well as their solutions. It is worth noting that in the first minutes of technical interviews, you may also be asked about this. How to prepare for such interviews is well written in one of the chapters in Cracking the Coding Interview.

Google

Now that you understand what the process of selecting interns looks like in general, and how to prepare for interviews, it's time to talk about how it works in the case of Google.

A list of available internships can be found here. If you are planning to go for a summer internship, then you should start applying as early as September.

Interviews

Here the process looks a little unusual. You will have a screening interview and two technical interviews. If you show yourself well on them, then you will move to the project search stage. You will need to fill out a rather long questionnaire in which you will indicate all your current skills, as well as express your preferences for the topic of the project and the location in which you want to do your internship.

It is very important to fill out this questionnaire well and with diligence! Potential hosts who are looking for people to join their project browse the available interns and arrange conversations with the candidates they like. They can filter students by location, keywords, checkmarks in the questionnaire, sort by interview scores.

During the conversation, the interviewer talks about the project they have to work on, and also learns about the experience of the candidate. There is a great opportunity to find out how the work process will actually look like, because you are communicating with the person who will be your host. After the interview, you write a letter to the recruiter with your impressions of the project. If you liked the project, and the interviewer liked you, then an offer awaits you. Otherwise, you will expect subsequent calls, which may be 2-3-4 pieces, or may not be more at all. It is worth clarifying that even if you passed the interviews well, but not a single team chose you at the project search stage (or maybe even no one talked to you), then, alas, you will be left without an offer.

America or Europe?

Among other things, you will need to decide where you will have an internship. My choice was between the US and EMEA. And here it is important to know about some features. For example, there is a feeling that it is more difficult to get to the USA. First, you will have to complete an additional 90-minute contest where you will have to solve algorithmic puzzles, as well as another 15-minute survey that tries to reveal your character. Secondly, in my experience and the experience of my friends, at the team search stage, you are less interested in you. For example, in 2017, I had only one conversation, after which the team chose another candidate, and I did not receive an offer. While the guys who applied to Europe had 4-5 projects each. In 2018, they found a team for me in January, which is quite late. The guys worked in New York, I liked their project, and I agreed.

As you can see, things are a bit more complicated with the US. But I wanted to go there more than to Europe. Plus, the US pays even more.

How to get an internship at Google

What to do after?

At the end of the internship, you have two options:

  • Get an internship for next year.
  • Pass two technical interviews to get a full-time position.

These two options are available provided that you have successfully completed your current project. If this is not your first internship, then you may even be offered a full-time position without interviews.

Therefore, the following situation arises, which can be described in one picture:

How to get an internship at Google

Since this was my first internship, I decided to go through two technical interviews in order to get a full-time position. According to their results, they agreed to give me an offer and started looking for a team, but I refused this option, because I decided to finish my master's program. Google is unlikely to disappear in 2-3 years.

Conclusion

Friends, I hope that I have explained in an accessible and understandable way how the path from a student to an intern looks like. (and then back...), and this material will find its reader, who will find it useful. As you can see, it's not as difficult as it might seem, you just need to cast aside your laziness, your fears and start trying!

PS I also have here tubule in a cart where you can look.

Source: habr.com

Add a comment