How We Hire Developers For Our 8 Person Bootstrapped Software Startup

Attracting and retaining talent is the most important task for growing and scaling a business.

It’s very likely that you’ve heard a form of that same statement a million different times. 

Unfortunately, I think it’s difficult to realize why it is as cliche as it is until you go through it yourself. 

Not only is this true for large companies, but it’s even more important for bootstrapped startups who have limited resources and smaller margin for error. If you make a bad hire early on in your startup’s life, the mistake will of course be expensive in terms of the money/salary wasted, but it will likely be even more expensive in terms of time lost and opportunity cost of having the wrong person taking the seat of the right person for the job.

Ultimately, if you can’t hire extremely talented people, you will never be able to scale your business beyond yourself, and your business will plateau with your own capabilities. You need to bring in talented people to scale past yourself. 

After launching our cryptocurrency tax software startup almost three years ago, my co-founders and I have hired a number of different developers. We’ve learned the hard way why it is so important to hire slowly and make sure you are only bringing in A players. After many, many mistakes and lessons learned, we’ve created a system that we use to attract, vet, and hire talented developers from all over the world. This system has enabled us to scale up our engineering team and increase the speed of our product development.

I explain the system we use to hire developers below.

Overview

Early in our company’s life, we got to the point where we had the capital and the need to start hiring more developers. We had no idea what we were doing, but we knew that hiring was something all companies did, so we should probably do it too.

Our informal thinking and approach permeated our entire hiring process. We reached out to people in our personal network and posted one-off job listings on AngelList with little rhyme or reason. 

If we found someone who seemed to fit the bill, we would get on a call with them, talk about the opportunity, hear about their background, and make the decision if we wanted to hire them.

Ultimately, the people we hired during these early years did not work out, and they cost us money and more importantly time.

Our system today is the complete opposite of informal. It is structured and planned. Everything about it is intentional. Our hiring system is built to create a funnel of qualified candidates and widdle down that funnel until only true A players who fit our technical requirements and culture remain.

This system has been crucial to our success. The steps to our hiring system are detailed below. 

Step 1: Develop a Crystal Clear Understanding of the Exact Type of Candidate You Are Looking For

If you don’t know the exact type of person you are looking for, it’s extremely unlikely that you will wind up hiring that person.

The first step in our hiring process is to literally write out the skills, characteristic traits, and values that we want our target candidate to possess. 

What programming languages does your target persona have to have experience with? How many years of experience do they need to have? What types of companies should they have worked at in the past? What type of characteristic traits will make someone successful in this role? What type of goals should this person have? What things should motivate this person?

We take the time to build out a complete persona of our ideal candidate. This is extremely important, and properly defining our target persona in this step carries into every future step in our system. 

Step 2: Create Job Postings That Attract Your Target Persona and Deter the Wrong Personas

Now, based on the detailed target persona built out in the prior step, we create a job posting designed to attract our target candidate.

It’s important to get extremely specific with this job description. The whole point of the job posting is to act as the first line of defense for qualifying candidates. We want it to act as a beacon for those who are qualified and a cultural fit for the job, but we also want it to deter those who are not.

Beware – it’s common for companies to make their job posts as vague, rosie and cherie as possible. While this is tempting, and it will certainly bring you more applications, it will ultimately waste a lot of your time as it won’t discourage those who aren’t a good fit not to apply; it won’t bring in your target persona.

Here is an example job posting that we created around our target persona of a C#, .NET developer with 2+ years of experience with a fiercely entrepreneurial personality.

Step 3: Get Your Job Posting In Front Of Your Target Candidates

So now your job posting based on your target persona is complete. Now it’s important to take time to identify the best distribution options for the job post.

Where do your target personas congregate? On what sites are they researching job opportunities? For every industry, this will be wildly different.

For our cryptocurrency tax software company, there are a number of crypto specific job boards that candidates interested in the industry scout for jobs. 

We pay to post our job listing on all of these niche sites. Additionally, we post to AngelList which is one of the best hiring platforms for software startups in general.

Other options like Indeed, LinkedIn, and ZipRecuiter present good options as well. The goal here is to get your job posting in front of as many people as possible who are likely to match your target persona. 

Get creative and do the necessary research to identify the best channels.

Step 4: Field 100-150 Applications Per Position You Are Hiring For

Our goal is to field 100-150 applications per role we are hiring for. For some positions, this can be difficult, for others it can be easy. But we want to make sure we have a solid top of funnel with many candidates when starting the vetting process. 

The rest of the system is designed to sift through this top of funnel so that the most qualified candidates filter to the bottom. 

