How do you figure out if someone will be a good fit for your team? A few months back I had the opportunity to interview some candidates for open positions, usually related to either QA or systems administration roles since I was helping our team at the time move towards the devops paradigm. Having always been pretty lame at "reading" people, I try to use these opportunities to figure out the best ways to find if someone has what it takes to go on to become a great addition to our team. Since I'm not the technical interviewer, I get to focus on getting to know the person, trying to figure out what makes them tick and basically whether they would contribute to making our team even better.
There are a few traits that I look for. First of all, this person is supposed to have top-notch skills in their area of expertise. I am not a QA expert nor a seasoned sysadmin, so if I'm capable of bringing up a topic in the candidate's area that this person does not know better than me, we have a problem. A QA candidate who's never heard of TDD? Sysadmin who never heard of Chef? Red light! Even if they will not work directly with this stuff, if a person is not interested enough in their field to be up to date with major current trends, I don't want them in my team.
Perhaps the most important trait, however, is showing passion for what you do. When interviewing people for development positions, I always ask what their favorite programming language is. I'm looking for someone who is pragmatic enough to chose the best tool for the job, while at the same time will defend their taste and personal preferences, and will actually have taken the time to experiment with a bunch of different things on their own.
My talk with one candidate in particular struck a chord with me. When inquired about his favorite programming language, the guy said that having used a few in previous jobs, he liked them all the same and wasn't allergic to any technology in particular. Well here's the thing: be allergic to stuff you don't like. People who are good - no, people who are excellent - at what they do only get to be excellent because they care about what they do. These are the people who will at first give you hell when you sugest a change in the way they work, but who will also listen to your arguments and once they see the logic will try anything out to improve the work they do. People who are excellent are allergic to anything they believe will make them less efficient at their job, or that will make them produce lower quality output. These people care about their craft, and if a particular technology goes against their ideas about what is the best way to solve a problem they will be allergic to it.
You can learn an additional programming language. You can even learn an entirely new business domain. But you cannot learn to be passionate about things. So show you care. Be allergic.