Strategy · Entrepreneurship

How to avoid hiring bad programmers?

Angel Otero Consultant en Freelance IT Consultant & Service Provider

October 24th, 2016

What killed most of the startups in the e-commerce business back in the 90s was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. What happens is that the business guys choose people they think are good programmers which may end up not being the case 90% of the time. How do you pick good programmers if you're not a programmer? Perhaps if you are not technical a good way around this might be to hire someone that can take this on? But still facing the same issue as above because you will never know if that person has what it takes in first place. Many thanks for your help!

Nick Temple Consultant at Temple

October 24th, 2016

I'd question those assumptions ... my experience is companies that crashed and burned in the late 90's was because while they had a product (i.e., great development) those companies didn't have sustainable business models and evaluations that were through the roof.

That said, if we ignore the rhetoric from that post, and focus on the question of how to hire great developers, I'd then ask you what your business objectives are and how you'd define "great".

[I'm specifically pivoting from "bad programmers" to "great developers" in order to have a more positive conversation.]

Are you trying to get a prototype out the door quickly, understanding you will need to re-architect and rebuild in order to scale? Or is it to create a rock-solid system with clear process, best practices and zero tolerance for failures?  Generally you'll want something in between, however defining your exact objectives will inform how you want to hire / structure your engineering organization.

Every project has tradeoffs, and you need to make those tradeoffs explicit and find people you can work with who understand and are willing to work within your constraints.

Once you have that, you can understand what you are looking for. The first person you hire is someone who knows technology and can vet your technical team for not only skills, but attitude and cultural fit.  So much of the tech industry is "buzzword compliant" that it IS hard to gauge the true skills of a developer (freelance, agency or employee) without an in-depth, objective interview process.

David Austin Relentless problem solver and innovator.

October 25th, 2016

Just want to add with some of the previous critiques in the original assumption.  Many if not most technical failures have as much if not more to do with the naivety of the non-technical founder in their presumptions of how easy the technical challenge should be, compared to the technical chops of the technical asset.  It is generally the most under budgeted item... Today as well as it was in the 90s.  Even technical people often under estimate the technical challenge ... Almost as a rule rather than the exception.

Cory Isaacson Advisor at Extraordinary Re

October 24th, 2016

This is an excellent question, I myself decided to "get technical" years ago because I too was burned so badly. However, I realize that is not totally practical, and over time I did build some approaches that can work.

Before I cover that though, I'll never forget an interview where I was the person being interviewed very early in my career. The president of very large prospect looked me in the eye and said: "I learned something about IT people -- you can't tell if they are any good or not until it's far too late...". 

This always stuck with me, and even after I "got technical" I still made mistakes.

One thing that really helped, and worked most of the time, was to give a very extensive and specific project to someone as part of the interview process. I picked something that I expected could be done in a long day or perhaps a weekend. I made sure it was relevant to what I needed done (not even the same technology, I often would let the developer use any technology they were comfortable with). This "test" was very good at weeding out people, because a) either they were not good enough to get it done in a reasonable amount of time, or b) they did not have the dedication and persistence to do it.

Interesting things came out of this, including a guy who had to learn the whole area to succeed, and he has been very reliable ever since. As another point, I always look for how adept someone is at learning new things, rather than trying to find someone who "knows it all already" (that last category can cause the biggest problem individuals).

Lastly, a really great developer can do things many times faster than their peers (as much as 30X according to some studies). This type of upfront project works really well.

If I am still unsure of someone, but think they have potential, I have often brought them in for a trial period, allowing them to prove to the team they can do it.

Anastasia Titova Head of Marketing at QArea, Software Development Solution and QA

October 26th, 2016

Hi Angel,

There are so many circumstances which affect the model of hiring, let's try to consider these models coverings possible hidden risks for your business:

1) Hiring freelancers by yourself


  • Cheap,

  • Fast.


  • It would cost MUCH more for your project in the long run, if you have made a wrong choice.

Advise: hire people this way only with recommendations from their previouse employees, or taking into account their profile score, for example it's easy to check on upwork:

2) Hiring a freelancer while your decision is backed by an expert in the area


  • Reletively cheap,

  • Gives you more confidence that candidate meets your requirements.


  • Still, you need to be sure that the original expert you’ve hired is really good enough to interview potential candidates.

Advise: usually this kind of experts has a good level of trust in the community. Check their blogs, references, etc. If you are going to invest in your team a lot (not just 1 position), visit relevant conferences and talk to speakers.

3) Hiring a recruiting agency


  • Probably it's one of the fastest ways to find someone,

  • Usually recruting agencies also test psychological profiles of candidates, so you can be sure that the person you hire is not just good enough as a tech expert, but is also the right person to work in the environment of your company


  • Still, usually recruiters are working for comission, so they are interested in finding someone faster. They do not guarantee that expert they’ve found is the best choice for you.

  • Good recruiting agencies cost a lot, you need do some research before hiring.

4) hiring IT company


  • You actually delegate all risks to your IT provider, because you are getting a tech partner, not just a developer or a team. If it's a good company, you are getting a client manager, legal support in signing up agreements, quality assurance support, business analytics, etc. So, actually you are getting access to the best resources a company has, thus the doors are open to their experience as well.

  • Pretty fast in getting resources to expand your team.

  • If they provide you with a good PM, you can be aware of risks, estimations and be confident regarding deadlines.


  • Relatively expensive


