Recently, I had a discussion with a collegue about weather to hire or develop talent in a startup. There are interesting points on both sides but I think some factors are more important than others.
For the sake of this article, I’ll assume you have a good business idea and enough funding to get you started. You have a prototype that proves customers are willing to pay for your product. You can now decide if you want to spend that money on freelancers or employees.
I differiciate between having a very small (1-3), a decently sized (5-8) and a large team (9+ developers). You most likely need to invest your time into marketing, funding and recruiting. Therefore you are not really part of the development team. While it is very benefitial to have good engineering skills, not every enterpreneur has exeperience in software development.
In a small team, it is important to have experienced developers. They have developed other applications and know which tools, languages and frameworks to use. They might even have hosted and maintained similar systems before. If this knowlege doesn’t exist in your business, you at risk to use the wrong tools for the job or misuse good ones. Learning the skills required takes a long time, which you might not have due to budget restrictions. Finding a senior developer at the beginning might not be feasible. Here, freelancers are a good alternative.
Medium sized teams should consist of a good mix of senior and mid-level developers. They can also support one or two juniors. Again, senior developers are important. If you cannot hire them, get freelancers instead. One goal is for your employees to learn more about your applications, so they can take over once the freelancers leave the team. You want to continue building your application. Over time, replace freelancers with employees, as they are a better long term investment.
Big teams still need experienced engineers, but the majority of the engineers should be mid-level. The majority of the tasks will be of medium comlexity and size. At least, it was the case in the projects I have worked in. Add too many senior developers and there might not be enough challenging tasks for all of them. Furthermore, they might take a lot of time to find consensus on trivial decisions.
It is tough to find good engineers, even when you pay high salaries. Therefore, many companies have technical recruiters and active sourcers. At some point you need to make a compromise on the seniority. In these scenarios I like to hire people with a good mindset and high potential. They might not have the skills or experience yet, but they can quickly learn the neccessary hard skills. A junior can become a mid-level quickly in the right enviornment.
As you grow, you add more teams and can grow them in a similar fashion.