Interviewing for a Software Engineering Position

Overview

The interview process is as much about preparing yourself to answer questions about you and your skills as it is you interviewing the prospective employer to see if it is a place where you want to work. Very close attention should be paid to the interview process, or lack thereof, that you go through it.

The basic stages that you should expect from a well engineered interview process are as follows (not necessarily in the following order)

  1. Initial phone screen
  2. Technical phone screen
  3. Coding/Algorithm Challenge or Homework problem
  4. Hiring Manager, Tech Lead/Team interviews
  5. Offer and Negotiations

In general, it is my opinion that you should be asked to write some code. At the very least you should be asked to talk about code that you have written and/or walk through and discuss/debug some code. I’m not completely convinced of the value of the brain-teaser/algorithm type problems that some companies use to determine your skill as a Software Engineer, but they do get you to write code for them.

All along the way you should be also be interviewing the company. You should approach each interaction with a specific goal and a set of questions that you want to ask; each time learning more about a prospective employer.

Decide What is Important to You and Identify Companies

The first thing that you need to do is decide what it is that you are looking for in an employer and what is important to you. This will depend on your personal preferences as well as where you are in life. If you are a few years out of college without a family what is currently important to you is going to be different from someone who has one child in college and two others in High School.

Ultimately, the most important thing to enumerate are your values and what sort of company culture in which you will thrive.

Things important to me:

  1. Honesty and Integrity
  2. Engineering Excellence
  3. Difficult Problems
  4. Work-life Balance

TODO:

  • Elevator pitch
  • Tell me about yourself answer
  • What sort of position are you looking for? Think about the kind of position that you want and what you are trying to accomplish with this career move. What sort of role are you looking for, what type
  • Why are you leaving?
  • Why do you want to work at X company?
  • Money, do your research and know what salary range you are looking for

Researching the Company

Interviewing the Company

Are their defined policies for security, DNS, storage, monitoring and alertingData governance? code reviews?

The Guerrilla Guide to Interviewing (version 3.0)