One of the most common questions I get asked is "How can I find technical employees?" The market for good programmers is extremely tight, and traditional techniques like job-board or craigslist postings won't produce results. Even the best network of contacts probably won't uncover candidates willing to reach out to you. So, what can you do?

Start early: Accept that it's going to take longer than you'd like to find the right person, and so plan ahead now for hires you'll be making in six months or a year. If you do find the right person too early, make them an offer and take the hit of paying their salary for a few months before you really need them. The hiring process will be time-consuming, so schedule accordingly; treat it as a first-class task that will take up a significant chunk of every week.

Stalk them: The best candidates aren't looking for a new job, they're being pampered and praised at their current company. The first thing you'll need to do is find out who these people are and connect with them. One of my favorite hacks for this is joining technical meet up groups in your area. Even if you're a business guy, you'll probably be able to nod and smile your way through most presentations. You'll get to see who's enthusiastic and can communicate well, and the social side is a great way to talk to engineers you'd never be in contact with otherwise. If you supply beer and pizza, you'll be very popular.

Go to and put in a few relevant keywords (e.g. Machine Learning, Big Data) to discover nearby get-togethers. Another avenue is lurking on open-source project's mailing lists, which won't find local coders but otherwise has a lot of the advantages of attending meet ups, since you can see how people communicate and work with others.

Understand them: In order to pry them away from their current job, you need a strong lure, and you need to understand what their motivations are to craft something tempting. The best programmers often aren't driven by money, so figure out if they're after more responsibility, independence, the chance to work with cutting-edge technology or recognition from their peers. Sit down with them over coffee, join them on a hike, spend time with them however you can. Once you know what makes them tick, you can build an offer that's hard for them to refuse.

Pimp yourself: People are a lot more likely to want to join companies they've heard of, startups that are recognized for doing interesting and challenging work, so talk about the great technology you're building every chance you get. Encourage your existing programmers to blog and talk to journalists like me, and try to reach communities like Hacker News and Reddit with your stories. Have your engineers give talks at conferences and contribute back to open-source projects.

It may feel painful as that cuts into the time they spend on development, but the added visibility in the development community will be a powerful recruiting tool.

Qualify them: Often you'll find a programmer who loves the idea of joining an early-stage company, but when it comes to making the plunge and leaving the security of a steady job, they get cold feet. Get a feel for how serious they are by paying them for part-time consulting during the courtship. If they are reluctant, or can't fit it into their schedule, that's a sign they might not be willing to follow through.

Look at alternatives: This is probably starting to sound like a lot of work, so think hard about what you're trying to achieve by hiring a new employee. Do you really need somebody with 10 years experience, or would you be better off finding a clever intern with fire in her belly and something to prove?

Bosses almost always underrate their existing employees' potential, because they've seen their failures first hand, and new hires come in with no history. Would you actually be better off spending your time training your current coders to take on more challenging work? Can you find a consulting firm to help them out on particular areas? How can you make sure that none of your current team leaves?