Make some research before hiring someone. Check some companies ratings like,, etc.

Ask for references from previous clients and case studies. Don't look at low rates, as usually low rates of an IT company bring some risks, because such a position means that the company doesn't have any other advantages before competitors like expertise, references, certifications.

Hiring an unreliable software outsourcing provider can sink you in more trubles even in comparison with all previousely described models.

5) Find a CTO

If you have enough budget for this and software development is one of the specializations of your company and you have a good person on your mind and dedicated budget, go with this step. Find someone you can trust and deligate building tech support to this person.

This stuff can be helpful as well:

Dave Thomas Senior Software Engineer at Sparkcentral

October 24th, 2016

Agree with @NickTemple on challenging assumptions.  I don't know your experience, but it makes me angry to hear bad programmers get blamed for 90s e-com failures. I was in the thick of it.  At the time I was in my early 20s, and IMO a good programmer having started as a kid.  I worked for one of the first ISPs in LA, then opened a contracting firm and had 5 people working for me.  We did quality work at a fair price, not cheap, not offshore.  I watched with horror as hype-slinging scavengers (think "Boiler Room") built BS product that created zero value, pocketed high-six-figure salaries.  What's also different is they built what we now call superficial private clouds... but they had to because there was no alternative. Then the boom bust and for years there was little to no work as a software developer.  Investors were right in thinking they got cheated.  Students saw all the out-of-work programmers and stopped majoring in CS, for 8 years, until the housing crisis came and software was the lone star.

Hiring good programmers?  For starters, you need integrity.  Be awesome, and surround yourself with awesome.  If your idea is real, you should have no problem attracting a strong CTO who comes with lots of coders with modern startup skills.  If you have to make everyone sign an NDA in order to hear your elevator speech, you have nothing, and people with integrity won't waste their time because your competitors with more money have been working on a better alternative for longer.

K. Robbins Head Moose at Moose WorldWide Digital

October 25th, 2016

David your advice is spot on.  I can't tell you how many starry eyed startups have walked in the door... been taken aback at our honest assessment of the cost to build the dream... found the lowest bidder... and lost every penny they invested with nothing to show for it.

It's very sad, we feel for them, and no we don't say "I told you so"

But it happens more often than not.

World Changer & Ninja Marketeer Improving everything one day at a time...

June 11th, 2018

I have been around this question for a long time, on BOTH ends.

As a non-techie, meaning you do not know a lick of programming nor how programmers actually work on a daily basis, it is pointless for you to judge one base on psychology alone.

So two options:

  1. Ask a couple of professional programmers you trust to give you a custom questionnaire or sample project that you can give to potential employees to prove their mettle. Understand the test HAS to be relevant to what you need for your future project. If you really don't know any, yes hire at least 2 programmers from trustworthy sources and get those done.
  2. Partner with a techie who knows what he is doing and whom yous trust from their past professional experience (maybe with references), give him a percentage and work together.

Trying to go at this yourself and "figure it out on the way" is the worst idea. Trying to assess after like 30% into the project is also a terrible idea, unless you rather waste money and time that way, worse yet, "settle" for whatever he can do. And yes, you will need money either way. There are about 0.001% of people who are qualified and may be willing to work for free/cheap with partnership, but surprisingly enough, that is becoming less and less and more just want your money.

Mark Muskardin UI Engineer at QBIS

October 24th, 2016

The good programmers tend to have a lot of experience.  Programming is a difficult skill to master, and it has a substantial learning curve.  So it takes a significant amount of time and persistence to become proficient.

At the end of the day, a proficient programmer will need to show you a working program they've developed.  Programs can come in the form of web apps, mobile apps, reusable libraries/components, etc.  Try out the programs.  Do they do something useful?  Do they work?

More proficient programmers will normally have a portfolio, and a repository of code they openly share with the world (through a service called Github).  They'll also have favorite technologies, languages, frameworks, and strong opinions they're not afraid to share.

Look at their portfolio and experience.

Gabor Nagy Founder / Chief architect at Skyline Robotics

Last updated on June 8th, 2018

Hire people as contractors first, for a specific task, or two.
This will give you the experience working with them, that should be enough to decide if you want to hire them full time.
There's an old saying in Hungary. You only get to know someone by living with them...
Or, working with them, in this case.
This will also give you a larger pool of expertise, for specific tasks, without spending millions on hiring a bunch of top experts.
But, be fair!
It doesn't mean you should consider people to be disposable!
If someone is good, you should hire them full time.

Selvan Rajan

October 24th, 2016

Hiring is an art. You learn as you go. Here is my strategy though I am a technical person: 1. Define what kind of a programmer that you are looking for on both soft and hard skills, 2. Give a weighting of 25% to the resume matching your requirements, 3. Develop a set of questions both technical and non-technical questions and give 25% for each, and finally 4. Develop a couple of hypothetical business scenarios that would resemble your idea to see whether he/she could come up good answers with a weighting of 25%. Based on this approach, you will definitely learn and improve the process.