Step 5: Automate Behavioral Screening Interview

Automating the first screening interview is the most important step in our system, and it saves us dozens of hours in screening and initial back and forth with candidates. 

From the 100 applicants we receive, the first step is to manually sift through resumes, cover letters, LinkedIn profiles, and backgrounds and invite anyone who appears qualified at face value to our automated one-way video screening interview. We simply push a button to kick off an automated email sequence to the candidate letting them know that they have been invited to the first round of interviews (which is our automated on-way interview)

We use a software tool called SparkHire to enable these one-way video interviews.

Our screening interview is a short 5-7 behavioral interview where the questions are designed to probe for characteristic traits matching those of our target persona. 

One of our target persona characteristic traits is a life-long learner. To vet for this trait, we ask the question “What is the last book you read or podcast you listened to? What did you learn from it?”

Another target persona trait that we qualify for  is someone who is fiercely entrepreneurial and has a proven track record of “doing”. To probe for this trait we ask, “What is your greatest accomplishment? Why?”

Strong candidates will reveal themselves in this one-way video screening. Additionally, flakey candidates who were never that serious about your job in the first place likely will never even complete the interview, or they will do a poor job and it will be extremely obvious that they are not very invested in the process. This is a win-win. Your funnel gets smaller, and you start to narrow down the pool.

Step 6: Behavioral Interview

Out of the 20 or so candidates that we passed into the one-way video screening interview, we will advance anywhere from 4-10 forward in the interview process.

So far, very minimal effort has been required to go from 100-150 candidates down to single digits. 

For the remaining 4-10 candidates, we setup a “get to know you” type interview with the co-founder of the company. We use this interview to get to know the candidate better, ask more pointed questions on their background, and also to give the candidate the background on the startup, it’s mission, the culture of the company, and what we are trying to achieve. 

As always, we are asking pointed questions designed to see if this candidate aligns to our target persona. We are actively looking for reasons to disqualify them. We are aggressive about finding an amazing candidate that matches our target persona.

If the feeling isn’t, “hell yes this person is amazing”, then you likely should not move them forward to the next interview. You are looking for A players. A players are what’s going to scale your business, push the pace in ways that you wouldn’t have been able to do alone, and free up more of your time.

Step 7: Take Home Technical Assessment

After the behavioral interviews, we pass all of the candidates who we felt strongly about to the next round: a take home technical assessment.

For hiring developers, there is no possible way to truly get an understanding of a candidates talent or lack thereof without seeing them do a technical project. Resumes and interviews can be deceiving. There is no substitute for seeing how your developer works other than giving them an extremely realistic problem that they may face on the job.

We do this with a technical take-home assessment.

The assessment is hosted on GitHub, and it mirrors our architecture and pulls dummy data from our codebase—again the goal being to give candidates an extremely realistic problem similar to ones they would be working on should they join our team. 

We give candidates roughly three to five days to complete the assessment on their own time and let them know that it should take no more than 2-3 hours. 

The results of our technical assessment are always EXTREMELY revealing. It’s easy to determine how strong a candidate’s framework fundamentals are, and you get a great idea of how they approach technical problems. Nothing can replace seeing actual work from a candidate during the hiring process.

For any candidates that we are extremely impressed with, we move them forward to the final interview. 

If we aren’t enthusiastic about the results of any of our candidates, we start the process over and keep pulling from the top of the funnel. You have to be relentless here. Only A players. 

Step 8: Technical Interview

The final step in our hiring process is a technical interview with the company’s technical co-founders. In this interview, the candidate is asked to walk through his thinking on certain aspects of his take-home assessment. We ask why the candidate made the decisions he did and we have him or her to walk us through the thought process behind the work.

Here the goal is to get a better understanding of how the candidate was thinking about problems and how he or she applied their solution to them. 

We also ask questions about framework fundamentals that our target persona should possess. 

Both technical co-founders have the final say as to whether we are going to make the hire or not. If their answer is not a “hell yes we need to hire this person”, it’s going to be a no.

Conclusion

Ultimately, implementing this structured hiring and vetting process has allowed us to bring on and retain more talent. This has allowed us to scale up our product development team and accelerate the speed at which we roll out new products—all of which increases the top line. 

I think having a rigid, systematic hiring system is essential for all companies to properly vet and identify talent. I think this is even more true for small companies with limited resources. 

If you are into business and startups, I highly recommend joining my email list below. Every week I send an email out to those on the list breaking down the marketing and growth tactics that I am using to build my businesses. I’ll see you in the inbox!