I recently had a conversation with someone about what type of people a start-up company should hire. I obviously weigh the importance of technology more heavily than most people, but I'm of the opinion that one of the first hires any company makes should be a CTO (or just a developer if we're being honest).
The purpose of this blog post is to discuss the merits of different types of developer hires. Here are some assumptions:
- The company isn't directly in the technology industry. If it's a tech company, then it goes without saying that one of the founders should be the CTO. If you're starting a tech company and none of the founders have strong technical skills, then you need to go back to start and try again.
- The company will only hire one developer for now. This person needs to be able to handle all technical needs for the foreseeable future.
- The company has enough funding to pay a very high salary, but they aren't swimming in money so they need to shoot for the best value possible.
- The founders don't have any connections to someone that would be a good fit. If you know someone that you can trust, that makes the decision a lot easier.
Considering these assumptions, I see two main hiring questions: (1) How much money can you really justify spending on a tech guy, and (2) what is the appropriate balance of experience vs. talent.
Let's start with the second question (weird, right?). One important thing to be aware of when deciding between experience and talent is your own ability to measure both qualities. Raw talent is pretty easy to judge when it comes to technology. Any strong developer should be able to show you something they've built. It could be a web app, a video game, or a school project. Whatever it is, you should be able to play around with it and decide if this person has the technical skill you're looking for.
Experience seems a little harder to gauge because it is almost entirely intangible. Working at a company doesn't necessarily provide "experience" unless a person is actually faced with challenging problems that they can learn from. A resume is helpful, but there's just no way to know how a candidate will perform in the real world. I've also never really believed that references are trustworthy.
Having said all that, I think experience is potentially much more valuable than raw talent, mostly because a candidate can only gain valuable experience if they are already talented. However, because I don't think anyone is any good at evaluating experience, I would probably try to hire someone that has ridiculous technical chops with the expectation that they will need to be managed by a non-technical person.
Presumably, the company already has a leadership team with lots of business experience. These people should be knowledgeable enough to guide a 22 year old programmer. The main mistakes a young developer might make are almost entirely business related (poor communication skills, lack of end-user focus, etc.) and a non-technical person can help with that. The opposite is not true. If you hire an experience developer that isn't a technical rock star, they will eventually run into a tricky tech problem that they won't be able to solve.
You might be wondering why I'm acting like experience and talent are mutually exclusive. That gets us to the first question we originally asked: how much should this developer cost? I think a company can hire great talent right out of college for about $80k per year. Great experience will cost more like $120k per year. Both will cost $250k or more. I just don't think it's worth paying that premium for experience that other members of the company already have (for the most part).
An added perk to hiring a young person is that there is a small chance they will end up being truly remarkable. You pretty much know the ceiling for a 35 year old. If they're looking for a $120k salary, that means they're only worth $120k. A 22 year old might be worth $500k, but nobody knows that yet so they have to prove themselves. When a talented 22 year old asks for $80k, that's their floor, not their ceiling.
So obviously every case is different, but if I had to give general advice it would be to hire the most talented young person you can find. Make sure a founder or manager will have time to carefully oversee this developer so that his or her inexperience won't be much of a problem, and hope that over the next few years, this person grows into the CTO your company really needs. If that doesn't happen, hire a real CTO when the company is more mature and can justify the cost.
What do you think? If you have to speak in generalities, what type of person makes for a good early technical hire?
Here's some advice for anyone that ever needs to hire a programmer: Stop focusing so much on years of experience. I think this advice is probably fitting for almost all jobs, but I'm certain that it is for programmer positions.
The other day I was writing up the description and requirements for a job opening and I decided to start by going online to see how other companies do this. I was annoyed to see that almost every job posting for a decent programmer required at least five years of experience using a specific programming language.
Let me make this very clear. For any halfway decent programmer, anything beyond 6 months of experience with a specific language is meaningless. All programming is more or less the same so you should focus on the applicant's understanding of basic computer science principles rather than how long they've been using PHP, ASP, C++, or whatever. The only people that get significantly better with a programming language over five years are people that don't actually understand basic programming. By focusing on that requirement, you're effectively admitting that you won't be hiring a good programmer.
Additionally, I would suggest that focusing on any type of experience is generally a mistake. In most industries, anyone that is really good at what they do will advance quickly so they'll never be applying for the job they had five years ago. If you want someone with five years of project management experience, that means you won't get any employees that are good enough to be promoted beyond that role after five years. If they were a project manager five years ago and they still are now, that means that they aren't extraordinary (or they just really love project management, but that's rare I think).
If you need to make a conservative hire, this is fine. Take the safe pick and accept the lack of upside. But if you're trying to find unique talent, requiring five years of experience almost guarantees that you won't hire any of the best people (because after five years they've already been promoted beyond the job you're offering). If someone has only been doing something for two years, they're more of a risk, but at least there's a chance that they are an elite talent.
I'm not saying that experience should be ignored when hiring. I'm saying that it should be one of many things that you consider when making a personnel decision, and setting strict requirements will just keep the truly great candidates from applying.