Skip to content

Instantly share code, notes, and snippets.

@jvns
Last active November 3, 2024 03:54
Show Gist options
  • Save jvns/8178076 to your computer and use it in GitHub Desktop.
Save jvns/8178076 to your computer and use it in GitHub Desktop.
A list of questions you could ask while interviewing

A lot of these are outright stolen from Edward O'Campo-Gooding's list of questions. I really like his list.

I'm having some trouble paring this down to a manageable list of questions -- I realistically want to know all of these things before starting to work at a company, but it's a lot to ask all at once. My current game plan is to pick 6 before an interview and ask those.

I'd love comments and suggestions about any of these.

I've found questions like "do you have smart people? Can I learn a lot at your company?" to be basically totally useless -- everybody will say "yeah, definitely!" and it's hard to learn anything from them. So I'm trying to make all of these questions pretty concrete -- if a team doesn't have an issue tracker, they don't have an issue tracker.

I'm also mostly not asking about principles, but the way things are -- not "do you think code review is important?", but "Does all code get reviewed?".

Some things I haven't found a good way to ask about

  • Who decides what features get built?
  • Who are the people at your company with a lot of depth of experience? Will I be able to talk to them?

Engineering practices

  • Do you use version control? (if not, the interview should be over =))
  • Do you test your code?
  • How do you make sure that all code is understood by more than one person?
  • Do you do code review? Does all code get reviewed?
  • Do you have an issue tracker?
  • Describe your deployment process -- how do you find bugs in your team's code? What recourse do you have when you find a serious bug in production code?
  • Who is responsible for doing deployment? How often do you deploy?
  • How do you think about code correctness?
  • When something goes wrong, how do you handle it? Do devs get shamed for breaking the build?
  • How/when do developers talk to non-developers? Is it easy to talk to the people who are will be using your product?
  • Can I see some code the team I'm interviewing for has written? (from an open-source project you work on, for example)

Quality of life

  • How much vacation do people get? If there's "unlimited" vacation, how much vacation do people normally take?
  • Is it possible to take sabbaticals or unpaid vacation?
  • How many women work for you? What's your process for making sure you have diversity in other ways?
  • How many hours do people work in an average week? In your busiest weeks?
  • What time do people normally leave work?
  • Would I need to be on call? How often?
  • How often are there emergencies or times when people have to work extra hours?
  • Does your company support continuing education? (will they pay for employees to do a master's degree?)
  • What is your turnover rate like? How many devs were hired last year and how many left?
  • Do people work on the weekend?

As many of these as possible are "statistical" questions -- a company may say that they "don't have hours", but if everyone leaves at 9pm that's not a good sign.

Community involvement

  • Do you contribute to open source projects? Which projects? Which teams work on open source?
  • Do your employees speak at conferences about your work?

Culture

  • How do you determine if someone is a poor fit for your company?
  • How are your teams structured? What is the management structure like?
  • How often do you pair? What's pairing like? How often do inexperienced people work directly with experienced people?
  • What's the onboarding process like?
  • Is there any sort of institutionalized way of dealing with plateauing or preventing burnout? (Expecting to hear about rotation of duties or location, sabbaticals.)
  • Is it easy to move to other divisions or offices?
  • How does internal communication work? This one is super important and I need to remember to ask it more.
  • Are there catered suppers? (possibly bad)
  • How many hours a week does senior management work? Do they put in 80-hour weeks?

Financials/business model/growth

  • Are you profitable?
    • if not, how does this affect what you can do?
  • How do you make money? (I often explain to my parents or non-technical friends companies' business models to test if they really make sense.)
  • How much are you planning to hire in the next year?
  • Are company financials, minus salaries, transparent throughout the company?

Things to look for in real life

  • How is the office space physically organized?

Interviewing is hard! Ultimately I really just want to know

  • do people treat each other well?
  • do you work reasonable hours?
  • do you care about the work that you do, and keep trying to do it better?
  • do you only hire excellent human beings?
@kelseyq
Copy link

kelseyq commented Dec 30, 2013

How does engineering work get assigned? How are technical decisions made and communicated? What's your approach to technical debt? How do you balance support work and feature development? Can you give me an example of someone who's been in a technical role at your company for a long time, and how their responsibilities and role have changed? Do you have a dedicated designer? QA? Technical writer? Dev manager?

@jvns
Copy link
Author

jvns commented Dec 30, 2013

Can you give me an example of someone who's been in a technical role at your company for a long time, and how their responsibilities and role have changed?

This is such a good question. 100% using that. Also all the others.

@jvns
Copy link
Author

jvns commented Dec 30, 2013

Some super great questions from @bmastenbrook:

how often do you have meetings? Are there any scheduled/standing meetings? Who talks to customers (if appropriate) and how?

what time to people start & finish? How flexible is it? Is variability tolerated or is everyone expected to be on the same schedule?

has there been a situation where someone raised an ethical concern? If so, how was it handled? If not, have there really not been any?

how are decisions made? Is architecture dictated top down? Are ideas from anyone welcomed? If so, in what scope/context?

how are disagreements solved - both technical disagreements and other kinds? What happens when personalities clash?

@echristo
Copy link

Few thoughts of things to keep in mind if you're interested...

So for Financials/business model/growth:

If it's a start-up then:
a) Is there an exit plan? (Timeline?)
b) Are you profitable or do you have a plan for profitability?

