This series started with my experience job hunting in the US as a software engineer, where I wrote about the talent shortage in Silicon Valley and my own job search. The previous post was about programming languages: which one should you learn, and if you want to join Google but never learned a certain language, would they accept your background? By now, I hope everyone understands the importance of sharpening your strongest language. This post shares what the interview process in the US generally looks like, so you know what to expect and how to prepare.
Once your resume and cover letter are ready, you can apply through all kinds of channels. (Resumes, cover letters, and job hunting itself get their own post next, on going on the offensive: what do people in the US use to find jobs, and which platforms give you the most interviews?) From my experience, the interview process for software engineers goes roughly like this:
The Interview Process
-
Your resume gets past the automated screening software used by the company, platform, or recruiters, and then a human reads it. A friend of mine who works in HR in the US told me they spend no more than 30 seconds on a resume, so both the content and the formatting matter a lot. They then decide whether to contact you and invite you into the interview process.
-
The first phone screen. A recruiter schedules a call with you, about 15 to 30 minutes, and it serves a few purposes. First, they want to confirm you can speak English and communicate. Second, they will ask about your technical background. Do not underestimate recruiters at tech companies today. Many of them know a fair amount about technology and programming languages, and they may test you with a few simple language questions. Third, and possibly most important, they want to know whether you need a work visa. With the US economy booming, the odds of winning the April H-1B work visa lottery are only about 30 percent (that was the 2015 figure; the rules and the odds have changed several times since), and this year the applications hit the cap within a week. So if you apply to Google in August, the earliest they could sponsor you is next April’s lottery. Fourth, they ask why you are interested in this company, to check that you believe in its products and culture. Fifth, they ask which language you are strongest in, or prefer to use (see the previous post for details), so they can arrange for an engineer in that area to interview you in the next round.
-
If you pass the recruiter screen, the recruiter schedules a second call, the technical phone screen, usually 45 to 60 minutes. Many companies use an online collaborative code editor such as CoderPad for this round. Google, interestingly, uses a Google Doc. I suspect this is precisely so that syntax highlighting cannot help you. You just have to watch the details and avoid typos. On this call, the engineer introduces the company briefly, asks a bit about the projects you have worked on, and then gives you problems to solve. These problems are very often about algorithms and data structures. For how to prepare, see the later posts on interview preparation: what to practice, and how to balance practice with the job hunt and on grinding practice problems, the data structures and algorithms gauntlet every software engineering interview throws at you.
-
It varies by company. Some companies hold a second technical phone screen, or send you a coding challenge to complete and return within a time limit.
-
If you pass the technical phone screens, the recruiter invites you to an on-site interview at the company. It can run anywhere from two to eight hours, so be ready to give it a full day. The day is usually split into rounds of 45 or 60 minutes, and in each round an engineer gives you a problem. About 80 percent of the time, they want you to solve it on a whiteboard. The rest of the time, they have you code on an actual computer, to observe your real coding habits and style.
-
After the on-site, you wait to hear back from the recruiter. Startups usually respond quickly. After my Uber on-site, the recruiter told me the result the next afternoon. Big companies like Google tend to be slower. Ask your recruiter how long the wait usually is, and follow up regularly.
-
If you pass the on-site and the company wants to hire you, the recruiter usually calls with the news first, checks which other companies you are interviewing with and when you could start, and then sends you the formal offer. In the US, companies expect you to negotiate. Anything in the offer that concerns you, or that you want changed, is open for discussion. See the later post for details: I Got the Offer: What Should I Watch For, and Can I Negotiate More Salary, Stock, or Vacation?
Next in the series: Waiting to Be Discovered: How Do Recruiters and Headhunters Find You, How Do You Stand Out, and Does LinkedIn Matter?
This post was originally published on my former blog, 「半路出家軟體工程師在矽谷」, on August 9, 2015. The blog is now offline, and the text is preserved via the Wayback Machine. It has been lightly edited for this site.