How to get an internship at Google
A week ago we told about our educational programs , where in the comments we were told about the importance of internships and practical experience. It is impossible to disagree with this, since theoretical knowledge must be reinforced by practice. With this post we open a series of articles about summer internships for students: how the guys get there, what they do there and why it is good.
In the first article I will tell you how to successfully go through all the stages of interviews and get an internship at Google.
A few words about yourself
I am a student of the 1st year of the master's program at the St. Petersburg campus of the HSE, I graduated from the Bachelor of Academic University 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 and here .
First, I want to talk a little bit about how the internship at Google looks from the inside.
Every intern who comes to Google is tied to a team. This may be a team that develops internal infrastructure, about which a person outside the company has not heard anything, or a product that is used by millions of people around the world. Such products can be well-known YouTube, Google Docs and others. Since the development of these projects are engaged in dozens, or even hundreds of developers, you will be taken to a team that specializes in a narrower part of it. For example, in the summer of 2018, I worked on Google Docs, adding new functionality for working with tables.
Since you are an intern at the company, you have a manager who is called a host. This is the usual full-time timer, which itself is engaged in the development of products. If you do not know something, can not solve or have encountered any problems, you should contact him. Usually weekly one-on-one meetings are arranged where you can discuss the current situation in the work on a 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. Still it will be evaluated by the second, additional, reviewer. And of course, they are interested in everything to work out.
You’ll get vaccinated on Google, but this isn’t exactly a good design document writing habit before you are about to do anything. For those who do not know, dizdok - this is a document that sets out the essence of the existing problem, as well as a detailed technical description of its solution. Dizdok can be written as for the whole product, and for any one new functionality. After reading this documentation, you can understand the purpose for which the product was conceived, and how it was implemented. Also, often in the comments you can see the dialogues between engineers discussing various ways of implementing some part of the project. This gives a good understanding of the purpose for which each decision was made.
The specialty of the internship is that you have to use great internal development tools, which are a huge amount in Google. After working with them and talking to many people who previously worked at Amazon, Nvidia and other well-known technology companies, I can conclude that these tools have a great chance to be the best among all that you will ever meet in your life. For example, a tool called Google Code Search allows you not only to view the entire code base, the change history of each line of code, but also allows you to navigate through the code to which we are used in modern development environments such as Intellij Idea. And for this you need just a browser! Associated with the same feature minus is
As for the buns, the company has cool offices, well-fed, provide a gym, good insurance and other nishtyaki. Just leave here a couple of photos from the New York office:
How to get an offer?
Now it's time to talk about something more serious: how to get an internship?
Here we are not talking about Google, but about how it happens in the general case. About the features of the selection process of interns in Google, I will write below.
The process of interviewing a company is likely to look something like this:
- Internship application
- Contest on Hackerrank / TripleByte Quiz
- Screening interview
- First technical interview
- Second technical interview
- Onsite interview
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, you can try to get through them. This option is preferred because it helps you stand out from the huge flow of other students. If this is not possible, then submit yourself.
Try not to get very upset when you receive emails with the following content: “you are so cool, but we have chosen other candidates”. And here I have for you advice:
Contest on Hackerrank / TripleByte Quiz
If your resume is liked by the recruiter - in 1-2 weeks you will receive an email with the following task. Most likely, you will be offered to pass a contest on Hackerrank, where you need to solve algorithmic problems in the allotted time, or TripleByte Quiz, where you will need to answer various questions concerning algorithms, software development and low-level systems. This stage serves as the initial filter in the selection process.
If the test is successful, then you will receive a screening interview in which you will have to talk with the recruiter about your interests and about the projects that the company offers to interns. If you show interest, and your previous experience will meet the expectations of the company, then 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 coped with these three tests, then the bulk of chance is over. Then there were the technical interviews that are more dependent on you, which means you can more influence their outcome. And this is good!
Next are the technical interviews that 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 at which you will be interviewed. 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 encoded in some online code editor, for example, coderpad.io. You may also be asked a question about object-oriented design to see how well you know about software design. For example, you may be asked to design a simple online store. True, I have never come across such a task, by the solution of which one could really judge this skill. At the end of the interview, you will probably 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 subject. I usually prepare a list of potential questions in advance:
- How does the project work?
- 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 in this company?
You will not always be interviewed by the person with whom you will work in the future. Therefore, recent 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 impact on the final product.
In case of successful completion of the first interview you will be offered the second. From the first it will be different interviewer and, accordingly, tasks. The format is likely to remain the same. After completing the second interview, they can offer a third one.
If you haven’t been denied up to this point, then an onsite interview is waiting for you when a candidate is invited for an interview at the company's office. It usually consists of several technical interviews and one behavioral. During a behavioral interview, you talk with the 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 more thoroughly understand your experience. Some companies that conduct 3-4 technical interviews, instead of onsite interviews, offer to remotely complete only one behavioral one.
Now it only remains to wait for the recruiter's response. If everything went smoothly, then you will definitely receive a letter with a long-awaited offer. If the offer is not - do not worry. Companies are systematically denying good candidates. Try another internship next year.
So wait a minute ... We haven't had any interviews yet. We only learned how the whole process looks like and now we have to prepare thoroughly for the interviews so as not to miss the chance to enjoy the summer with pleasure and profit.
There are resources like Codeforces , Topcoder, and Hackerrank , which I already mentioned. At 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 likely to shoot a cannon on a sparrow. Many tasks on these resources are designed for a long time of solution, require knowledge of advanced algorithms and data structures, while tasks for interviews are usually not so complex and are designed for 5-20 minutes. Therefore, in our case, a resource like LeetCode will be much more suitable .which was created as a tool for preparing for technical interviews. If you solve 100-200 tasks of varying complexity, then you most likely will not have problems during the interview. From decent there is still Facebook Code Lab , where you can select the session duration, for example, 60 minutes, and the system will select a set of tasks for you, which, on average, takes no more than an hour to solve.
Many more advise reading the book Cracking 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. Who had no such experience, yet this book is worth at least leafing through.
Also, if you have had few technical interviews with foreign companies in your life, then it is recommended to pass 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 organized at Pramp .
As I already mentioned, during a behavioral interview, the interviewer tries to learn more about your experience and understand your character. What if you are a great developer, but are not able to work in a team? I am afraid that it will not suit many. For example, you might be asked the following question: “What is your weak side?” In addition to questions of this kind, you will be asked to tell about the projects in which you played a key role, about the problems you have had to deal with, 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.
Now, when it is clear what the process of selecting interns looks like in general, and how to prepare for interviews, it is time to talk about how this works in the case of Google.
A list of available internships can be found here . If you are planning to go on a summer internship, then you should start moving in September.
Here the process looks a bit unusual. You will have a screening interview and two technical ones. If you show yourself well to them, then you will proceed to the project search stage. You will need to fill in a rather long questionnaire in which you will indicate all your current skills, as well as express your preferences on the subject of the project and location in which you want to do an internship.
It is very important well and with diligence to fill this form! Potential hosts who are looking for people in the project are looking at available interns and arranging conversations with those candidates that they liked. They can filter students by location, keywords, checkmarks in the questionnaire, sort by points for interviews.
During the interview, the interviewer talks about the project, which is to be worked on, and also learns about the candidate's experience. 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 is waiting for you. Otherwise, you will expect subsequent calls, which may be 2-3-4 pieces, and maybe more and not be at all. It should be clarified that even if you had a good interview, but at the project search stage you were not chosen by any team (or maybe no one even talked to you), then, alas, you will be left without an offer.
America or Europe?
Among other things, you will need to decide on where you will have an internship. I had a choice between the USA 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 into the USA. First, you have to go through an additional contest lasting 90 minutes, where you need to solve algorithmic puzzles, as well as another 15-minute survey trying to reveal your character. Secondly, in my experience and the experience of my friends, at the stage of searching for a team, you are less interested in your team. 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 filed in Europe had 4-5 projects. In 2018, I found a team in January, which is quite late. The guys worked in New York, I liked their project, and I agreed.
As you can see, everything is a little more complicated with the USA. But I wanted to get there more than in Europe. Plus, in the USA they pay more.
What to do after?
At the end of the internship, you have two options:
- Get an internship for the next year.
- Complete 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 internship is not your first, then you may even be offered a full-time position without interviews.
Therefore, the following situation arises, which can be described in one picture:
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, I agreed to give an offer and started looking for a team, but I refused this option because I decided to finish the magistracy. Google is unlikely to disappear in 2-3 years.
Friends, I hope that I have told in an accessible and understandable way how the path from the student to the trainee looks (and then back ...) , and this material will find its reader to whom it will be useful. As you can see, all this is not as difficult as it may seem, you just need to fold your laziness, your fears and start trying!
PS I also have a small canal in the cart where you can drop in.