Guide to Hiring Your First Developer for Non-Techies

Guide to Hiring Your First Developer for Non-Techies

One of The Foundation members asked in forum, “How do I find a good developer?”. I was glad to help, but then I thought that others might benefit from this advice so I answered it via a post.

The best thing is to work on something small first. This way you’ll test the waters before putting a major project under risk. This might include a test or a real, but small task, (preferably outside of the main project) like writing a bookmarklet or a scrapper.

If you use oDesk (as I do) filter by at least 1,000 hours, i.e., freelancer worked via oDesk more than 1,000 hours. Then, do a video interview. Look at the portfolio and see if you like the work that was done. Also consider the location, because a difference in time zones is worse than distance (according to Succeeding with Agile). For example, I would pick a greater distance and less time difference over proximity with a larger time difference.

Typically, there are 3 criteria:

  1. Speed
  2. Quality
  3. Rate

The paradox is that some experienced developers whose rate is let’s say 2x can be 10x more productive than cheaper and less experienced developers… so aim at paying at least $20 per hour unless you know what you are doing. I would recommend offering around the $30 to $50 per hour range, because in the beginning they will be educating you a lot—so think about this as an investment. :-)

If you hire with aopt for flat/fixed rate contract, then have milestonesthe milestones. If you get an hourly estimate, then multiply it by 2 to get a more realistic number. It’s called the Hofstadter’s law.

When you hire, over-communicate and follow Agile with daily scrums and weekly planning… don’t allow a developer to work in silence for weeks, because this will usually end up in a re-work of some parts.

I despise toy problem / puzzle interview questions, on Computer Science fundamentals like sort algorithms, because they are close to worthless, in modern day web development. However, here are some very, very basic questions that will show how person is versed, in the practical areas. which I used to ask them when I was conducting technical interviews. I’m giving out my secrets!

  1. Var question: test on JavaScript scoping and fundamentals
  2. Monad question: test on JavaScript patterns
  3. CSS question: test on CSS fundamentals

Var Question

Let’s say we have this JavaScript code:

var a = 1;
b = 2;
console.log(delete a);
console.log(delete b);

What would be the output and why?

Answer: false and true because delete works only on properties and a is a variable, while b is a global (leaked) property window.b.

Monad Question

Write a definition for function f, so that this code:

var f = ???;
var a = f('hi');
var b = f('hello');

Prints “Hello World!” and “Hi Azat!”.

var f = function (g){
  return function (n) {
    return g[0].toUpperCase() + g.substr(1) + " " + n + "!";        

The catch here is to see if they performed the toUpperCase() because most of the people get excited about functions that return functions, and miss the fact that words “Hi” and “Hello” need to be capitalized! The devil is in the details.

CSS Question

What is the difference between class and ID?

Answer: ID must be unique, and used only once on the page, while class can be and should be used multiple times.

Author: Azat

Techies, entrepreneur, 20+ years in tech/IT/software/web development expert: NodeJS, JavaScript, MongoDB, Ruby on Rails, PHP, SQL, HTML, CSS. 500 Startups (batch Fall 2011) alumnus.

4 thoughts on “Guide to Hiring Your First Developer for Non-Techies”

  1. Hi Azat,

    I’m probably just nitpicking a bit :), but shouldn’t it be…

    Prints “Hello World!” and “Hi Azat!”

    … instead of

    Prints “Hi Azat!” and “Hello World!”.

    If this is worth the effort put into it, darn, I think I deserve a reward. :)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.