I'm not aware of all the details of Aaron's career, but I was not under the impression that he has been in a position to hire that many people. Knowing who he was hiring for what size organizations and in what capacity would be useful information.
You're right, that would be useful information. However, Aaron was one of the reddit founders and I imagine gained a few pennies from that. Perhaps the project he's hired for is openlibrary.org?
From http://openlibrary.org/about/people: "Aaron Swartz, Former Project Leader. The Open Library wouldn't exist without Aaron. He wrote the backbone of the system you see today. He has also worked on specs like RSS, startups like Reddit.com, and software projects like web.py. He worked from San Francisco to architect the site, put together the team, and attempt to keep things organized, and we couldn't have come this far without his crucial expertise."
The best "interview" I've ever had consisted of me spending an entire day hanging out with the team. We essentially pretended that that it was my first day working there. They asked me to keep coming back.
Even if they hadn't hired me I would have been happy to do it. It was enjoyable and I learned a lot of interesting stuff. I know some people would say it's unfair to ask this, but I really wish it would become the industry standard method.
What I don't understand about this kind of time-intensive stuff is that everyone seems to think good programmers don't need another job, they already have one. As such, they tend to leave on their own terms and don't have periods of extended unemployment proportional to mediocre programmers.
Maybe that's true, maybe it isn't, but at least personally speaking, I always do my interviews with PTO and only quit after I get a job offer I like. I'd never burn PTO for something like that unless it was a truly extraordinary opportunity, and don't better programmers have enough options that they wouldn't have to do so?
This works well as a second interview, in my experience (and yes, use an NDA). It's still helpful to have a first interview, specifically as a reality check to weed out people for whom the day would be a waste of everybody's time.
Did they phone-screen you before they asked you to come over? I can't imagine a company asking each of its candidates to come spend an entire day with them without a prior filtering of sorts..
I think this is a terrible way to interview. I've encountered, again and again, candidates who appear to be very intelligent, you can have a great discussion with them, terrific rapport, they understand everything, they give interesting suggestions, and when you ask them to write a simple piece of code they absolutely cannot do it. Not because they're stressed etc., you can actually see they can't write code. Sometimes the incongruity between their confident appearance and convincing talk versus their inability to write code is mind-boggling.
Now I consider any interview process incomplete and utterly unreliable if it doesn't include writing actual code, however simple and straightforward.
He was pretty clear that he looks at their code. Go back and read the third paragraph.
The place I'm currently at interviews in a very similar matter and we're currently batting 3 for 3 on new hires over the last year or so. I've never been a fan of the "run puzzles at them until they fall over" method. Google's hiring methods gave me a big fat headache and made me run as fast as I could from there.
I recently interviewed at another company that does a variation on this by sending you a coding challenge and you send the results back within 2 hours (you text them at a certain time and then they send the challenge). I liked this approach as well.
Both have their pros and cons but each of them will show you how someone codes. The hardest part for us has been figuring out if their style/approach to problem solving meshes with the team. That's still hard to determine in an interview because it's something of a personality thing We've worked our way through those issues, though.
What sort of programming problems are you giving them? Did these candidates have experience with other projects and were they able to fluidly explain their involvement with them?
It must be pretty rare to find a person who can describe a complex project in detail but is unable to write any code during an interview.
I think this is a great technique. To all those who think programming IS a job done under pressure, really think hard about your specific job and your specific situation. We all like to glorify our careers (to the point of fooling ourselves) and imagine scenarios where something mission critical breaks and it HAS to be fixed in five minutes (something like you'd see on the show 24).
But has that ever happened at your job? If so, instead of hiring high pressure programmers, could you take steps to eliminate the high pressure scenarios, e.g., unit testing, back up systems, roll back plans?
I know everyone will have counterexamples of this high pressure thing that happens.. but is it really typical for your job, really?
My favorite hiring process I've been a part of was with a AI startup. The initial phase was a list of maybe a dozen questions in an email. Fairly open-ended questions about how I perceived aspects of intelligence, ontology, and general philosophical concepts. Then a day at the company talking with the founder and the team, walking through their concept, long two way discussions about it, and a discussion about the direction of AI in general. Didn't get into a lot of coding details, it was assumed if I could participate in the conversation at a sufficient level that I'd be able to work the rest of it out. Which was true. Great process, completely appropriate for that situation.
Part of "get stuff done" is that you manage yourself and communicate with your manager well enough to ensure you accomplish something of use to the team.
Interviewers should understand your contribution to the company isn't in your control, but your contribution to the team was.
Their objectives are basically the same. The difference is in the ways of proving the "getting things done" part.
I never assumed the programming questions in an interview were really about getting the right answer in ten minutes or however long you spend on it, but more about giving the interviewee an opportunity to explain their thought process and problem solving approach to the interviewer. I don't agree that asking interviewees to solve programming problems in an interview is useless, but obviously looking at code samples from other work is great, too.
>"I never assumed the programming questions in an interview were really about getting the right answer in ten minutes or however long you spend on it, but more about giving the interviewee an opportunity to explain their thought process and problem solving approach to the interviewer."
That's what they say. But do you know anyone who failed the questions and still got hired? My experience has been that even when I nail the algorithmic questions, I miss a few trivia questions and don't get called back. Nuance cannot be replicated at corporate scale.
I'm surprised nobody has talked about pairing interviews in the comments yet. I spent years clumsily hiring developers crapshoot-style. I shared the misconceptions that people get so nervous during technical interviews that it obviates their usefulness and that it doesn't really matter if a candidate writes code or not during their interview. My current employer, Pivotal Labs, hired me after a first interview that consists of interview-y conversation and a short pairing exercise followed by a second full day of pairing with the team on an actual project.
I know pairing is sometimes controversial around these parts, but for interview purposes its benefits are pretty evident.
On one hand, I have always looked forward to and enjoyed Aaron's writing, and was really curious about what he had to say in this post.
On the other hand, this is a subject near and dear to my own heart, and while I appreciate a lot of his methods, I don't think his model scales well. In order for it to work the way he wants, he has to conduct the interviews himself.
A few thoughts...
Programming isn’t typically a job done under pressure, so seeing how people perform when nervous is pretty useless.
Not my experience. Actually, quite the contrary.
The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure. Given enough time, lots of programmers can code something that works. The problem is that there are many occasions where there simply isn't enough time. Can you hit a deadline? Can you stay awake all night if you have to? Can you resolve this problem that's holding everything and everyone else up? Can you settle down that user or customer who's up in arms? Can you figure out what wrong decision was made 4 steps ago that is causing big problems now? And can you do it now?
Understanding how well someone performs under pressure (and whether or not that makes them nervous) is hardly useless. I can't think of too many more things that are useful to know.
So I just request a code sample and a demo and see whether it looks good.
There are too many cases where this doesn't work at all. What if they've never contributed to an open source project? (Whether or not you like this has nothing to do with their skill as a programmer and is another subject). What if they're prohibited from sharing someone else's proprietary property? What if they're bound by someone else's (illogical) shop standards? What if they salvaged someone else's shitty architecture with great workaround code? If they wrote something as part of a team, which part was theirs? How much of the analysis, design, architecture, testing, and deployment did they do? For that matter, how much of the actual programming did they do? Lots of posers share something they "worked on" but could never build in a hundred years.
To find out whether someone’s smart, I just have a casual conversation with them.
That's it? You make judgements on the fly? Using what metrics?
The idea of a learning from a casual conversation makes a lot of sense. But what is your plan? Ten people having ten conversations will come up with ten different assessments of the same candidate. Unless there is some kind of standard and a plan going into the meeting. How will you know they are smart? How will you know they can get things done? How will you know they can work with others? Without a plan to answer these questions, you're just waving your hands.
I suspect OP already has a plan of attack for his casual conversations but it's hard to say because he never says anything about it.
Ask them what they’ve been thinking about and probe them about it.
Again, this may or may not be a good litmus test. I know programmers with IQs of 160 who have written tons of brilliant code. If I asked tham what they've been thinking about, the answer could be "who will win the Notre Dame game" or "will I get laid tonight" just as easily as it can be about something truly cerebral.
Finally, I figure out whether I can work with someone just by hanging out with them for a bit.
Again, you can learn a lot about someone else this way, but sooner or later, you'll need some kind of standard and metric for this method to be replicable. Before you start, you must be able to say, "This is when I will know what I need to know." Until then this is just one guy's hand waving.
I’m amazed that so many companies use such silly hiring methods instead.
I'm amazed that so many companies use such silly methods for so many other things as well. But there are just as many who hire very well. I know many great programmers employed and still delivering great product 15 or 20 years with the same company. The same companies that seldom make bad hires. They use a lot of OP's strategies. But they also combine these strategies into a comprehensive system that works no matter who does the hiring.
I like OP's thinking. I just don't see how it will work well once his company becomes too big for him to do every interview himself. Systemitizing his methods will make it scale.
"The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure."
There is a huge difference between being under pressure and the unique pressure of performing in an interview. The former is being able to handle a longer term fear of failure. The latter is dealing with a short-term fear that activates the primitive brain's "fight or flight" instinct.
There is a HUGE difference, and I would never trust anything I got from the latter style interview.
>> Programming isn’t typically a job done under pressure, so seeing how people perform when nervous is pretty useless.
> Not my experience. Actually, quite the contrary.
> The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure. Given enough time, lots of programmers can code something that works. The problem is that there are many occasions where there simply isn't enough time. Can you hit a deadline? Can you stay awake all night if you have to? Can you resolve this problem that's holding everything and everyone else up? Can you settle down that user or customer who's up in arms? Can you figure out what wrong decision was made 4 steps ago that is causing big problems now? And can you do it now?
> Understanding how well someone performs under pressure (and whether or not that makes them nervous) is hardly useless. I can't think of too many more things that are useful to know.
I'm pretty sure your examples conflate different sorts of pressure, and I don't think how you perform for one reflects how you'll perform for all. I've been in all those situations and the physiological responses are different.
There's never been a time on the job that I've felt the sort of pressure I have in an interview. In fact, if that were routine, I'm pretty sure my friends would have burned out of software development long ago. Moreover, if my job routinely required last second cowboy-style programming, which is sure to lead to bad design and bugs, I'd get a new job.
I'd say that, for most software positions, if it makes sense to hire programmers whose success depends on performing well under the same physiological conditions as are normal during an interview, something's broken in your processes.
Disclosure: As an ex-basketball player, crunch time pressure is extremely similar to interview pressure, and I handle both exceedingly well. I've always felt a little fraudulent since I come off better in interviews than some programmers who are more talented than I am.
I know it's probably an exaggeration, but IQs of 160 are the 99.997th percentile so there should be something like 10,000 people in the united states of all ages with 160+ IQ's. Suggesting those are the type of people you want to recruit is mostly a waste of time because there are just not that many people let alone people with that IQ let alone people with that IQ who are looking for programming jobs.
I'm curious. Do you know any hiring method which scales well while maintaining high standards? I have yet to encounter any company where the quality of hires didn't decrease as the company grew.
Why don't you think this technique will scale? It asks three questions: Are they smart? Have they done good stuff in the past? Do you think you can work with them? These seem like really simple questions anyone can answer and in my experience competent people almost always answer them the same way.
"The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure."
As many have pointed out already, there's a big difference between the pressure of an interview where you've got a couple of minutes to either win the job or completely blow it and a deadline where you usually have several days to plan and prepare.
I would also point out that if management is constantly springing short, do-or-die deadlines on workers then there's something very wrong with their planning.
I often hear people assert that engineering isn't done under pressure, so an interviewee's performance under pressure doesn't matter. I don't think that's necessarily true: lots of systems have to be designed for life-and-death situations, web sites often have major crises/bugs, every team faces last minute deadlines, etc.
I wouldn't want anyone on my team who fell apart under stress. Performance under pressure isn't the only factor, but it is a factor.
That said, if anyone has a zero-stress engineering job, please tell me.
But this is a different kind of stress. Interviews are usually performed under "social" stress - people normally get nervous when meeting someone new, probably for evolutionary reasons. This "short term" stress is very different from the stress you get because of a deadline or a critical bug.
"Many brilliant people can seem delightful in a one-hour conversation, but their eccentricities become grating after a couple hours."
That is so true. Most people can't keep up their "interview face" for very long. It's tiring. At some point, if you put them at ease, they will revert to their normal self. That is when you'll get to see what they're really like. I've seen some pretty amazing transformations when waiting for this second phase of the interview.
this is all pretty good advice, especially the reviewing past [code] experiences and getting a sense for what it'd be like to work with the person.
i like staunch's "spend a day with the team" method a lot, though talking about strengths/weaknesses and role playing certain scenarios is also a good way to get a sense for potential clashes ("tests are for monkeys" or what not)
what i didn't understand was the "smart" part. i don't think it's possible to get a sense for whether someone is smart--especially technical smarts as opposed to, say, leadership or empathy smarts--simply by talking with someone. in fact, the whole concept of smart is exactly what pressure-ful, fanciful interview questions are trying to get at. i'm not even sure "smart" is a single or useful concept.
specific interview questions do try to determine technical skills or thinking process...but it a chat over coffee, a single, brief encounter, any different? in a good way?
i'm nitpicking here, but i felt that the solution to smarts--assuming we define smart to something useful--is kind of weak.
I suspect the "being smart" is in terms that the employer can relate to - do they think about things in the kind of depth that I like / appreciate / can work with.
From my personal experience, I've dealt with smart people and smart people - one kind knows / understands a lot of things in a broad field, the other kind knows a lot about things but is almost completely devoid of common sense. I'd prefer the first kind in any situation where I or my friends would have to deal with them over the medium to long term. I'm pretty sure this would be reflected in all areas worth measuring for a company too.
So trying to define smart as a concrete measure may be missing the point, as you will actually have to work with the person, and what you feel is what tends to form your opinion / bias and affects your future interaction in such a way that it generally tends to become a self-fulfilling prophecy.
Smart, affable, productive people with demonstrated ability make great employees.
I'm not interested so much in who to hire -- I think that's a no brainer, frankly. I'm more interested in where to find these great people to hire. Really. We are having hell finding great developers.
I'd imagine that googling for bug reports that one has been involved in on either side would be a good heuristic for problem solving skills and sociability. At the very least, you'll avoid hiring anyone who can be identified by googling for "bugzilla asshole".
Great advice - I like the fact that Aaron keeps it real simple. I also like how he doesn't like questions along the lines of "counting the number of piano tuners in Chicago". I've been witness to interviews with similar questions and I'm always left wondering as to what the point was.
That said, I'm not sure if all of his advice can be followed by a reasonably medium sized company/organization where hiring decisions are made by a committee, rather than one person.
As a side note, I think that reading a resume can actually be a good starting point to understand the candidate's background.
I've personally felt that asking obscure tech trivia questions is meaningless. There is no use in asking someone a question, the answer to which can be obtained by a quick Internet search.
Edit: Grammar
I'm not a big fan of trivia, but there are basic details you will necessarily learn over time just by working with any technology, and not knowing these is damning. E.g., asking how arguments are passed is a quick shibboleth to catch the guy who thinks clicking "print to file" entitles him to put PostScript on his résumé (a colleague has actually witnessed this).
You should also check if the person is reliable (i.e. competent, responsible, hard worker and isn’t an obnoxious diva). In a lot of situations you get people who seem fairly smart, yet make an effort to bring their personal problems to the workplace. This can be extremely counter productive (http://www.reddit.com/r/reddit.com/comments/1octb/reddit_cof...).
I think this a terrific interviewing method, but only if you have the metacognition to actually know why you didn't like a candidate, and the courage to tell them how they failed.
If you don't commit to that communication, you'll be an unsettling and depressing interviewer. You can't just play part of the process by the book, it really has to be all or nothing.
An interviewer has no obligation whatsoever to tell a candidate why he or she "failed" an interview. In fact, I'd say you'd be hard pressed to find one who would tell, for legal reasons. Companies hate being sued, so they're not going to tell you anything that might potentially give someone a reason to sue them.
Perhaps off-topic, I was a bit put off at his definition of a friend. I wouldn't want to befriend someone who keeps me around to solve his problems for free while I'm at work.
Being that I've only interviewed at big-ish companies and in Japan (where companies ape the large companies uncritically), I haven't had a chance to see some of these techniques :/
[+] [-] davidw|16 years ago|reply
[+] [-] benhoyt|16 years ago|reply
From http://openlibrary.org/about/people: "Aaron Swartz, Former Project Leader. The Open Library wouldn't exist without Aaron. He wrote the backbone of the system you see today. He has also worked on specs like RSS, startups like Reddit.com, and software projects like web.py. He worked from San Francisco to architect the site, put together the team, and attempt to keep things organized, and we couldn't have come this far without his crucial expertise."
[+] [-] staunch|16 years ago|reply
Even if they hadn't hired me I would have been happy to do it. It was enjoyable and I learned a lot of interesting stuff. I know some people would say it's unfair to ask this, but I really wish it would become the industry standard method.
[+] [-] arghnoname|16 years ago|reply
Maybe that's true, maybe it isn't, but at least personally speaking, I always do my interviews with PTO and only quit after I get a job offer I like. I'd never burn PTO for something like that unless it was a truly extraordinary opportunity, and don't better programmers have enough options that they wouldn't have to do so?
[+] [-] paulbaumgart|16 years ago|reply
It seems like it'd be hard, using this tactic, to protect trade secrets in companies where that's important.
[+] [-] silentbicycle|16 years ago|reply
[+] [-] arithmetic|16 years ago|reply
[+] [-] anatoly|16 years ago|reply
Now I consider any interview process incomplete and utterly unreliable if it doesn't include writing actual code, however simple and straightforward.
[+] [-] SystemOut|16 years ago|reply
The place I'm currently at interviews in a very similar matter and we're currently batting 3 for 3 on new hires over the last year or so. I've never been a fan of the "run puzzles at them until they fall over" method. Google's hiring methods gave me a big fat headache and made me run as fast as I could from there.
I recently interviewed at another company that does a variation on this by sending you a coding challenge and you send the results back within 2 hours (you text them at a certain time and then they send the challenge). I liked this approach as well.
Both have their pros and cons but each of them will show you how someone codes. The hardest part for us has been figuring out if their style/approach to problem solving meshes with the team. That's still hard to determine in an interview because it's something of a personality thing We've worked our way through those issues, though.
[+] [-] tsetse-fly|16 years ago|reply
It must be pretty rare to find a person who can describe a complex project in detail but is unable to write any code during an interview.
[+] [-] alexyim|16 years ago|reply
[+] [-] bioweek|16 years ago|reply
But has that ever happened at your job? If so, instead of hiring high pressure programmers, could you take steps to eliminate the high pressure scenarios, e.g., unit testing, back up systems, roll back plans?
I know everyone will have counterexamples of this high pressure thing that happens.. but is it really typical for your job, really?
[+] [-] waterlesscloud|16 years ago|reply
[+] [-] richcollins|16 years ago|reply
There are a lot of developers that "get stuff done" without accomplishing anything of use to the company.
[+] [-] ojbyrne|16 years ago|reply
[+] [-] pchickey|16 years ago|reply
Interviewers should understand your contribution to the company isn't in your control, but your contribution to the team was.
[+] [-] paulbaumgart|16 years ago|reply
Their objectives are basically the same. The difference is in the ways of proving the "getting things done" part.
I never assumed the programming questions in an interview were really about getting the right answer in ten minutes or however long you spend on it, but more about giving the interviewee an opportunity to explain their thought process and problem solving approach to the interviewer. I don't agree that asking interviewees to solve programming problems in an interview is useless, but obviously looking at code samples from other work is great, too.
[+] [-] jacoblyles|16 years ago|reply
That's what they say. But do you know anyone who failed the questions and still got hired? My experience has been that even when I nail the algorithmic questions, I miss a few trivia questions and don't get called back. Nuance cannot be replicated at corporate scale.
[+] [-] johnpignata|16 years ago|reply
I know pairing is sometimes controversial around these parts, but for interview purposes its benefits are pretty evident.
[+] [-] edw519|16 years ago|reply
On the other hand, this is a subject near and dear to my own heart, and while I appreciate a lot of his methods, I don't think his model scales well. In order for it to work the way he wants, he has to conduct the interviews himself.
A few thoughts...
Programming isn’t typically a job done under pressure, so seeing how people perform when nervous is pretty useless.
Not my experience. Actually, quite the contrary.
The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure. Given enough time, lots of programmers can code something that works. The problem is that there are many occasions where there simply isn't enough time. Can you hit a deadline? Can you stay awake all night if you have to? Can you resolve this problem that's holding everything and everyone else up? Can you settle down that user or customer who's up in arms? Can you figure out what wrong decision was made 4 steps ago that is causing big problems now? And can you do it now?
Understanding how well someone performs under pressure (and whether or not that makes them nervous) is hardly useless. I can't think of too many more things that are useful to know.
So I just request a code sample and a demo and see whether it looks good.
There are too many cases where this doesn't work at all. What if they've never contributed to an open source project? (Whether or not you like this has nothing to do with their skill as a programmer and is another subject). What if they're prohibited from sharing someone else's proprietary property? What if they're bound by someone else's (illogical) shop standards? What if they salvaged someone else's shitty architecture with great workaround code? If they wrote something as part of a team, which part was theirs? How much of the analysis, design, architecture, testing, and deployment did they do? For that matter, how much of the actual programming did they do? Lots of posers share something they "worked on" but could never build in a hundred years.
To find out whether someone’s smart, I just have a casual conversation with them.
That's it? You make judgements on the fly? Using what metrics?
The idea of a learning from a casual conversation makes a lot of sense. But what is your plan? Ten people having ten conversations will come up with ten different assessments of the same candidate. Unless there is some kind of standard and a plan going into the meeting. How will you know they are smart? How will you know they can get things done? How will you know they can work with others? Without a plan to answer these questions, you're just waving your hands.
I suspect OP already has a plan of attack for his casual conversations but it's hard to say because he never says anything about it.
Ask them what they’ve been thinking about and probe them about it.
Again, this may or may not be a good litmus test. I know programmers with IQs of 160 who have written tons of brilliant code. If I asked tham what they've been thinking about, the answer could be "who will win the Notre Dame game" or "will I get laid tonight" just as easily as it can be about something truly cerebral.
Finally, I figure out whether I can work with someone just by hanging out with them for a bit.
Again, you can learn a lot about someone else this way, but sooner or later, you'll need some kind of standard and metric for this method to be replicable. Before you start, you must be able to say, "This is when I will know what I need to know." Until then this is just one guy's hand waving.
I’m amazed that so many companies use such silly hiring methods instead.
I'm amazed that so many companies use such silly methods for so many other things as well. But there are just as many who hire very well. I know many great programmers employed and still delivering great product 15 or 20 years with the same company. The same companies that seldom make bad hires. They use a lot of OP's strategies. But they also combine these strategies into a comprehensive system that works no matter who does the hiring.
I like OP's thinking. I just don't see how it will work well once his company becomes too big for him to do every interview himself. Systemitizing his methods will make it scale.
[+] [-] e40|16 years ago|reply
There is a huge difference between being under pressure and the unique pressure of performing in an interview. The former is being able to handle a longer term fear of failure. The latter is dealing with a short-term fear that activates the primitive brain's "fight or flight" instinct.
There is a HUGE difference, and I would never trust anything I got from the latter style interview.
[+] [-] ellyagg|16 years ago|reply
> Not my experience. Actually, quite the contrary.
> The single biggest difference I have ever seen (over and over again) between a good programmer and a great programmer is how they respond under pressure. Given enough time, lots of programmers can code something that works. The problem is that there are many occasions where there simply isn't enough time. Can you hit a deadline? Can you stay awake all night if you have to? Can you resolve this problem that's holding everything and everyone else up? Can you settle down that user or customer who's up in arms? Can you figure out what wrong decision was made 4 steps ago that is causing big problems now? And can you do it now?
> Understanding how well someone performs under pressure (and whether or not that makes them nervous) is hardly useless. I can't think of too many more things that are useful to know.
I'm pretty sure your examples conflate different sorts of pressure, and I don't think how you perform for one reflects how you'll perform for all. I've been in all those situations and the physiological responses are different.
There's never been a time on the job that I've felt the sort of pressure I have in an interview. In fact, if that were routine, I'm pretty sure my friends would have burned out of software development long ago. Moreover, if my job routinely required last second cowboy-style programming, which is sure to lead to bad design and bugs, I'd get a new job.
I'd say that, for most software positions, if it makes sense to hire programmers whose success depends on performing well under the same physiological conditions as are normal during an interview, something's broken in your processes.
Disclosure: As an ex-basketball player, crunch time pressure is extremely similar to interview pressure, and I handle both exceedingly well. I've always felt a little fraudulent since I come off better in interviews than some programmers who are more talented than I am.
[+] [-] Retric|16 years ago|reply
[+] [-] kscaldef|16 years ago|reply
[+] [-] aaronsw|16 years ago|reply
[+] [-] UncleOxidant|16 years ago|reply
As many have pointed out already, there's a big difference between the pressure of an interview where you've got a couple of minutes to either win the job or completely blow it and a deadline where you usually have several days to plan and prepare.
I would also point out that if management is constantly springing short, do-or-die deadlines on workers then there's something very wrong with their planning.
[+] [-] yummyfajitas|16 years ago|reply
This is also a good test of common sense: if they answer "will I get laid" rather than "monads", you know they don't have any.
[+] [-] storborg|16 years ago|reply
I wouldn't want anyone on my team who fell apart under stress. Performance under pressure isn't the only factor, but it is a factor.
That said, if anyone has a zero-stress engineering job, please tell me.
[+] [-] coffeemug|16 years ago|reply
[+] [-] e40|16 years ago|reply
That is so true. Most people can't keep up their "interview face" for very long. It's tiring. At some point, if you put them at ease, they will revert to their normal self. That is when you'll get to see what they're really like. I've seen some pretty amazing transformations when waiting for this second phase of the interview.
[+] [-] diN0bot|16 years ago|reply
i like staunch's "spend a day with the team" method a lot, though talking about strengths/weaknesses and role playing certain scenarios is also a good way to get a sense for potential clashes ("tests are for monkeys" or what not)
what i didn't understand was the "smart" part. i don't think it's possible to get a sense for whether someone is smart--especially technical smarts as opposed to, say, leadership or empathy smarts--simply by talking with someone. in fact, the whole concept of smart is exactly what pressure-ful, fanciful interview questions are trying to get at. i'm not even sure "smart" is a single or useful concept.
specific interview questions do try to determine technical skills or thinking process...but it a chat over coffee, a single, brief encounter, any different? in a good way?
i'm nitpicking here, but i felt that the solution to smarts--assuming we define smart to something useful--is kind of weak.
[+] [-] jurjenh|16 years ago|reply
From my personal experience, I've dealt with smart people and smart people - one kind knows / understands a lot of things in a broad field, the other kind knows a lot about things but is almost completely devoid of common sense. I'd prefer the first kind in any situation where I or my friends would have to deal with them over the medium to long term. I'm pretty sure this would be reflected in all areas worth measuring for a company too.
So trying to define smart as a concrete measure may be missing the point, as you will actually have to work with the person, and what you feel is what tends to form your opinion / bias and affects your future interaction in such a way that it generally tends to become a self-fulfilling prophecy.
[+] [-] look_lookatme|16 years ago|reply
Smart, affable, productive people with demonstrated ability make great employees.
I'm not interested so much in who to hire -- I think that's a no brainer, frankly. I'm more interested in where to find these great people to hire. Really. We are having hell finding great developers.
[+] [-] natrius|16 years ago|reply
[+] [-] arithmetic|16 years ago|reply
That said, I'm not sure if all of his advice can be followed by a reasonably medium sized company/organization where hiring decisions are made by a committee, rather than one person.
As a side note, I think that reading a resume can actually be a good starting point to understand the candidate's background.
[+] [-] paulbaumgart|16 years ago|reply
[+] [-] kpaddy|16 years ago|reply
[+] [-] prodigal_erik|16 years ago|reply
[+] [-] w00pla|16 years ago|reply
[+] [-] tsetse-fly|16 years ago|reply
[+] [-] blasdel|16 years ago|reply
If you don't commit to that communication, you'll be an unsettling and depressing interviewer. You can't just play part of the process by the book, it really has to be all or nothing.
[+] [-] pmiller2|16 years ago|reply
[+] [-] jbm|16 years ago|reply
Being that I've only interviewed at big-ish companies and in Japan (where companies ape the large companies uncritically), I haven't had a chance to see some of these techniques :/
[+] [-] unknown|16 years ago|reply
[deleted]