How to find reliable programmers?

18 points by tboxer854 ↗ HN
So, I am sure we all have this problem. But is there a way to find reliable programmers in the US/Canada? I know services like elance exist, but they seem to be overrun by overseas programmers. That is fine, but not what I am looking for. Any ideas?

29 comments

[ 3.7 ms ] story [ 56.0 ms ] thread
Good, reliable programmers are very expensive. Think $200k/year minimum.

This might not have entered into your vision of reality but I assure you that's how it works. If you keep getting shafted by cheap programming "talent" and keep looking for more, you might just be a fucking idiot.

Lovely response. I never said I was getting shafted by cheap programming.
Sure you did, you mentioned elance didn't you?
The direct quote was, "I know services like elance exist."
If you keep getting shafted by cheap programming "talent" and keep looking for more, you might just be a fucking idiot.

Swearing and making poor extrapolations off of a simple query doesn't make you cool. It actually makes you look like the idiot, not him.

I wasn't trying to be cool, I was answering his question in a straight forward and honest manner. Other people seem to be more interested in trying to blow smoke up his ass talking about interesting problem domains and how money doesn't matter.
I was actually replying to you, not him, with an observation drawn from my experience employing a great many programmers of differing ability, including perhaps half a dozen great programmers.

In terms of great programmers, money is often subordinate to a great many other things, hence adjunct. Note I didn't say money doesn't matter.

Let me illustrate by paraphrasing the conversations I have on occasion.

  Ordinary Programmer: I'm quitting.
  Me: Why?
  OP: I can get $15k more at X.
  Me: Will you stay if I match it?
  OP: Yes.

  Great Programmer: I'm quitting.
  Me: Why?
  GP: I've got a great opportunity to work over at X with Y  doing Z.
  Me: Look, I can't afford to lose you: If it's a matter of money I'll match it. 
  Me: Perhaps we can see how Z might work for us....
  GP: Actually I'm pretty keen on working with Y. 
  GP: It's not about the money, believe it or not I'm taking a bit of a cut.
  Me: I see. Is there anything I can do to make you stay?
  GP: Nope. Hey, once I'm settled in you should come and meet Y.
In my experience Option B above only occurs when leaving a lousy work place. I've done the same thing twice.

But after about 2 years of not making money at the "great place to work" I end up having to move on to something that is also interesting, but actually pays.

But then again, I never accept a counter offer. If I was worth 15k more to you, then why the hell weren't you paying that to start with? That just shows a lack of respect.

Absolutely don't accept counter offers. The main reason they are offered is so that the company can have you leave on their schedule, not yours. Even if this isn't their agenda, you've created a poisoned atmosphere which will make something you're unhappy with be even worse.
It's really nice that you've found a few spineless coders to do work for you at a reduced rate because you cater to their egos - you are a superior businessman.

In my opinion any "great" programmer will strike out on his own doing exactly what he wants to do before taking a pay cut to work with pet technology X at your shop. Especially if he knows you're on the internet bragging about how you pay them less than what they're really worth.

I've never seen someone answer a question well while calling the asker a "fucking idiot". Something to keep in mind if you want to answer more questions.
Actually what you've just described is an expensive programmer, albeit not overly expensive.

Great programmers tend to value other things such as working with other great programmers and a stimulating problem domain. The money tends to be an adjunct.

Anyone who claims that money is an adjunct and doesn't work in academia or charity is bullshitting not only who they're talking to, but themselves as well.
(comment deleted)
It depends on a lot of things. Are you looking for contract work, or for a full time employee? Are you looking for someone to take a lead role, or junior to another programmer that you already have? Do you need experience with a particular set of technologies? Can you spend enough to be competitive with anyone else out there, or are you looking for a cheaper solution? Do they need to live in a particular place or is remote okay?
Many of the good programmers avoid services like eLance because they simply can't compete against the lousy coders who will bid $200 to develop an eBay clone in 7 days.

Perhaps you could look in the open source community of your language or technology?

Yes, exactly.

Occasionally, maybe 4-5 times a year, I get burned out on whatever current crazy startup idea I'm currently working on, and so I go looking for something different to do for a week or two.

I spend around 2 minutes looking on Elance, Rentacoder, etc, and immediately get discouraged (see above). Then, I spend some time looking at craigslist and maybe apply to 1 post in an evening's time (it's a lot of work getting your resume prepped to send). Then, a couple of days go by and I don't hear back from the one poster I applied to (I assume they are too swamped with awesome applicants to respond)...

