I'm going to start interviewing again over the next couple of months. I'm about three years out of school, got some good programming experience under my belt that I can boast about, and finally feel like I can call some of the shots. A question that has been bouncing around in my head for awhile is what are the best questions I should ask my potential future employer to find out if they are on the up-and-up and worthy of my talent (Ha!).

I realize that a good place to start is to rattle off the Joel Test, but what other questions/resources can I gleam from the SO hive mind?

+17  A: 

Ask them what program they use for source control.

Shawn Simon
And if they say "Visual Source Safe" then run away screaming ;-)
Wayne M
Good comment. I'd extend it to "RCS" or "None". After all, if you aren't going to make decisions (accept offer, reject offer, run away screaming) based on the answer, why ask?
David Thornley
@David: Even after asking, you might still take the job. At least you'd know what kind of mess to expect. And whether you should continue your search for a better job actively, even while working for them.
Bill Karwin
+7  A: 

If the place uses Microsoft products:

"Do you have a MSDN subscription?"

If the answer is no, run.

What obvious values does msdn subscription bring?
I think it means that they aren't concerned with tools; MSDN subscription gives you most everything Microsoft makes, so you get all the top-quality tools. I think not having it means you'll be using the lower-end editions of the tools you're going to need (VS Express, for example, instead of Pro)
Wayne M
This also says they like keeping up to date with the latest tools/products. Teams that don't have MSDN are stuck with whatever version of Visual Studio and Windows was purchased and have to beg for the budget to upgrade... MSDN is really cheap, no reason not to have it.
Depends on the MS products they are using and size of the team. But, certainly if they expect you to be using express editions, get out of dodge fast. You're likely to be spending more of your time working around a desire to avoid spending money. The underlying concern is "cheap" often leads to "violating licenses", both for commercial and open source software.
Jim Leonardo
Even my primarily Linux/BSD employer has an MSDN subscription. They are quite valuable.
+2  A: 

How much will I be paid?

Brad Barker
it's important to ask about their health benefits as well. If they give PPO, run.
I always ask about the 401(k) plan, and don't worry too much about the pay.
David Thornley
I don't think money is as important as the environment, if you are working on cool technology with cool tools, thats worth accepting a smaller salary, but usually companies who provide a good work environment also provide a good salary :)
@Haoest - A little subjective, eh? I would look more that they have *options*. If you're likely to be traveling, a good PPO could be better than an HMO. Also, it's really true that different ppl have different needs, so blanket statements really don't work in this area. Of course, you also need to consider the size of the organization as well.
Jim Leonardo
+12  A: 

Where do you see me in 5 years time in your organisation?

How have you learnt from mistakes made in your previous projects? if the interviewer says they don't make mistakes they are wrong and ego centric. If they do post mortems then great.

How do you ensure quality software? You'll be amazed how many people just don't test or expect code to be done right and first time and then complain about bugs

Do you regularly have late night sessions to meet deadlines? an indication of how much time you will be expected to put in and perhaps unrealistic deadlines

Do you have a training budget? How do you expect developers keep up with the latest advances. no training or investment in developers should ring alarm bells

If the company is not using the latest bleeding edge technology ask what are there upgrade plans. no upgrade plans may make business sense but as a developer you may not want to be stuck working with legacy technology

John Nolan

I think you might learn more from people currently employed their than from whoever is doing hiring...ask them about the tools they use and the processes they follow.

Thomas Owens
+6  A: 

Find out what tools they provide for their programmers... do they give dual monitors? Good PCs?

Also, find out if they are open to experimentation and new ideas in engineering... if they value sticking to the status quo, I would say that is a bad thing.

Mike Stone
+4  A: 

Ask them

  • All the normal stuff (pay, holidays, raise potential, training options, etc)
  • Whether they use continuous integration.
  • Like @Stu said - MSDN if Microsoft.
  • How do they test - separate testing departments are usually a bad sign.
  • What's the maximum time someone's been there and what progress have they seen - long doesn't always mean good but unless it's a start-up if everyone's on less than two years that's usually a warning.
+19  A: 

My two favorite questions to ask are:

  1. What is your favorite thing about this job?
  2. What is your least favorite thing about this job?

They seem like obvious questions, but they definitely worth asking. The first question is a softball, but it prepares the interviewer for the 2nd question.

It's amazing the type of insights you can get from their answers to the 2nd question.

+3  A: 

I'd ask them how they feel about using open source software. In the java space I'd refer to some apache projects and jakarta projects.

I've had some horrible experiences with proprietary j2ee application servers and version control systems.

+7  A: 

Ask them how they make money.

Do they have a single revenue stream, or multiple?

How closely is the sw dev tied to the revenue stream?

+17  A: 

"What do you expect me to have accomplished for Company within the first six months?"

Advantages of this question:

  • Demonstrates that your orientation is toward bringing value to the company.
  • Gives you an idea of how well they have defined the position that you're interviewing for.
  • Gives you an idea of whether you'll be working on worthwhile stuff right off the bat, or whether you'll start out doing scutwork.
  • Gives you an idea of whether this job will be not challenging enough to keep you interested, too demanding, or just right.
+3  A: 

I was interviewing recently, and I asked every single interviewer how they liked their job. Their answers told me a lot about the companies I interviewed with.

If you are interviewing with a startup, ask them how they plan to make money (or how they are making money now). If they don't know, you might need to be worried.

Derek Park

How about, "When can I ride in the gold-plated hummer?"

