I am terrible at taking tech interviews. Out of dozens that I’ve done, I may never have passed one. My typical pattern goes like this: A serendipitous contact leads to outstanding phone call with a manager or recruiter. I move on to a phone screen with a hiring manager who comes away very excited. Finally, I go onsite (or online these days) to dig into the nitty gritty with coders and get washed out.

Sometimes they would want to hear something I didn’t know. Other times I just froze on topics that I know very well. (One time I couldn’t even name my favorite video games.) Many times, I failed to perform well on some logic puzzle. Every job I actually got was because a friend made sure that it happened.

For years and years I lived in fear of the interview because I knew that I’d fail. At the same time, I knew that I was a very good developer. I was always a go-to guy on my teams, took on large projects alone, and had success as a lead.

As I struggled with my own interviewing issues, I set up interview pipelines as a manager that mimicked those that I had experienced. Brain-teasers, tests, technical grilling, the whole works. As I informally observed the track record of those pipelines in hiring great people, I began to realize that the only real predictor of great hires was if the candidate already knew someone on the team. You can’t just go off of one guy’s word that his college buddy is great, though. It’s not fair to your current employee to bear the entire burden of the hiring decision. So what do you do?

I finally stumbled upon the cure when I interviewed at a small startup that had a different approach. I met the leads for lunch, then followed up with a social chat with the whole team. We talked tech, but they didn’t try and vet my skills. Instead, they offered me a paid contract to do some work that they actually needed done. They gave just enough direction to get me started and then left me to my own devices to see if I could get it done well, on time, and with good communication. It took me about 10 hours of time in the evenings to complete. Three days later, I had a job offer!

Since that day, I have refused to take traditional tech interviews. I politely suggest that a short contract job might be the best option for a company to evaluate a senior developer. This works very well if they are unsure about you. It works even better if they really want you. As an added benefit, you get to see what it’s like to really work with a team before you take a job with them.

There have been some companies that refused to use my model, which I totally understand. Those jobs are just simply jobs that I am not going to get anyway. I just thank them for their interest and move on.

Succeeding with this approach to interviewing gives you a level of credibility and leverage that you can never get from a traditional interview. I have had a 100% success rate (4/4) in getting job offers from companies that I interview with in this way. The one that I actually accepted was from a company that, instead of hiring me, decided to invest in creating a new startup with me.

Some people do very well with traditional interviews and they should stick with what works for them. However, I’d urge any company to really look hard at what their interview process is screening for. Does it accurately produce employees that do great work and fit well with the team? Does it select people who have heard your particular brain teasers before? Are you just going through the motions on interviews and then going with someone’s gut? Maybe that manager is really good at guessing, but what happens when they leave? Think about whether or not the short term contract approach might give you a better idea about a candidate’s value.