Internships in international companies: how not to flunk an interview and get a coveted offer

This article is a revised and expanded version my story about the internship at Google.

Hey Habr!

In this post, I will tell you what an internship in a foreign company is and how to prepare for interviews in order to get an offer.

Why should you listen to me? Should not. But over the past two years, I've done internships at Google, Nvidia, Lyft Level5, and Amazon. Interviewed at the company last year, received 7 offers: from Amazon, Nvidia, Lyft, Stripe, Twitter, Facebook and Coinbase. So I have some experience in this matter that might be helpful.

Internships in international companies: how not to flunk an interview and get a coveted offer

About Me

2nd year master student "Programming and data analysis" Petersburg HSE. Completed bachelor's program "Applied Mathematics and Informatics" Academic University, which in 2018 was moved to St. Petersburg HSE. During my undergraduate studies, I often solved sports programming contests and participated in hackathons. Then he rode on internships in foreign companies.

Стажировка

An internship is a job for students for a period of several months to a year. Such programs allow the employer to understand how the intern copes with their tasks, and the intern to get to know a new company, gain experience and, of course, earn extra money. If during the internship the student has done a decent job, then he is offered a full-fledged vacancy.

Judging by the reviews, it is easier to get a job in a foreign IT company after an internship than by passing an interview for a full-time vacancy. Most of my acquaintances got jobs at Google, Facebook, Microsoft.

How to get an offer?

Process overview

Let's say you decide that you want to go to another country in the summer and get a new experience, instead of digging your grandmother's beds. Whoa! Help Grandma anyway! Then it's time to get down to business.

A typical interview process for a foreign company is as follows:

  1. Serve application for an internship
  2. Decide Hackerrank/TripleByte Quiz contest
  3. Come through screening interview
  4. You are then assigned first technical interview
  5. Then second, and maybe third
  6. The name is on onsight interview
  7. Give offer , but it is not exactly…

Let's break down each of the points in more detail.

Application for an internship

The captain suggests that first of all you must fill out an application on the company's website. And most likely you guessed it. But what neither the captain nor you could know is that large companies use referral systems through which company employees recommend brothers in the craft - this is how the candidate stands out from the endless stream of other applicants.

If you suddenly do not have acquaintances who work in offices of interest to you, then try to find them through friends who will introduce you. If there are none, then open Linkedin, find any employee of the company and ask them to upload a resume. He will not write that you are a great programmer. And this is logical! Because he doesn't know you. However, the chance of getting an answer will still be higher. Otherwise, apply through the site. I received my offer to Stripe without knowing a single person working there. But do not relax: I was lucky that they answered.

Try not to get too frustrated when stacks of emails fall in the mail with content like “you are so cool, but we chose other candidates”, or they will not respond at all, which is even worse. Especially for you, I drew a funnel. Out of 45 applications, I received only 29 responses. Only 10 of them offered to be interviewed, and the rest were refused.

Internships in international companies: how not to flunk an interview and get a coveted offer

Can you feel the advice in the air?

Internships in international companies: how not to flunk an interview and get a coveted offer

Hackerrank/TripleByte Quiz Contest

If the resume survived the initial screening, then in 1-2 weeks you will receive a letter with the next task. Most likely, you will be asked to solve algorithmic problems on Hackerrank or take the TripleByte Quiz, where you will answer questions related to algorithms, software development, and low-level systems design.

Usually contesting on Hackerrank is easy. Often it consists of two tasks for algorithms and one task for parsing logs. Sometimes they are also asked to write a couple of SQL queries.

Screening interview

If the test is passed successfully, then a screening interview awaits you, where you will have to talk with a recruiter about your interests and about the projects that the company is engaged in. If you show interest, and your previous experience matches the requirements, then everything will go smoothly.

State all your wishes about the project. During such a conversation with a recruiter from Palantir, I realized that I would not be interested in working on their tasks. So we didn't waste each other's time anymore.

If you have lived up to this point, then the main share of chance is already behind! But if you screw up further, then blame only yourself 😉

Technical interviews

Then there are technical interviews, which are usually conducted via Skype, Hangouts or Zoom. Check in advance that everything works on your computer. During the interview, there will be something to be nervous about.