+5  A: 

Ask them about their "process" -- how formal it is, how well-enforced its rules are, how often they make changes, etc. Different people like different amounts of formality, so it's up to you to determine if their process is going to be too lax or too onerous for your taste.

Kristopher Johnson

I have an interview on Tuesday, and I was thinking if printing off the Joel Test and mentioning it by name as a first step.

Also, I was thinking of asking "Was your last project completed on schedule? Is it a typical example? What would you change about the process next time?"

+2  A: 

Ask about the working conditions for programmers. Office noise level, % of time spent programming etc. (i suppose thats covered by the Joel Test though)

If you are lucky you will actually get to see the office setup but at least in my current job the security policy means that potential new hires are kept well away from the real working environment.

Another good question I like is "Do you have any concerns about hiring me?" - if the interviewer is honest with youit gives you a chance to respond to anything that might be standing between you and the job in the interviewer's eyes.

+2  A: 

@Jason's point about how closely your work ties to their revenue stream should not be overlooked. IT is viewed simply as a cost sink in much of the commercial world, so you will be struggling against the line organizations if you work for a company where your work is far removed from what they create. There are a few exceptions: companies who love to innovate internally. Nypro comes to mind.

As per my earlier question, "what's your policy on intellectual property?"

Also, work-life balance, hours, etc.:

  • What hours do the other developers (or other resources you will need) normally work?
  • How flexible is the work week?
  • At how finely grained a level do you track hours? (It may seem like a waste of 15 minutes every day, but I've found that companies that actually ask you to account for your hours in a week in some sort of log system actually do get more done -- though that's a small sample size.)
  • Do people work from home? How often?

Lastly, if you're not already living in the area:

  • In what parts of town do people who work here like to live?
  • Do people carpool? How's the public transportation?
James A. Rosen

Ask whether they, or any of their other programmers, were part of the "Stack Overflow Private Beta".

No shameless plug here. No sir. ;P
Jim Leonardo
+4  A: 

I know this is on the Joel test but I'd re-iterate the importance of a spec. I wish I'd had to forsite to ask my previous employer for their last spec! As it turned out the spec was "the current system", which in all honesty was a pile of rubbish and I was expected to rebuild it.

Flexibility in the workplace is a big one for me, theres no reason for me to be there at 9am every day.

Always ask about tools and grill them further if they use something you've never heard of. If Source Safe or PVCS Tracker pop up run like hell!!

The thing I learned from my last interview is to try and monitor how much time you spend talking vs the interviewer. If you talk for any less than 70% of the time it probably means the interviewer isn't a great judge of character IMO, and other people they've employed might not be that smart.

+1  A: 

This is a short awesome clip. Hacking the Technical Interview.

These tips go way beyond interviews. This is basic "how to control a conversation" advice.To be fair, use these techniques at your own risk. Fastest way to get marked down is to cause the other person to think you are trying to social engineer your way through the interview. Establishing rapport this way is great. But use it just to get the conversation flowing, don't try to be something you aren't. Better to not get the offer than to get fired 3 months later or be in a job you hate or aren't doing well in.
Jim Leonardo
+2  A: 

@Rory: Great idea to ask to see one of their project specs. You took the words out of my mouth.

Sometimes when I ask to see their spec, or a test plan, or a post-mortem, or any SDLC documentation like that, I get an answer like, "umm, we don't really do that as much as we should (i.e. never), but we're hoping by bringing you on here that we can grow into some better habits."

If you get that answer, ask directly if you will be given the authority to create that kind of development culture. Unless you are given a manager title and authority, as well as full support from the higher-up executives, you can assume that it isn't going to happen.

Bill Karwin

This goes along with the "best tools that money can buy" from the Joel test, but ask if other developers have dual monitors or if the management would be open to getting extra monitors for you.


I asked this question, to get an idea of their project scheduling and expectations of work hours: "what time did you go home each day last week?" I then immediately clarified that I had no problem with the occasional overtime (where occasional means a few times a year), even if it's an all-nighter, but that I expected that the normal work day should be closer to 8 hours than 12.


i have written pretty extensively on the subject when i was interviewing:

i would actually print this and take it with me to the interview, and go through the list checking off their answers.


Ask how you differ from the "ideal" candidate they were looking for.

This will give you an indication of:

  • The core qualities the interviewer has in mind, without all the fluff from the job spec.
  • Any criteria you do meet that you need to communicate better.
  • How well the position has been defined. If they just need another warm body, you should seriously consider passing.

Ask why they are hiring? Did someone else leave or are they expanding their team? If someone left, ask why they left...were they fired? laid off? etc...

I find that it gives you some indication of how the company has been doing through the recession and how the management is treating their employees.

Nick U

I've conducted lots of interviews (hundreds), so this is my point of view from both sides...

"Do you comply with the license terms of the systems/components you are using?" (Applies every bit as much to open source as commercial systems/components). Companies that don't even try to play right with licenses are likely to not play right with you, not to mention the ethical problems you'll find yourself in.

"What will be my relationship to you?" You may be interviewed by someone who is on another team. If they are part of your team, then you're on to the next question...

Really a thing to ask yourself: "Does this person seem like they are trying to recruit me and make me interested?" I think this is one of the most important bits. If they seem to be taking the attitude that the only one being interviewed is you, then they probably will treat you poorly. Good interviewers understand they have to sell the position as much as the candidate needs to sell themselves.

Jim Leonardo