It was 2007, and I had just gotten a job with a local nonprofit, starting their QA department from scratch (they had *zero* testers before me!). I sat across the cubicle aisle from a guy, let's call him Steve. Steve was a DBA, somewhat systems guy, overall smart guy. On my third day, we were all across the street at the pool hall playing pool at lunch time, when Steve finally decided to out me. He looked at me and said something like, "Okay, I waited until your third day. You don't recognize me, do you?"
Panicked, I am sure that I spent a few seconds (felt like minutes), trying to figure out who the heck he was. Why should I recognize him? ("Oh jeez, did I go on a *date* with him?!?!")
Finally (out of sympathy for my obvious flailing around a bunch of people I'd only known for 2.5 days), he said, "You interviewed me at (company x). Obviously, you didn't hire me."
WHAT?!?!?! I interviewed this guy and didn't remember him.
I said, "Oh, God, please tell me I was at least courteous and professional with you about it." (Not that I would be anything but....)
He laughed and said that I had been (Thank *goodness* for that!), and that he had been lacking in scripting skills. There was much joking about the incident for a while (I told him he was lucky, that I had done him a favor, that the company had since gone under.)
Over the next year and a half, I had the opportunity to work closely with Steve. I got to know the way he thought about the world, the way he approached problem solving, the way he thought through everything that he did, and the pride he took in his work. We spent many long hours and late nights working on problems together. We had a blast doing that, of course -- calling in pizza, having fun, coming up with private memes ("red is bad, makes angry grr"). It wasn't long before I realized just how dumb I had been for not hiring him when I had the chance. To this day, I'd sacrifice a lot to convince him to come into testing (he likes this DBA thing), and I'd hire him in heartbeat, without hesitation, any where, any time.
And I didn't hire him because he didn't have enough experience with scripting (something I could have taught him in a few days, likely....).
I realize that it's probably rare that people end up later working with someone they chose not to hire after an interview. Even rarer, I think, is compounding that with learning that they would have been a *fantastic* hire.
To this day, I think very carefully about what skills I choose not to hire over. I talk a lot about looking for the "testing mindset", and I feel that there are very few skills I cannot teach someone in a reasonable period of time. In fact, when I think of the kind of people I look to hire, their inquisitiveness and desire to learn usually mean that they can learn technical skills in a fairly short time (certainly a lot shorter than trying to teach someone with all of the technical skills I need to be inquisitive and have a desire to learn!).