Hiring a developer? Make sure you get the right kind.
Nov 7, 2017
Focus on the pain (if it exists)
Before you do anything else: take a step back and ask yourself why you want to hire a developer in the first place. Is someone quitting? Do you want to build a new feature? Is your team too slow? Prior to beginning your search you need to write down your pain point(s) and refer back to them regularly to ensure you stay focused.
Company stage is critical
The type of developer you need to hire varies widely depending on which stage your company is in. Not all developers are the same! Here are the general characteristics you should be looking for:
Pre-revenue/seed
You need a developer who ships code as soon as it barely works. Look for a developer who has worked in startups or small companies and hesitate to hire from enterprise. You need someone with a strong business mind who not only communicates well but starts finishing your sentences for you.
Post-seed, Pre A-round
Flexibility is key here. Ask candidates how they reacted when requirements or priorities have changed. Do not hire them if the answer is anything other than "it was kind of annoying, but I could see the business need so it wasn't a big deal for me. That's how it goes in startups." Continue to look for startup or small business experience. Be wary of developers with very strong opinions at this stage.
Post A funding
Here is where you can start pulling developers from enterprise. You should be paying off technical debt at this stage and you will need their expertise. Everything will slow down, but that's okay, because your product needs the stability. After this stage you should have a permanent CTO, so follow his or her advice from here on out.
Assess your current talent mix (don't forget about ramp-up)
This is a big topic for another post, so I will only cover it briefly. Generally speaking, you should only be looking for senior-level developers. They cost more, but juniors will cost you more time which is worse.
Remember: it will take several weeks before a new developer will be productive and he or she will slow down your team until then. Wait to start new developers until after large or critical projects finish.
Speed v. quality
This is a fundamental tradeoff in any discipline but is particularly painful in software development. Ask candidates where they fall on a scale of 1 (ship mostly broken code) to 10 (launch rockets with this code). In the early stages be wary of perfectionists or developers who spend too much time planning. Most importantly, look for signs that the candidate is willing to move up and down this scale as business needs evolve.
Generalist v. specialist
Only generalists will do in the early stages. Look for developers who call themselves Full Stack and say things like "I don't feel strongly about any particular language, I just use the best tool for the job." Look for people who have experience in multiple languages, not a specialty in one.