The format of technical interviews is highly dependent on the position you are interviewing for. Except for the first of them, which will still be for solving algorithmic problems. Here, if you're lucky, you'll be asked to code in an online code editor, like coderpad.io. Sometimes in Google Docs. But I've never seen anything worse than that, so don't worry.

They can also ask you an object-oriented design question to see how good you are at software design and what design patterns you know. For example, they may be asked to design a simple online store or twitter. Since last year I was interviewing for positions related to machine learning, at the interviews I was asked the appropriate questions: somewhere it was necessary to answer a theory question, somewhere to solve a theoretical problem, and somewhere to design a face recognition system.

At the end of the interview, you will likely be given the opportunity to ask questions. I recommend taking this seriously, because thanks to the questions you can show your interest and demonstrate competence in the topic. I am preparing a list of questions. Here is an example of some of them:

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

Believe me, the last two questions are difficult for interviewers to answer, but they are great help to understand what is happening inside the company. I note that not always you are interviewed by the person with whom you will work in the future. Therefore, these questions provide a rough idea of ​​what is happening in the company.

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 wow, you've come a long way.

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. Maybe not waiting... Not all companies carry out this stage, but many of those who do will be ready to pay for the flight and accommodation. Is it bad idea? Gorgeous! I haven't been to London yet... But in some cases you will be offered to go through this stage via Skype. I asked Twitter to do this because there were a lot of deadlines and there was no time to travel to another continent.

The onsight interview 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 tries to better understand the personality of the candidate and understand the work experience in more detail.

Well, that's all, there is only pleasant excitement ahead :3 Nerves are tickling, but you can't do anything. If everything went smoothly, then there is nothing to be afraid of - the offer will arrive. If not, it's sad, but it happens. How many places did you go to? At two? Well then, what were you hoping for?

How to prepare?

Summary

This is step zero. Just don't even read the article. Close the tab and go make a normal resume. I'm serious. While I was riding internships, a lot of people asked me to refer them to the company for an internship or a full-time position. Often resumes were poorly formatted. Companies rarely respond to applications anyway, and bad resumes tend to lower this percentage to zero. Someday I will write a separate article about resume design, but for now, remember:

  1. Indicate the university and years of study. GPA is also desirable to add.
  2. Remove all the water and write specific achievements.
  3. Keep your resume simple but neat.
  4. Have someone check your resume for English errors if you have problems with that. Do not copy the translation from Google Translate.

Read here is this post and take a look at Cracking the Coding Interview. There is also about it.

Interview coding

We haven't had any interviews yet. I have so far told you what the whole process looks like, and now you need to prepare well for interviews so as not to miss the chance to have a pleasant and possibly 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 you don't need it. 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 most likely you will not have any 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.

But if you suddenly turned out to be a nerd who sits out his youth on codeforces i was one of them, that's great. Happy for you. You should succeed 😉

Many more recommend reading 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. Didn't solve the gnomes? Then you better read it.

Also, if you have not had or had few technical interviews in foreign companies in your life, then be sure to go through a couple. But the more the better. You will feel more confident during the interview and less nervous. Arrange mock interviews for Pram or even ask a friend about it.

I failed my first interviews precisely because I did not have such practice. Do not step on this rake. I already did it for you. Don't thank.

Behavioral Interviews

As I mentioned, during a behavioral interview, the interviewer is trying to learn in detail about your experience and understand your character. What if you are a great developer, but a wild egoist who is impossible to work with in a team? Do you think it's easy to work with George Hotz? I don't know, but I suspect it's difficult. I know people who refused. So the interviewer wants to understand this about you. For example, you may be asked what your weak point is. 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, and their solutions. Sometimes such questions are asked at the beginning of a technical interview. How to prepare for such interviews is well written in one of the chapters in Cracking the Coding Interview.

Key Findings

  • Make a good resume
  • Find someone who can refer you
  • Serve wherever you can go
  • Solve litcode
  • Share the link to the article with those in need

PS I'm driving Telegram channel, where I talk about my experience of doing internships, share my impressions of the places I visit, and express my thoughts.

PPS YouTube channel, where I will tell useful things.

PPPS Well, if there is absolutely nothing to do, you can look here is the interview on the ProgBlog channel

Source: habr.com

Add a comment