Digital programmer

Published on June 19th, 2012 | by treysmith

94

How to find a good programmer

Ok ladies and gentlemen, Last week I asked (via my email list) what was the biggest issue you guys had when creating an app.  We had a ton of responses and the most common question (by a landslide) was “How do we find a good programmer“. Not everyone said it that way, we heard many things like:

“How can I get a developer to deliver on time???” “Where can I get a programmer that I trust not to steal my code?” “I’m having a hard time finding RESPONSIVE programmers who can deliver on budget.” “To many programmers saying they can do things they can not, help!”

I’ve found it’s much easier to get a gangbuster designer than it is finding a great programmer.  The biggest reason there is PROOF that they are good.  Like many of you mentioned, you can’t really tell how good a programmer is by looking at a picture. I can tell if you someone’s design is good or not in 2 seconds.  I look for style, uniqueness and the over aesthetic.  You can’t see code quality in a picture. The good news is this:  All of these problems can be solved.  Remember, you are dealing with the same pool of people that me (and everyone else that finds great programmers) are dealing with, so please don’t fall into the negative mindset that “all the good guys are taken”. This is simply NOT TRUE. Right now there are 22,819 game developers and 40,669 app developers JUST on odesk: Even with the duplication I bet you have at least 50,000 programmers available JUST on that one website.  Pretty amazing as I remember when there were only 20K on there not long ago! So, how do we dig through 50,000 people to find someone good?! I’ve got a system that’s worked great for me.  I just hired two more programmers full time from an outsource site last week and they are starting July 1st.  They are phenomenal programmers and super awesome guys.  One of them is a game server specialist and the other one a cocos2d master.  This will put my team up to 5 full time employees and about 5 part time. My full time guys are all AAA top notch producers that could rival the best.  We push out amazing products faster than about anyone else I know for our team size, but it hasn’t all been roses and cherries.  I’ve spent over $40,000 on outsource sites and hire all sorts of people.  Good, bad, horrible and awesome. After 2 years of doing this, I’ve developed a specific way of doing things.  Here’s how I now consistently hire good guys:

The Ad

  1. I write ads quickly (You’re about to see a very common thread in all of this.  To move quickly.  This starts with the ad.  I keep my ads short and sweet.  I rarely discuss project details and put a focus on the fact that the project is unique and it will turn into something amazing.  Usually I write an ad in one pass and it takes about 5-6 minutes)
  2. I never search for someone, I only hire people that respond to an ad.  (This reason is simple… people that respond to your ad are hungry for work and interested in what you are doing.  Two very important things)
  3. I post ads like CRAZY (I post on multiple sites and post multiple times.  Sometimes I will post an ad even when I’m not actively looking, just to see whose out there.  Last week I posted 3 ads and had some amazing people reply.  I didn’t hire any of them.  They were great but not PERFECT.  I am not scared to post 10 ads before hiring someone.  Seriously, I’m psycho about this.  Whenever I talk to someone who is having problems, 99% of the time they’ve posted just a few ads and haven’t found someone.  Think about it this way, if every time I hire someone I go through 200 people and you go through 20, who do you think will end up with the best guy?)
  4. I ALWAYS go with my gut (Why didn’t I hire anyone from last weeks posting even though some seemed really good?  Different reasons.  Some seemed good not great.  Others didn’t reply to me quick enough when I messaged them.  Some I talked to on skype but they kept me waiting for a few minutes between interview questions.  If it’s not perfect, I move on)
  5. I move quickly (I don’t spend much time on each one, I am quick to hide someone if they don’t look perfect.  It’s better to scan 200 people quickly than review 20 people slowly)
  6. I don’t get bogged down (Ok, this is basically the same thing as moving quickly, but this is the biggest issue I see people having.  I really want to drill this down.  If you think it’s a pain in the ass to post a bunch of jobs or to go through a lot of people, then you are not moving quick enough.  You have to cover a lot of ground fast and look for diamonds in the rough)

