views:

707

answers:

15

After you have asked the questions in The Joel Test, is it appropriate to ask a technical question or two to see how the software developers who are doing the hiring respond? If I did technical interviews (and I have only ever done lunch format interviews so my opinion could change I guess), I wouldn't mind a technical question or two, but I'm not sure if this is proper interview "etiquette".

EDIT: The reasoning would be to see at what level their developers are that are doing the interviewing. Presumably, the guys doing the interview are looked at as the best in the company (or at least judging talent). Definitely don't want to come across as arrogant.

+23  A: 

Asking them about the tools and methodologies they use is just fine. Asking them to code on the whiteboard, not so much.

Edit: To expand, asking them anything about their day-to-day activities, what they think of the codebase, what they like and dislike about working there, etc. are all good questions.

You do not want to come across as challenging the interviewer's technical abilities. We had one guy do that in response to one of the whiteboard coding problems we put to him. It was a very short interview.

+1 but I *really* wish it was, would have saved me untold pain
annakata
Especially so if they have asked "do you have any questions?" and you can start your answer "You said _____ can you explain a little more what you meant by _____?" or something like that.
David McEwing
Depends on what they make: if they don't make an end-user product you could be expected to have used already, you need some way to find out about their technical skills. You're there because they're seriously considering exchanging a very large sum of money for 50% of your non-sleeping lifetime. If they can't spare a couple minutes to talk tech, they weren't going to hire you anyway. You wouldn't audition for an orchestra if you've never seen any of them play.
Ken
A: 

Not a good idea. You can ask about what the job is about, what daily tasks would you have, what they're working currently on, etc.

Giving a tech question not related to that is just a time waste for the interviewer.

ilya.devyatovsky
A: 

Depends on the format of the interview and the way you conduct the questions. If you manage to tie them up with what the guys interviewing you do or to the questions they've asked you then it may be okay.

Vinko Vrsalovic
+3  A: 

It depends on the interviewer but I would guess it'd be generally frowned upon. Also, I'm not quite sure what'd you expect to get from that?

I would rather ask to see their samples of their source code.

ChssPly76
I wounder if anyone would allow me to see source code, that would be interesting
SwDevMan81
Actually, I wasn't joking about source code. You'd have to have an NDA signed, and you'd have to be a (one of) preferred candidate whom they're ready to make an offer to and you'll likely only see a small sample of their source code but it's a lot more telling then all kinds of technical questions you may ask. I've very much insisted on that when I was interviewing - and I've never once been refused.
ChssPly76
Do you really think it'd be okay to ask to see source code? I can't imagine that coming off well in any circumstance, unless you were already a lock to be hired.
bigmattyh
Rather than asking to see code, I'd ask to pair. Assuming I'm a finalist and NDAs have been signed, they shouldn't object to spending an hour fixing some simple bug together. They get to see how I work, and I get to see real code *plus* how it's produced. That last bit is critical IMO.
Sarah Mei
+3  A: 

Asking to test their knowledge of coding/compsci = bad

Asking to find out what kind of tools/patterns/methodologies they use or what projects they are working on = good

Darko Z
+3  A: 

I wouldn't ask a technical question in the sense of "how many lockers are left open after you...", but I think it's perfectly rational to expect them to be able to talk technically about their projects. A question such as "what software development methodology do you use" or "how and how often do you conduct code reviews" seem appropriate. Asking them to show you code is probably not reasonable unless, perhaps, you have enough status in the community and they are recruiting you.

tvanfosson
+4  A: 

Ask them about what you would be doing at that company and what specifically you'd be working on. They'll probably start going into detail (or you can ask them for more detail) about a project or component. You can then ask them about past issues they've had on that project and how they solved them. I also find it easy to get a developer to start talking about what they work on and they'll usually tell you about something cool that they've coded. This has been my approach in the past and it's been highly effective.

Jeff Tucker
+3  A: 

Asking questions to get a better feel for the environment you'd be working in makes you an inquisitive candidate. OK.

Asking questions to test their technical chops makes you an arrogant tool. Not OK.

bigmattyh
+1  A: 

I've had very friendly interviewers who will enthusiastic about sharing war stories, bouncing questions back and forth etc.

Of course, from an etiquette point of view, you have to be very careful: you don't want to come across as just trying to prove how much smarter you are, you don't want to give the impression that you'll be top-dog on squad if you're hire, and you certainly don't want to look like you're talking down to your potential employer.

By and large, while technical skill matters, your interviewer is almost never concerned or expecting to hire the top 1% of people -- what your interviewer values more is a "team player" with a good attitude, not a showboating l33t haxor with a superiority complex.

Unless you really get good vibes from your interviewer, I would recommend against asking technical questions to your interviewer.

Juliet
+1  A: 

I've be a PHP technical interviewer a couple of times, and I don't think a candidate asking a question is necessarily a bad thing :

If the question is plain stupid, of course, I will think the candidate might not be as good as his resume says he is... And I will find strange if he asks for some code or anything like that : that's my job, not his ^^

