I recently interviewed a very intelligent, capable programmer who was near the start of his career. I decided not to make him an offer, and he sent a very nice follow-up e-mail asking for tips on how to present himself better. I figured my reply might be very useful to other applicants, so I'm posting most of it here:
First, lose the headphones. That didn't affect our decision at all, but I could imagine it affecting it at other companies.
Second, you're obviously intelligent and capable. You messed up on the unit test, but I'm attributing that to interview nerves - I'm reasonably certain you could handle the technical demands of the job. But that's only the first hurdle.
The next is personality and fit with the company -- and this is a sticky one. In an interview, I've got about an hour to decide if you're the kind of person I want to spend the next three or more years with, in relatively close quarters. Can you argue a position strongly, but lose gracefully? You may be right about the technical merits of something, but the business reality means we have to do something else -- can you live with that? On a good day, we go two steps forward and one step back -- bad days it's one step forwards and two steps back. Can you deal with that frustration? I received certain cues from you -- interrupting, hitting the table during the coding test, etc. -- that you might have been hard to work with. Is that true? I can't tell in an hour. But saying "no" to a candidate who would have been terrific is a smaller risk than saying "yes" to a candidate who turns out to be a bad hire.
I hope you appreciate my honesty in writing this, rather than brushing you off with "not a good fit." I did so because I think your question about your interview performance is sincere, and I'm hoping my answer helps.
If it's not obvious from reading the e-mail, Rands has been a big influence on my management style.