Due to the popularity of the original posting, I have promoted the blog post into an article.
I had a post
a while back that discussed my personal interviewing techniques,
and how to identify "dead wood" developers in your organization.
I received a lot of positive feedback on this topic and it seems many
young developers were particularily interested in the application of
the topic to better position themselves to impress an interviewer and
get a job. Because of the success of the post, I've decided to
flip the situation around and teach you how to interview an
employer. Over my career, I have rarely had any difficulties
finding contract or perm work, mostly because I strive to meet all the
attributes of a good candidate (see previous post). Because I
have confidence in finding work, I find myself being rather picky as to
who I work for and so a while back I compiled a list of questions that
I like to ask my interviewers to gage if they're really the type of
company I want to work for, or if they're just blowing smoke up my ass.
Without further ado:
What types of tools do you provide your developers?
You can tell a lot about how a company feels about their IT staff by
the quality of their systems. Do they provide laptops or
desktops? If they provide laptops that's a good sign that you
will be expected to work outside the office more. Laptops aren't
necessarily a bad sign though, they can be a sign of a company that
doesn't mind you leaving the office on time every day and taking any
extra work with you.
Are their machines reasonably powerful? Working on a crappy
machine is one of those small frustrations that when added to other
frustrations can become quite miserable.
Do they provide the latest tools? How do they feel about 3rd
party tools? Are developers involved in the decision making
process about what tools to buy?
All of these questions can give you a general feel for how much
respect developers get in the organization and the kind of budget a
department receives.
Tell me about the average workday of a developer of my level.
This question is designed to probe how much time you really will be
spending in development versus meetings, training, mentoring etc.
Obviously if you're not much of a people person or thrilled about
spending hours in meetings then you'll want to avoid companies that
have a high percentage of that going on. I am generally wary
about companies that tell me more than 95% of my time will be spent
coding. That generally points to a weak planning process or
worse, a planning process that doesn't involve the people actually
doing the work. Keep in mind I'm a more senior level person
though, for a junior developer 95% may be ok, although I personally
prefer to involve my junior developers in some meetings just to give
them a taste of planning and design.
How many hours per week do your developers realistically work?
Yeah, it's advertised as a full time (40 hours) position. This
is rarely the reality of the situation, try to find out how much time
is really being worked. If it's a lot more, ask for more money
unless they pay for overtime. Think of it this way, if you make
$30/hr ($60k/yr) and you work 10 hours unpaid overtime per week, your
hourly rate just dropped to $24/hr, a 17% paycut. Kick that up to
20 hours extra per week like many of my developer friends work and
suddenly you're at 34% paycut, which is like paying double taxes if you
think about it.
Do you have a VPN? What is your work from home policy?
This is a very important question for family men like me. I
would have to be pretty hard up for a job to take a position that
required me to spend more than 50 hours a week in the office. The
stress on my family life just isn't worth it.
Do you compensate for overtime?
Yes, we are salaried for the most part. Yes, sometimes you go
into "crunch mode" and you will have to put in extra hours. If
you find out in the question above that developers work frequent
overtime then unless you really don't value your time I suggest that
you avoid companies that do not give compensation for overtime.
** Interview Ending Sin ** For me, an
interview is over if the company is in a position where they bill their
customers for my time and don't compensate me for overtime. If
your company bills for your hours, makes a profit from your time, and
does not give you a cut... I suggest you find a new position because
that's just rape, plain and simple.
Do you have a documented process for rewarding extraordinary work?
This is a great question to ask, you should ask it in all your
interviews. Companies that don't have a process in place to
reward outstanding effort or achievements are companies that either:
A) Don't ever perform at a high level.
or
B) Don't make employee morale a priority.
Do you have any education benefits?
Very important! With this innocent question you can determine
how committed a company is to helping you reach your long term
goals. Companies that aren't willing to invest in your education
and skillset are companies that aren't showing an interest in keeping
you challenged and growing over time.
Interviewees! Remember that it just isn't worth taking a job
that you will be miserable at. It will have a negative impact on
your attitude, your performance, and your lifestyle. It's just
not worth it.
Employers! Happy, well rested developers are far more
productive and customer oriented than overworked abused ones.
Looking at the list above, there isn't much on there that is
unreasonable for an employer to provide. The sad thing is how few
do...