Software Engineer Job Interview Guide

Updated: 2018-12-20

Job interviews for software engineers are pretty standardized.

This guide aims to help you prepare for the interviews.

Prep: Long Term

Long Before The Interview

Think About Your Career

Do you enjoy building product? Or want to focus on testing or DevOps? Or maybe a security or AI domain expert? Do you prefer to be an IC(individual contributor) or a people manager? Acing a job interview should not be your ultimate goal. Think about your career

Create The Dream Company List

The key to your career growth as a software engineer is not just to ace some job interviewers every 2 years, but you need to develop a good understanding(and be passionate) about how technology is solving the real world problems. Research Your Next Company

Accumulate Your Professional Assets

Writing your resume could cause some serious headaches, and can easily delay the start of your job search. Try to accumulate some asset alone the way, so the resume would be just a quick snapshot at the time of the job application:

  • if you are a front-end engineer, create a portfolio;
  • if you have some code that do not mind sharing to the public, move it to GitHub;
  • maintain a blog or some notes(just like this website) to forge your knowledge graph. (I actually occasionally got some positive feedbacks from the interviewers after I added www.hackingnote.com to my resume)s

Prep: Mid Term

Months Before The Interview

Computer Science Basics

Normally not a stand-alone session, but questions can be asked in either phone screens or onsite interviews. Better prepared than sorry.

  • operating system, process, thread, memory
  • network
  • concurrency, locks, mutex, semaphores
  • OOP(design an elevator/parking lot)
  • Garbage Collection
  • comparisons between the concepts

Coding/Algorithm Interview

System Design Interview

Machine Learning Interviews

Prep: Short Term

Right Before The Interview

Research The Interviewers

  • Linkedin

Get familiar with your resume

  • be ready to discuss any experience on resume
  • do not put anything that you cannot provide details or reasoning

During The Interview

The format is very standardized. This is what to expect:

  • Phone Screen by recruiter or HR: for exchanging information. 15-30 mins.
  • Online tests and/or technical phone screens: coding + basic knowledge, 45 mins to 1 hour. Sometimes multiple rounds.
  • Onsite interviews: 3 to 5 session, half day to full day. Depend on job level, it may have coding(data structure + algorithm), system design, specialized area(e.g. machine learning), and past experiences/soft skills.

Note about recruiter phone screen

Recruiter will collect your background info(like your past experiences, your preferred technologies/languages, if you are eligible to work without sponsorship, etc) and also give you some info about the hiring teams.

These should be routine and easy, unless recruiter thinks you are a not a fit and would not even pass your resume to the hiring team. So the key here is to do some homework, know about the company and the team and tailor your self intro to it.

If You Do Not Know The Answer

“I’m not familiar with this but this is how I would approach it”

At The End Of The Interview

Offer Time

Offer Evaluation

External Resources