The Interview

  1. If they don’t respond quickly during an interview, I close the interview immediately (I don’t wait around for 3 minutes every time they are responding.  I can’t stand that.  If that happens I just tell them it’s not working out and move on)
  2. If they are sarcastic or a smart ass, I close it immediately (This one baffles me.  I’d say about 1 out of 7 programmers I interview ends up being sarcastic or shows a bit of attitude.  I will never understand it but if that happens I immediately tell them it’s not working out and move on.  Don’t be scared to turn someone down.  I always just say “Look, it’s not personal but I don’t think this is working out.  Thanks though.”  Rarely will they even ask why.  If they do, I just say that I’m talking with another guy that is better suited.)
  3. I dive deep into their answers (This is huge for you guys.  First off I always question people about their talent.  I ask them point blank how good are they.  Could they make a game like this or that… what is the extent of their ability.  I might not know all the programming lingo, but I know how to ask them “Could you make a 3D shooter game?” or “Would you know how to create the server part of a turn based game?”.  I let them know it’s OK to answer no, that I am just trying to find out what all they are comfortable with.  If they say yes, I don’t just end it.  I say “Ok cool, how would you do it?”.  Then if they say I would use python I say “Is python hard, I don’t know it.  Is it common to use?  Is it scalable?”.  I dig and dig and dig and dig until I can tell they are either very competent or they are BSing.  The secret is the word “HOW”… no matter what they say you can always ask HOW is that done)
  4. I actually PLAY their previous games (I have never hired someone without first trying out one of their games and making sure it’s not a buggy mess)
  5. I only hire people that I bond with(If we don’t get along, I don’t hire them.  I want someone with a similar personality.  This is someone you will spend a LOT of time with so it really helps if both of you bond during the interview.  Again, go with your gut, if you get ANY weird feelings then don’t hire them EVER)
  6. If I am unsure of either price or their ability, I just offer a SMALL PORTION of the project (Ok, at this point in my career I don’t have to do this much, but I have done it in the past and it will help some of the newbies here.  If you are really unsure about someone but think it might be YOUR lack of knowledge and not them, then hire them to do 1/4 of the project at a set price.  If you are making a jumping game, get them to make a rough prototype with nothing but a bouncing circle jumping on rectangles.  If it’s a running game get them to make a circle that runs and jumps over squares.  Anything super simple like this should take a matter of 2-3 days max for a rough demo.  Pay them for that if they deliver on time and then work out a deal for the rest of the project.  Guys, if you are scared to jump in with someone this tip is REALLY strong.  It works well)
  7. Regardless, ALWAYS go full price and not hourly (Man, I used to always go hourly until a couple of times it cost me thousands.  Always demand them to look at the project as a whole and give you a price.  If the price is to high, then negotiate with them and cut features.  They will always negotiate with you.  I try to pay $500-$1000 for a cheap game and $2000-$3000 for a solid title.  If I’m going to make a high end title then I always hire them full time after testing them out on a cheap or medium game and do it internally.  Again, making a big title with an inexperienced person is a nightmare.  This completely avoids that from ever happening)
  8. Don’t pay anything until first prototype (Not only do I always do full pay, I also don’t give any money until they’ve done a prototype. Giving money before work has caused to many problems in the past)

Ok, so that’s 12 tips I use when hiring people.  The sites I like best are eLance, Odesk, Freelancer and Vworker. Something just hit me while I was writing this article.  I  realized that I knew all 5 of my full time employees were going to be COMPLETE badasses before I hired them.  When I found their profile and talked to them on skype, I immediately knew they would be great. I knew they would be A TEAM guys. They all had these things in common:

1. They responded quickly.

2. They were very knowledgeable.

3. They were respectful.

4. They were passionate.  They LOVED making games.

5. They wanted to be a part of something big.

There is a theory in Silicon Valley of 10X engineers.  Guys who can deliver 10X the results of a regular engineer.  All my full time guys are 10X guys.  Designers and programmers… and I knew they would be from the start. Now, that said, I haven’t mentioned the 30 other people I hired and don’t use anymore.  They are not ALL going to be 10X’ers… actually MOST will not, but I bet when you find them, you’ll know it immediately. The most important thing is don’t get bogged down.  Do quick passes and stop when someone really sticks out.  If you don’t find someone you like the first few times, then post again. I told some friends last year the best thing I’ve learned in business is to PLOW THROUGH.  If you hit a speed bump, then don’t stop.  If you have a bad batch of applicants 3 different times, then don’t start worrying.  Just plow through every obstacle until you’ve met your goal. It works wonders :) Talk soon, Trey P.S. – I use this basic system for hiring any type out outsourcer.  Designer, web designers, SEO, etc!

