Guide to Hiring A Developer or Technical Co-founder For Your StartupJune 20, 2016 by Ian Spangler
If you are a first-time entrepreneur without technical chops or ties to a technology community, finding a worthy developer or CTO for your startup can be a big challenge. Especially in the early stages, you need someone well-qualified who is willing to work significant hours for below-market rates or for pure equity arrangements to help you get the venture off the ground. When beginning the search it’s important to know exactly what you are looking for. In particular, it’s important to be aware that hiring a developer to build your product is in many ways a different task than bringing in a technical co-founder, and you cannot necessarily expect one to fulfill all of the needs of the other. That is why I will be focusing on one role at a time in this guide.
How to Find a Developer
A developer is a craftsman who has the technical capabilities, including programming skills, needed to build and maintain your website, app, or other web-based product. This person is someone you would look for if you already have a CTO/ technical co-founder on board or you are confident you can go without a CTO because you already have a solid understanding of the technology behind your product and can communicate productively and effectively with developers and technical staff. The latter scenario generally assumes you have some kind of background in technology, and I talk more about the value of the CTO later in this guide in case you are not sure if you can fill those shoes on your own.
A developer is someone you will almost always need to compensate monetarily in my opinion. Trying to make an equity-only arrangement with a developer who will not be carrying the badge of co-founder is not only a very tough sell for a fledgling startup, but is also a risky proposition and can lead to frustration for either party.
If he or she is versatile, the developer can perform a variety of functions including programming both the front-end (appearance and behavior) of your product and the back-end (the framework, database or service driving it), and managing a basic server and hosting setup. If you are lucky, that one person may also be able to contribute minimally to a few other areas of your business such as search engine optimization, security, data analytics, or UI design. However, if your product is fairly complex, more than likely you will need additional developers to cover all of your bases. The main functions to consider are front-end development, backend development, and server, or “systems”, administration. You can start by asking within your personal network for people in these kinds of roles, but if that does not lead to anything, posting to job boards is a good way forward as the market is large, and there are plenty of options to pull from.
Searching or posting to the following forums is worth a try depending on your budget. I have had success in hiring developers/ technical staff from the first three on this list:
- Angel List: Free to create a profile of your company and search/ contact tech talent. These candidates are specifically looking to join a startup and are open to partial equity arrangements.
- Upwork (formerly Elance): Free to sign up and search/ contact lots of freelancers. Good for finding a contractor or specialist, like a server admin.
- Stack Overflow Careers: $350 for a 30 day listing with full money-back guarantee. Stack Overflow is a respected community of developers, and the site attracts quality candidates.
- Github Jobs: $450 for a 30-day listing.
- Dice: $395 for a single 30-day listing.
Overall, you will get the best results when posting to tech-specific job boards. Quality developers tend to stay away from generalized boards like Indeed or Monster.
When evaluating resumes, you will want to look at both the skills and the background.
If you need a full-stack developer — a generalist who can build your product’s front-end as well as the back-end, you will want the candidate to have skills in a broad range of languages and frameworks. When it comes to either web or app development, there are so many of these out there that it can be overwhelming at first. There is no one “best” or “most powerful” technology even though some are more popular than others, but there are usually a few that best suit your particular project’s requirements. If nothing else, it is a good idea to at least become familiar with the names of various tools in your domain before you start browsing resumes. I also recommend developing a sense of which tools may be considered overly obscure or immature as these tend to be under-documented and not supported by an active development community.
To get you started, here is just a brief run-down of some examples of technologies fitting various domains:
- Mobile app development (iOS): Swift, Objective-C, XCode, Titanium
- Mobile app development (Android): Java, Android Studio, Titanium
- Server-side scripting (back-end): Ruby, Python, Node.js, PHP (Laravel, Symfony, CodeIgniter, etc.)
- Database: Rails, MySQL, PostgreSQL, MongoDB
- Content Management System (CMS): WordPress, Drupal, Magento
- Server administration: Linux (Redhat, Ubuntu, etc.), AWS, Heroku, “cloud” services
Keep in mind that if you are developing any app that stores or retrieves various kinds of real-time information and user settings, whether it runs in a web browser or is downloaded to a phone or tablet, you will need a developer that is well versed in server-side scripting and database languages.
Be wary of young, inexperienced developers who pad their resumes with tons and tons of skills that are split up among many different programming domains. This can sometimes be an indication that they are mainly knowledge-heads and haven’t built anything substantial with any of them.
When combing through a candidate’s employment history, look for past jobs where the developer worked on projects in your domain of business and was able to build and maintain substantial parts of company products or built products for startups. Side projects are also good, if they are listed, as these indicate dedication to the craft. Many developers are self-taught, and these days, development requires more than just programming skills, so a computer science degree is not a necessity by any means. In fact, while many of those who have studied computer science formally can be quite knowledgeable and adept in areas such as backend architecture, databases, security, and hacking, they are less likely to be creative and have trouble paying respect to design, so it helps to understand your priorities.
Requesting Code Samples
After selecting the resumes that you like, request code samples to narrow down your pool of applicants before arranging an in-person interview. It is usually expected that the applicant will have a Github or Bit-Bucket account where they host programming work, and if they contribute significantly to large open-source projects, that is usually a good sign. If you are not sure about how to evaluate code, see if you can ask someone who has good knowledge of it to help you out. Above all you will want to confirm that:
- The developer’s code is part of a challenging, unique project and not a generic, cookie-cutter solution that could be obtained online and modified a little bit.
- The code is lean, well-structured, and testable.
You may also want to request actual project or app URLs for which the developer was largely responsible, especially if you are not sure about how to evaluate code, but keep in mind that how projects appear on the surface may not be very indicative of the quality of the code driving them. This is an important factor to consider because low code quality has a negative impact on ease of maintenance, speed, scalability, ability to integrate other developers, and many other things which can ultimately hinder your product’s growth and success.
At this point, you should already be fairly confident about the candidate’s technical skills so one of the key things to assess in an in-person meeting is whether you think you would get along well with this person and if he/ she would work well with your existing technical co-founder or manager (if you have one already). Loyalty and team spirit is extremely important and not to be underrated. If the developer seems like he/ she will be either contentious or apathetic, this could easily turn into more lost time and dampened morale than if the person is lacking some experience in a few areas. If the developer is reliable, flexible, and takes direction easily, this goes a long way. However, you will also want your developer to be independent enough that they do not require constant supervision. A good question to ask would be “What do you do if you run into a problem when you are working on a project? Can you give an example?” You want to determine that the person is resourceful and can pro-actively hunt for solutions online, but is not overly dependent on outside answers either.
One other important point to remember is that it is more useful to assess what the developer has actually accomplished than what they profess to “know”. Do not be swayed by someone who may speak a lot of “techno-babble”, but doesn’t have any concrete examples to show. It may be a good idea to ask the developer to walk you through how they built a particular project so you get a sense of their process.
How to Find a CTO/ Technical Co-founder
A technical co-founder, referred to as a CTO (Chief Technology Officer) in many startups, is someone who will be responsible for managing and guiding the growth of all aspects of your product on a technical and production level, and in some cases, on a creative level as well. In an early-stage startup, this person is often the one that builds the first version of the website, app, platform or service. In this respect, that person is fulfilling the role of a developer, but as a co-founder who commands a significant share of equity, he/ she can be expected do a lot more than execute the initial product and keep it running.
Expect this person to give you tangible ideas for growing the product that you never considered, to completely bridge the communication gap between you and any future technical staff you hire (including interface designers and project managers), have a broad understanding of systems design, and be able to creatively solve everyday problems that arise with the product. In other words, your CTO should care about many things about your business besides how the application is programmed, including, but not limited to: information architecture, design, testing, analytics, UX, agile methodologies, SEO, quality control, digital marketing, cost management, and even user acquisition and monetization. The CTO should have ideas about how to have an impact in all these areas from a technical perspective.
Finding a worthy technical co-founder for your startup can be even more challenging than finding a solid developer. If you can locate a talented person in your network or someone recommended directly by a friend, it is usually preferable to scouting on job boards. You ultimately want someone who is very trustworthy, dedicated to your vision, and who will be in it for the long haul. If you’ve exhausted your personal network, then you may try a site such as Angel List or Startuppers. (I can only vouch for the former). You may also consider reaching out to digital or product design schools as these can sometimes be breeding grounds for this type of co-founder and such folks will often bring more ingenuity to the user experience of an early-stage product than a computer science graduate might.
When evaluating a technical co-founder, you can reliably refer to some of the same guidelines outlined above, but bear in mind that the CTO is not necessarily a better, more experienced version of a developer. Programming will be one of this person’s main duties in early stages of your startup, but later on, he or she will need to function primarily as a capable leader of a team. And yes, while you do want many of the same qualifications in your CTO as you would want in a non-founder developer, you should be looking for many more things in both the persona and the background.
The CTO need not be a complete master of coding and certainly not a specialist in every area of technology since there are so many areas to cover and they are constantly changing. This is just not realistic. It is also not necessary that the CTO have a formal background in computer science. What this person does need to be is someone who has vision, creativity, and a large breadth of technical knowledge — someone who understands how to translate a business strategy and roadmap into an effective, usable product, and not just wait to be told what to code. If you or your other founders have little or no technical background, it is imperative that the CTO know how to project manage as well as develop, or you will face many challenges getting the results you expect. The CTO must also be able to confidently lead and inspire a team of developers while understanding their individual needs.
A CTO should have a big-picture mindset, so I would avoid selecting candidates who seem to be overly focused on minute technical problems or theories, which is what you would instead expect from a more specialized developer. In fact, if you are able to get to a stage with your startup where your CTO is able to lay off coding entirely and focus mostly on general architecture, project management, and building team morale, this is a sign of success and usually where the CTO (if you picked the right one) shines the most. Of course, for this to happen, you will need to have reached a point where you can bring in some good developers to work under your CTO, taking care of the finer details of your product.
The CTO’s resume should ideally show that he or she has been responsible, from end to end, for a complete technical product that has been launched, and if not, a series of products that demonstrate complexity and a range of features. I recommend looking for a combination of managerial and hands-on responsibilities because even though the CTO need not be a master of programming, he or she should be proficient and resourceful enough to build an MVP from the ground up so that you can test the market and gain traction. Once the MVP has shown promise, you can gradually add more complexity and bring in more developers and technicians as needed.
Hope you found this guide useful. Feel free to drop a comment or question below.