But, for instance, asking which framework is used, or what continuous integration tool is used, or some general question like that seem really good to me : it means the candidate know about those tools, and is not afraid to ask questions -- which is good !
Of course, it has to be done with respect, not to challenge the interviewer... But, actually, that is something we expect from our employees when they are with clients... So why not expect it from possible-future-employees ?


An interviewee that asks questions of our methods is someone who either :

  • at least, did some research on that (my company as some certifications, and is proud of those)
  • and might be interested about them... which is good too : we prefer when people who work in our company are interested by our methods, of course !


Naturally, I won't give any information that is too specific, but if we can engage in some conversation, it is good : one of the thing you have to find out in an interview is "do you want to work with this guy ?" ; if he is interesting and asks interesting questions, I could want to !

Going on with that "conversation" idea, I sometimes ask the candidate, if I liked him, if wants to take a coffee (we are sometimes joined by colleagues, then -- if the candidate is not able to have any social contact, it will be obvious, there ^^ ) ; I sometimes even show them one of our open-spaces, telleing "you'll work somewhere around here".


Actually, it's like on SO sometimes : interesting questions a great !

Pascal MARTIN
+9  A: 

Don't ask them to code. Ask them to pair program with you instead.

EDIT: Pair programming is two developers working at one computer, writing code together. (Link goes to Wikipedia, which has a fuller discussion and a lot of useful research references.)

It's the fastest way to figure out whether an organization is worth working for. But it's also good for the company, because it's the fastest way to figure out whether a candidate is worth hiring.

Sarah Mei
Why the downvote? I'm quite serious. When I was job searching a few years ago I requested to pair with folks that I'd be working with at a few of the companies I was considering. It let me see their coding style, and they saw mine, and it was illuminating for everyone.
Sarah Mei
It's less arrogant than demanding they code for me, plus it's more helpful than just eyeballing some piece of code they give you (a la @ChssPly76's answer).
Sarah Mei
interesting suggestion. Could you elaborate for those that are not as familiar with pair programming?
MedicineMan
The best interview process I've ever encountered involved the usual past-job war stories, brain teasers, "how would you solve" questions etc., but culminated in two pair programming exercises. The first was a TDD ping-pong where the interviewer and I talked and then took turns writing tests and implementing a simple queue class. Then I spent a half a day working on their actual code, again pair programming. Those pairing sessions gave both sides a lot of information relevant to the hiring process. I will totally try and replicate this everywhere I go from now on.
Jamie Flournoy
I (sorta) wound up pair programming at my last interview for my current job. I actually think it improved my chances. I didn't remember a lot of the Unix commands to get things done, so I was using manpages and another developer help me along. So they got to see that while I maybe haven't memorized everything, I could figure it out. Works for a fresh-out-of-school developer.
sheepsimulator
+1  A: 

I'd think as long as the question can be answered within a couple of minutes then it is fine to ask some technical questions. What tools are used for this and that or what practices do you employ here should almost be expected in a sense as it shows you are thinking ahead of what you'd be using and this can lead to that good state where the interviewer pictures you already in the job.

JB King
+2  A: 

Just to throw in my $0.02: I'm "the" programmer at a small startup, and we're looking to hire someone else… So when we hire someone, they will be spending just as much time with me as I with them, and having to deal with just as much of my code as I would have to deal with theirs.

So, given that, I would completely understand if a candidate wanted to assess my technical competence in the same way I had assessed theirs (and, yes, I asked them to pen-and-paper code :P)

David Wolever
+4  A: 

Of course, like everything else in life, it's all a matter of perception. Your goal, I would presume, is to find out what the caliber of the team you will be working on is, or at least the caliber of its leadership. This is extremely reasonable, you don't want to sign on to a team to find a nasty mess of spaghetti guarded by fierce resistance to change or criticism, which can happen. If indeed this is your goal, I would achieve it by asking the interviewer to describe the architecture of their application, and dig in from there. Obviously, don't be critical, but feel free to explore, ask if they use or have used x or y technologies, x or y methodologies, things you're interested in. You can even ask as to the reason behind broad stroke design decisions and gauge the answers. Certainly there is a set of interviewers who will bristle at this kind of exploration, but probably you don't want to work for them. You want to work for a team that is excited about their technology and will not only be more than pleased to discuss it with you but impressed with your own sense of curiosity, passion and knowledge of software design, architecture, patterns etc. If you detect that the interviewers quickly take up a defensive or hostile position, stop drop and roll your way home, if you ask me. I have interviewed dozens of programmers, and the ones I hire are the ones that care enough about their work to make sure they know what they are getting themselves into, and what kind of team they can expect to be a part of.

Nathan
A: 

Sure it is as long you do not want the job.

Ask yourself:

  • Is the technical question related to what you're discussing.
  • Are you trying to embarrass her or yourself?
  • How badly do you need the job?
  • How will the interviewer feel about herself if she doesn't know the answer, about you if she does.
Cyril Gupta