Software Engineer Job Interview Manual

Job interviews for software engineers are pretty 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.

This "manual" aims to help you prepare for the interviews

Long Before The Interview

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.

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

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

Here's what to expect in different kinds of interviews:

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.

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

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

Once You Have The Offer

External Resources