"If you can't find it, just go and create it yourself."
It's a phrase I've heard a few times in my life. It's not always that easy though is it? How do you apply a phrase like that to people instead of things? Every tech startup I have talked to in Colorado seems to mention the struggle of finding good developers or CTO's for their company. Right now in Denver, we have a booming market for developers, and even mid-level developers can quickly and easily find and land a high paying job any given week. With that kind of demand, Denver is actually breeding a lot of cocky, fickle and lazy developers (and obviously, I'm generalizing, this doesn't apply to all devs). Many developers are also looking for the next big thing, so if your company isn't always on the cutting edge or your pay isn't top grade, then they're prone to start looking elsewhere. Time and time again, I've been hired to consult and step in as a temporary dev or CTO to help a company get back on it's feet after losing an employee that was supposed to fill the position, and I'm here to tell you: you're doing it wrong!
Hire Cheap
The biggest risk that comes with hiring developers is usually the cost. You are probably spending far too much time training, locking down servers, talking about your company, or negotiating pay. In my opinion, the first filter to hiring a developer is to put the salary range out on the job posts you have on the web. Eliminate developers that are seeking too much compensation or that you can't afford because it's a waste of time for both parties. Hire quickly and cheaply, and stop worrying so much. By getting a developer in the door quickly, you are going to determine whether or not they are a good fit by spending more time on real problems rather than asking whether they can address hypothetical scenarios or trying to look deeply into their past experiences. Sometimes culture, conflict, and attitude need to be put aside and you simply need to see what they can DO. Create backups of things, and don't worry so much about mistakes, not every developer is out to get you, or destroy your server or environment and it is too damn expensive to try and keep everything a secret or on some kind of lockdown! That means: give them access to the tools, repos, software, servers, etc that they need to be as productive as possible!
Hire Passion
Are you working on a minimum viable product or a polished final iteration of your software? It's a question you should ask yourself often because it should dramatically alter your approach to hiring devs based on the answer. If you're trying to get an MVP out the door, skip the senior developers; you simply don't need them. Finding a senior developer that will commit to your company and idea for more than a year is a challenge even with the $150k salary. Instead you could hire three really good mid-level developers (or better yet, two mid-level and two junior devs) for the same price and let them make mistakes. The junior developers will be quicker to admit mistakes, and work harder to overcome challenges or refine their work simply because of the hunger and drive that you hired them for! In the past I've always made a habit to hire developers that came from hard working backgrounds or careers: construction, fast food, services. These guys know what real work is and are that much more thankful for the opportunity of a desk job and to do what they love!
Aim to teach and learn
It's my opinion that anyone interested in a startup job is also interested in business, otherwise they'd be a pawn at some corporation, right?! When you hire a developer, aim to give them your expertise over time and try and absorb theirs. If you're the founder of a tech startup, you should understand at least the basics of your software and servers even if you're not techy. Your employees should also understand the "why" and "what" of your business enough to give the elevator pitch or represent you well over a beer at the next meetup event they go to. Don't hire someone just to do a job unless that someone is a contractor. Bring employees in to be a part of something that you believe in and show them that they matter.
Overall, just think about your approach. If you're banging your head against the wall or looking for your replacement CTO, then you messed up along the way, and it may be time to reset your expectations. Consider asking another tech company with a rock solid CTO to come in and evaluate your company. Their experience, ideas, successes and failures may help you refine your process and start building your technology the right way. Don't be scared to fail early or fail often!