We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

Structure

The structure of your interview process will vary from company to company, but there are a few common steps that I can forewarn you about:

  1. The phone screen
  2. The homework assignment
  3. The cultural interview
  4. The technical interview
  5. The offer

Larger companies tend to have more structure and longer processes. Small companies tend to have less structure and shorter processes.

1. The Phone Screen

If you're getting called, this means that your resume was chosen out of a big stack! Congratulations! You're already doing something right. This isn't an interview, it's just a phone call to get to know you a bit and to see if you're worth bringing in for an interview.

Sometimes this is done by a hiring manager (small company) but is often done by a recruiter or HR person (larger company). They'll ask you a few questions about your background, and they'll tell you a bit about the company and the position. This is a great time to ask questions about the company, the position, and the rest of the interview process.

It's unlikely you'll be disqualified at this stage. The only reason I've disqualified candidates here in the past is because they were rude or there was a misunderstanding about the information on their resume.

2. The Homework Assignment

Not all companies send homework assignments, but some do, and it tends to be more common for junior or entry-level positions. Hopefully, it goes without saying, but do your best on any homework assignments you undertake. This is a stage where some percentage (maybe even a majority) of candidates are disqualified.

In descending order of importance:

  1. Complete the task
  2. Make sure your code is readable and well-organized
  3. Make it performant

If you're in the fortunate position of having many companies wanting you to do homework assignments, be judicious. Don't do a bad job on 5 take-home assignments. Do a good job on 2-3 and either turn down the rest or ask for more time.

Be quick. Use the full time given (it's common to be told not to spend more than X hours). But complete it and turn it in quickly. This moves you to the top of the pile and shows that you're excited and motivated.

3. The Cultural Interview

Some companies combine the cultural (soft skills) interview and the technical (hard skills) interview, but some separate them, or even have multiples of each.

This part of the interview won't contain tricky technical problems, it's really just:

  • Do we like this person?
  • Will we get along with them?
  • Will they fit in with the team?
  • Are they a good communicator?
  • Are they happy? Or a downer?
  • Hard worker? Responsible? Kind?

I don't have much more advice here, other than to relax and try to make a connection with the interviewer. Take interest in them, ask them questions, and try to find common ground. Classic stuff from the book "How to Win Friends and Influence People".

4. The Technical Interview

There are several main categories of technical interviews:

  • Whiteboarding (drawing + talking)
  • Verbal problem solving (talking through a problem)
  • Live coding challenges (coding on a shared screen or in-person)
  • Walkthroughs of past projects (explaining code you've written in the past)

Of these, the content of the questions usually falls into one of these categories:

  • Data structures and algorithms: Write an algorithm that finds matching tweets in log(n) time.
  • System design and architecture: Which endpoints would you expose in a REST API for a URL shortener?
  • Problem-solving and debugging: Here's a bug; explain your approach to solving it.
  • Language- or technology-specific questions: What's the difference between a slice and an array in Go?

In my experience, larger companies tend to do more whiteboarding and live coding, while smaller companies tend to place more emphasis on verbal problem-solving and walkthroughs of past projects.

5. The Offer

If you get an offer, congratulations! The one piece of advice I'll give here is to take a couple of days to "think" about it. You don't need to accept immediately. Ideally, you can get a second offer and make a choice, but even if you don't, take a day or two.

Your first job doesn't need to be the sexiest high-paying job in the world. Sometimes it makes sense to take the base hit and use the experience to leverage your way into a better spot in a couple of years. Of course, if you're in a position to be picky, then by all means, be picky, but if you're in super high demand you probably don't need my advice anyway.