How to hire competent programmers


8

I have a new startup and need some additional Java programmers. The problem is: the majority of applicants have just gotten completely stuck and given up when presented with an extremely simple programming test. The first of the two questions is barely more complicated than "Hello World", the second is a bit harder but the algorithm is described in pretty good detail in the question.

It's only one problem, but actually there's more than one question coming out of it.

1: Since strictly speaking I could do the whole project by myself, it would just take a lot less time if I got some extra help early on: can anyone advise me on how to balance my time between trying to hire more people and working on the project?

2: How can I attract competent programmers while still being open about being a small startup with limited funds?

3: How can I do a better job of filtering out people who can't code at all, given that lying on resumés is almost standard practice where I'm operating, and that I haven't had any success getting anyone to do an online code test before the interview? I'm already filtering out anyone whose resumé is suspiciously similar to anyone else's, or who claims to have made Java contributions to projects I know to have been written purely in another language.

Hiring Development

asked Sep 17 '13 at 19:38
Blank
Jeremy List
46 points
  • I like this question, although it remains largely unresolved after decades. #1 Only you can decide the balance here, although adding people does slow things down (Mythical Man Month, Nine women can't have a baby in one month, etc). #2 Figure out what motivates them. Not everyone needs massive pay, some are happy with recognition, responsibility, freedom, etc. Having said that, "low pay due to startup" is BS and we all know it. #3 You can hire a temp to help, engage an agency, or hire freelancers, but say you'll only pay on satisfactory completion. – Steve Jones 11 years ago
  • I know this may be irrelevant, but maybe it's you? Have you tried getting feedback from a friend/girlfriend/SIG other to just see if you're explaining it poorly or coming across as a jerk? I panned a few 'test to pass' job applications BC the founders were total tools. – Theao 11 years ago
  • @SteveJones I didn't mean to imply "low pay due to startup", although to be honest I might not be able to pay developers as much as I want to until the first project is generating some revenue (I've planned everything so that can happen before it does everything in the spec'). – Jeremy List 11 years ago
  • @JeremyList "...although to be honest I might not be able to pay developers as much as I want to until the first project is generating some revenue..." Okay, but how is that not "low pay due to startup"? I refer you back to Item #2 on my previous comment. If you want good people, you should pay more than "market rate", or they'll walk for someone who understands this. If you can't pay enough, you need to figure out what you can do instead. – Steve Jones 11 years ago
  • @SteveJones It is a bit different: If I was able to find people with the skills I wanted I'd have a pay rise once the first milestone is reached written into the contract. In any case: only 2 people have made it as far as finding out what I'm willing to offer them, which was higher than "market rate" but still lower than what I'd pay ideally. – Jeremy List 11 years ago

5 Answers


4

You don't say where you are based, but here in London there is currently a major shortage of good developers, so if you don't offer a very attractive package then you will only get poor quality candidates.

I've interviewed candidates for mid-level jobs at a large university and found that maybe half of the shortlisted applicants get stuck on basic 'hello world' stuff. The conclusion we came to was that a) we offer less money than some other places do and b) we offer fewer exciting startup-style perks, leading to the best people not wanting to apply. Also resumes are not a good predictor of performance.

First thing to do is find out why more good candidates are not applying. Compare your job ads to others that target similar people for similar roles. Remember it's not all about the money. Location, community, funky office space, career development prospects and working on a project that matters are all a big deal, amongst other things. Consider using Lean startup principles. Do 3 versions of your job ad and see which one gets the most responses. Of those responses, which ones lead to the better candidates. It may be that some perks/words/phrases/ad locations get lots of low quality people, but others get just a few high-quality people.

Once you get more people to apply, I'd recommend:

  1. Dump any resumes which don't pass muster
  2. Phone call to screen out people who can't communicate or who clearly don't understand what the words on their resume actually mean
  3. A coding challenge of some sort to be done at their leisure and emailed/githubbed back to you
  4. The face-to-face interview.

If you have trouble getting people to jump through the hoops then they are either not that keen to work for you, or not suitable candidates. Talk to them to find out which.

One of the best ways to short-cut the hassle is to use Stackoverflow careers (friends have done this and say it has been very useful), and you should definitely read Joel Spolsky's excellent blog post on how to hire developers: http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

answered Sep 17 '13 at 22:08
Blank
Matt Gibson
318 points

3

I don't think you can go the traditional route on hiring a developer. You don't have the resources relative to the available pool of talent.

  1. Professional Contacts - Have you exhausted all of these? Get connected to a local dev groups. Maybe your programming contacts all have jobs they wouldn't leave, but surely they know someone. A recent university graduate?
  2. Be a mentor - try to find someone with apptitude and not just Java knowledge. If the test is as simple as you say it is and you feel knowing it is a perfect way to identify a competent programmer, you should be able to teach someone in a couple of weeks, but they better have the ability.
  3. Salary - It doesn't sound like you can afford to pay a competitive wage for a talented programmer. Is this the reality? Maybe you should settle for an intern or part-time person.
  4. Other company's people - You may not want to poach other people's talent, but as a startup, you may be able to lure those that prefer to get away from the larger corporations. Sometimes younger devs or those closer to retirement may not have as many financial obligations and prefer some life/work balance.