About Open Source:

How do you contribute? Do you work mostly in the community or do you have a private fork?

Things to ask the person that's interviewing you personally:

Where have you worked before? Why did you leave/come to this company?
What gets the group excited in the morning to come to work?

@graue
Copy link

graue commented Dec 30, 2013

Who decides what features get built?

This is an important one I should be asking about! Any reason you find it ineffective to ask that directly?

Maybe ask: Is there a written roadmap all developers can see? How far into the future does it extend? How closely is it followed?

I'd put that under a "leadership style" category along with @bmastenbrook's suggestions of "how are decisions made?" and "how are disagreements solved?"

For quality of life, I'd add:

  • Do people check in when they're on vacation? How often? (may be bad if expected to be on call during all/most vacations)
  • Is it possible to work from home, say, 1 or 2 days a week? Does anyone do this? (can be a nice option to have)

@zmagg
Copy link

zmagg commented Dec 30, 2013

The answer to your last point: "do you only hire excellent human beings?", is bound to be no for companies over a certain size. I find it far more interesting to dig into how companies react to bad scenarios than to check to see if everybody there is awesome. They aren't, but good culture can treat the non-awesomeness quickly, bad culture lets it moulder. This is obviously a question for back channel interviewing hard to get an answer straight up.

Some questions that I think get at answering this:
What's your turnover rate? What's your retention rate of women over 1.5 years? Do you think you could've done anything differently to keep people who left? What do you wish you had known when you joined this company?

@ncraike
Copy link

ncraike commented Dec 30, 2013

When you say "catered dinners", do you mean midday meals or evening meals? Which one "dinner" means varies regionally.

@jvns
Copy link
Author

jvns commented Dec 30, 2013

@danluu suggests

How is performance evaluated?

@jvns
Copy link
Author

jvns commented Dec 30, 2013

@marcprecipice suggests:

"How often do you offer above asking? Can I speak with someone who got such an offer?"

@ircolle
Copy link

ircolle commented Dec 30, 2013

Great list of questions!

I hope you don't get many "No"'s to - "Do you test your code?" or "Yes"'s to "Do devs get shamed for breaking the build?" ;-)

I would also recommend adding more open-ended questions, or rephrasing some of the above so they're not so "Yes/No". Questions like, "How do you envision me contributing to your team?" or "What about my background/resume, etc. caused you to be interested in me?" can give you a greater depth of insight into what the company and the interviewer are looking for.

Most importantly, try and enjoy the process of getting to know the companies you're interested in. Ask to talk with as many members of the current team as you can get away with - maybe you'll have a great rapport with the first person you speak with, but others not so much (or vice versa).

@Madrigal
Copy link

That is a good set of questions! I very much like that you avoided the please-the-interviewer questions like "do you think testing code is important?".

For some of the engineering practices set of questions it would be great if you situate them first on their last (or more important) project, and then asking those questions about it. For example

Did you used source control on your last project?
How did you deployed your code in that project?

@vasi
Copy link

vasi commented Dec 31, 2013

How fast are you growing? What's your plan to handle growth? Especially wrt bigger teams, or larger number of teams.

@c4milo
Copy link

c4milo commented Jan 2, 2014

This is a great list but I think it is also important to define your tolerance threshold as you will never find a company fitting perfectly.

@briangordon
Copy link

@c4milo

And there are a couple of things that you don't necessarily expect to get, but if the employer has them then boy do you want that job.

  • No managers / developers work on whatever they feel inclined to. (Valve, GitHub)
  • 4 day work week (Treehouse)
  • Chance to work full-time on open source

@dwbutler
Copy link

dwbutler commented Jan 3, 2014

In addition to these (great) questions, I'm curious to know what everyone thinks are "good" or "desirable" answers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment