Published on June 19th, 2012 | by treysmith94
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:
- 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)
- 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)
- 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?)
- 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)
- 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)
- 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)
- 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)
- 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.)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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!