So I go back to working on my project.

The problem there is not so much the people that would make such bids, but the people that would accept such bids.
If your in any city in US/Canada that has even a small startup culture, go to their meetups. I can think of 20 U.S. cities that would be easy to hook into the local IT scene. Tell us where you are and maybe someone can plug you in.

Also, many of the online resources such as elance and oDesk have US and Canadian profiles.

Avoid: Elance, getacoder, rentacoder, guru

Craigslist is honestly better than those places.

Ask for references, samples of past work, etc. Good programmers will have to ask you "of what kind of work" to narrow it down.

Hire a reputable company, not a random guy. Hire someone that has a portfolio, references, contracts, an office, a business phone number, an address, etc.

Oh, and be prepared to actually pay an appropriate amount of money. You do get what you pay for.

To find reliable programmers, start by being a reliable recruiter...

DO:

1. Check with your inner circle first. You know their interests, skills, and reliability. If they're not available, ask if they would vouch for anyone they know that might be interested and available.

2. Broaden your search to past associates who you have reason to believe would appreciate hearing about the opportunity.

3. Check the list you've been maintaining (!) of programmers whose public work you admire and who have indicated availability for consulting work.

4. Present the opportunity to relevant user groups or communities. Be sure their policy welcomes such queries, especially if you're not a regularly contributing member.

5. Be upfront and explicit about available compensation. It wastes both party's time trying to get a max $25/hr opportunity together with a min $125/hr consultant.

6. Consider permitting remote work. Some of the most effective teams I've worked with have been distributed geographically. If you can make this work, you've increased your pool of possible matches tremendously.

DON'T:

Assume that your need to find someone gives you license to be pest. The one person who ends up in the position will appreciate that you found him/her. A small group will appreciate the consideration. A somewhat larger group will tolerate the intrusion. Most of the rest of the world won't want to be interrupted. Try not to bother them.

Programmers who read hacker news is a good starting indicator :) I would also look at their previous work and how much of an online presence they have, articles, open source projects, blogs, websites, etc. And a shameless plug - if you need an independent and highly reliable programmer, drop me a line ryan at anvilflex.com
stackoverflow/jobs.37signals
By recommendation. Get to know good programmers. Then ask them for their recommendations.
1. Don't look for a programmer. Get a developer or an engineer. If they don't know the difference between the two, that's strike one.

2. Use your network. People you know, even friends of a friend, are far more likely to be honest about their skills.

3. If it looks too good to be true, test it. Ask for previous works, ask how they would solve a problem, ask until you're convinced they can do the job.

4. Be clear about what you want done. Draw up mockups, outlines, concept of operations. The less the developer has to ad-lib, the less skilled they have to be to get the job done. I'd venture to say that most of the mixups developers make are due to requirement holes. If you know what you want, you can verify its done the way you want it done too.

Even if the programmers you know are too busy to help out, then they can at least help with the search.

Job adverts and assessment questions written and reviewed by technical people look a whole lot different to ones written by the non-technical.

Do you already know any hackers/programmers who you consider reliable?

Request a few small code samples from candidates with some short (a few sentences description) of what/who/how the code was designed for and a little bit of context (ie, was the code produced under a 24 hour deadline to fix a critical bug or the result of a six month side project).

Have your existing reliable programmers skim over the submissions, looking for a quick yes/no. Bring in (or video conference, whatever works for you) the yes candidates, and actually treat the interview as a short work session. Brainstorm about your project requirements, technology approaches, talk about challenges you see, ask them for what challenges they see and how they would approach the problem. [EDIT] - oh, make sure to vet the submitted code samples too - if a candidate can't talk coherently about the submitted samples, I would be in "thanks for coming" mode.

Ultimately, I'll echo what most posts here are saying - if some hacker/programmer in your network says good things about a fellow hacker/programmer, you're probably way ahead of the game.

If you're completely unable to evaluate technical candidate skills and have no hacker/programmers in your personal network, I think you have to move back to a suggestion by bjclark - "Hire a reputable company." Maybe you can even pay a reputable software company to vet candidates for you - I've had poor experiences with IT recruiting companies, but I've always been on the other side of the table, trying to find a good technical recruiter to work with.