Be Sociable, Share!

Tags: , , , , , , ,


About the Author

Trey Smith is the founder of Kayabit, a game company with over 10,000,000 downloads on mobile devices, Secret Headquarters, Inc, a marketing company that teaches entrepreneurs how to build their businesses and L-System records, a house music label from San Diego, CA.



94 Responses to How to find a good programmer

  1. Shariq says:

    Thanks a bunch Trey.

    You’re spot on about paying a fixed price. This mistake alone has costed me thousands of bucks. Warren Buffett said we need to analyze the incentives. When we pay them hourly, it’s an incentive NOT to write bug free code. The more bugs they leave to be fixed later – the more money in their pocket.

    I also check their attitude. Do they believe they’re being paid for their WORK, or their RESULTS. Huge difference of attitude that reflects in everything they do.

  2. Sam stone says:

    Trey,
    Great post. One thing about designers, even if they have a pretty portfolio and style they may be hell to work with for games (deliver files in different sizes, animations in the wrong sequence etc…)
    My advice is to just keep trying with small stuff until you find the right one.

  3. Brad Waller says:

    Trey,

    Great pointers! As a developer I like to read what is important to people like you who will be hiring and interviewing us. You have a good idea with the partial project. Good developers will be happy because they know that they will get the rest of the job.

    We also prefer fixed price over hourly. This lowers the uncertainty for you and we get a finite project that we can deliver on time and does not go on forever. The one thing that is required for this is a good specification so that both parties know what is to be done and what is out of scope. This way we can inform you that something new you ask for is extra charge if you want it. If so, great. If not, then we continue on.

    The only thing I have to disagree with is no payment up front. As developers, we get stiffed by customers every once in a while and making sure we get at least a 25% deposit helps mitigate that risk. Our usual plan it 25% up front, 50% on delivery of the review copy, and 25% on upload to the app store(s). This seems to be fair for everyone, and we have never had a client refuse any up front payments.

    • treysmith says:

      Thanks for the comments my man! Very interesting to see the insight from the other end. I’ll admit, I wrote this piece 100% to benefit the employer, but that is horrible some people don’t follow through like that.

      It makes sense though, for every bad hire there is a bad employer somewhere I bet ;)

  4. Rich says:

    Trey dude….was out of town on vacation for a while now and ma sorting through the millions of emails in my inbox. I just read this post and thought it was very cool that you write this detailed post to help people out in the app game.

    Trey are you still offering that dvd you have showing all the steps you did to develop your games? It was the “only pay for shipping” dvd?

    Crap I hope I can get it and am not too late.

    Thanks

  5. Dude I just got my first app into the app store. It’s my first app and it got 500+ downloads in two days. I thought that was pretty cool. When I saw you talking about apps I knew I had to take action and boy am I happy I did.

    So far the whole experience has been really fun. It reminds me of the days I first discovered Internet Marketing. I really can’t wait to see the future of this market.

    oh btw feel free to check out my app it’s called faceflip it’s pretty funny
    http://itunes.apple.com/us/app/faceflip-free/id535040094

  6. Howard says:

    Interesting stuff. Obviously, the best programmers for you might not be the best for me…

    I am also a programmer. But I’m definitely not a 10x. I might have been a 5x a decade or so ago, but I am currently losing interest in programming for a living and looking for something else — where I might even do some programming for fun.

    Turns out I might have use for a programmer to do a small specialized task for me, which I can then maintain myself. Kind of a short cut in the learning process for an unfamiliar (to me, but popular) platform. I will keep your pointers in mind when searching.

    @Matt Thanks for turning me on to bitbucket. I managed to get a local install of Subversion on my laptop, but it just seems too much hassle to use (I may have set it up sub-optimally). I just registered an account on bitbucket, and I will be archiving all of my personal projects there.

  7. Najee says:

    Whether you are hiring a programmer or a simple VA, a graphic artist or SEO, be prepared for a little heartache. Just like a traditional employee, some people are great to interview and their specs., are great but after a few days you realize that you two are not a good match. When that happens, let the person know, terminate the contract and move on. Don’t prolong it.

    That’s why when I hire a programmer or VA etc., I don’t close the job/Ad for a week or so. That way, if things are not working out, I move forward with the next in line short listed candidate.

  8. Mukul Verma says:

    Hey Trey,

    Glad John Reese suggested to read this, it is GREAT stuff. What is the site you hired your two guys from?

    This knowledge in full force is powerful.

    Cheers,
    Mukul

  9. Simon Choe says:

    Hi Trey,

    Although I have yet to be in the apps biz, being a offliner myself also faced the same problem, and glad to see the tips you listed, really learned something and wish I see these tips few years ago.

    Trey, may i know how you handle if a programmer provide great work initially(like for half a year), but performance starts to go down slope?

  10. Nathan says:

    Thank. Great tips.
    It spawned at least one more question.

    A fixed price bid generally requires an unambiguous description of the project.

    How many hours do you spend on writing the spec for $500-$1000 or the $3000 title?

    Will a good programmer be able to get by with a few vague pictures and some bullet points? Or you saying “kinda like this mobile game but with vegetable icons?”

    And are the requirements fluid? Suppose you want to tweak your app to improve conversions in the field. Or will you have hired them fulltime by that time, so it doesn’t matter?

    • Fadzlan says:

      As for the vague requirements, good programmers will clarify as much as he can before committing.

      As for the tweaking, my approach would be minor tweaking would be free after release say, for the first three weeks after release. Big tweaks probably going to cost some hourly rates.

  11. John Amaral says:

    Trey,

    Are the guys you hire ‘full time’ working hourly or by the project?

    thanks

  12. Jesse says:

    I would like to add: just do it!!!
    I think many people afraid to hire programmers are just full of self limiting beliefs.

    I just had my first full app made in 2 weeks from the third guy that responded to my ad… He built the prototype and showed it to me before I even chose him! Was I lucky? No!! I simply used vworkers crowd sourcing
    option.

    Great advice here Trey! Just do it! now is the time.

  13. Gabe says:

    Thanks for tips Trey, I’ve just hired my first dev for a very small app and these are very helpful.

  14. charr says:

    Rad post Trey, thanks so much for the great tips and benefit of your experience. Absolutely wonderful and practical, a rarity. You do rock!

  15. Brian Kwong says:

    Wow thats a fullly loaded post, thanks Trey!

  16. Matt says:

    great advice here Trey. As a programmer myself (a fairly good one I think) I’ve worked with a lot of other programmers over the years and know just how hard it can be to find qualified, intelligent people to code.

    I would add a tip that most of the very best programmers out there are starting to develop a portfolio of sorts on sites like github.com and bitbucket.org. People that love to code, write a lot of it and often share some of it on these sites. If your programmer is active on these sites is generally a pretty good indication that they are life long learners who care about their craft.

    It’s a little disheartening to hear that so many people stumble trying to build an app company at the finding a programmer stage. It’s such an exciting business to be in once you have games in the store that people enjoy playing.

    • Roy says:

      Err, that should have said “I don’t really want to touch dirty, old, complex codebases myself, but it tends to be what pays the bills.”

    • Roy says:

      That’s actually a good point. I hire people on odesk and… …you can get programmers who work cheaply (for the industry), but it’s so easy to get programmers who program dirtily. So far, that’s been pretty much all of them. Admittedly, I work on dirty, old, complex codebases, so I shouldn’t be surprised that awesome coders don’t want to touch that. I don’t really…

      But searching github, that makes sense to me. It’s a little… …rude to cold-call-like, but sometimes you have to be to get in touch with people you want to work with. Maybe that’s what I’ll try next.

    • treysmith says:

      Agreed my man. Great thoughts and tips. Thanks :)

  17. Tom says:

    Hey man
    When you go to different sites to advertise, do you use an alias or do you have your real profile on every site you advertise on?

    Cheers

  18. Steve Walton says:

    Trey,

    Every word of this is spot on.

    Pure gold.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Back to Top ↑