A new programmer should be able to pick-up on your code base if you put in the time; otherwise, you're going to need the money. Think about it in terms of the time you invest now to the time you'll save in the long-term. If you can start building a good team, you can attract other programmers.

I realize this may not be the ideal answer you wanted, but I don't see a quick fix here. You may get lucky and find one good programmer by running job ads.

answered Sep 18 '13 at 04:34
Blank
Jeff O
6,169 points
  • #1: An inconvenient number of my professional contacts have opened their own startups in the past few months. #2: I'm trying to do that already but it's just as hard to find people with aptitude but no skills as it is to find people with both. #3 The salary I can pay for the first few months is limited but I'm happy to increase it once we get some revenue. 4: I've made a few efforts to recruit from other companies, especially ones I know don't have as good a working environment as what I offer. I know how I could do that better though. Thanks! – Jeremy List 11 years ago

1

Good advices from Matt. If I may add a couple of things:

  • I have screened candidates beforehand using online coding test (or ask them if they have taken any recently to prove their skills). If they take the test (which can be an hour long sometimes) then it also shows some level of motivation
  • check their track records, eg participation in OS source project are a great indicator for me
  • important is to check their motivation. They should come up with questions and (because it is a startup therefore a risky business) they should be inquisitive, eg business model, organisation, etc...

Conversely, if your business has lots of potential from a business and/or from a technical point of view and it can provide a great professional experience to your employees (technology used, position held), make sure to highlight it in your job ad. That's definitely a plus. May be open up the job position to more than "just" programming?

answered Sep 17 '13 at 23:06
Blank
Thomas
111 points

0

In answer to all your questions:

1. This depends on you, on your other partners, on what you're building, and who you can find to work with you.

Can you find someone equal or better than you technically? Can this person help define the libraries you're going to use, the architecture, the tools, the processes and so on? If so, great! You've found an ideal partner: each of you can do his or her own thing and come together every now and then to make sure you're on the same page.

On the other end of the scale, if you have to rely on hires that have a lot to learn you'll have to play manager, mentor, teacher, technical support, during which time: you won't be spending time on your work, and they'll be unproductive while you help out.

2. An easy way to attract talent is to describe the job in terms of challenges or objectives. You can't list a set of requirements. Your job ad (if you're using one) should include:

  • The things the person will be doing (e.g., build a web front-end for a back-end developed in Foo, using Bar, making sure that the front-end is responsive and so on and so forth). Programmers are attracted to challenges, make sure you spell out what the challenge is for your project
  • The technologies and tools used (version control, IDEs, servers...)
  • The development philosophy or methodology (e.g., whether you practice agile, believe in simplicity...)
  • The vision for the company and product (what it's for, who it helps, where you want to take it...)
  • All the other stuff that would interest you if you were looking for a job (salary, office location, perks, describe the rest of the team, whether you do code reviews...)

Be honest and up-front about what commitment you're looking for, otherwise you'll just be delaying a difficult discussion or separation.

Other ways to find your perfect developer: friends, family, meet-ups, conferences...

One advantage to being small is that you can try people out. The idea is to bring the person in for a day or two (a lot of people won't be able to do this, but if they're interested they may be able to do something similar in the evenings) and see how things work out. The person should do actual work that you need and in return you should pay the person.

Are you looking for people in your immediate area? What about remote workers? If you go remote the pool of available people grows, obviously.

Think about whether you can accept people coming and going (e.g., you may be able to solve the problem with interns or contract work), or whether you're going to need the people you hire to stick around for a while (most likely).

3. You can't rely on resumes. The online code test before the interview is fair, unless you're asking for too much time from people.

For the people that say they won't do it because they don't have the time... it's difficult. My opinion is that if you don't have the time, then I don't either. I think about all the crap that comes up at work that has to be done that nobody wants to do, and I imagine that the person that wasn't very flexible on day one will probably be less flexible as time goes by.

The way you present the task might influence their reaction, so be considerate. Make sure the person is motivated, explain why you need them to complete the task, and thank them for their time.

For the people that can't do because they don't know how to do it, you probably can't afford to wait for them to get up to speed. But that's your call: every new hire must meet a minimum level of technical proficiency, the level is yours to decide.

You're doing it right by making sure they're technically competent first, but don't forget that you also need to make sure the people are motivated. You need both. It's like Joel Spolsky says: "smart and gets things done."

Not "smart and/or get things done."

answered Sep 24 '13 at 08:52
Blank
Ivan Maeder
136 points

-1

One recommendation is posting your projects on freelance sites like Elance. It's safe to do business on these sites because they have escrow payments and plenty of feedback on the providers that bid on work.

There are other freelance sites too like odesk.com or freelancer.com

answered Sep 17 '13 at 22:51
Blank
Web Eminence
11 points

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Hiring Development