7 Steps to Find the Right Software Developer for Your Startup

Software is getting sexy

Software is eating the world and software developers are in higher demand than ever before. Following, companies and startups don’t chose their rockstar developers anymore but rather get chosen by them.

Although, in recent years, the number of software graduates is increasing significantly, it’s tough even for companies such as Microsoft to hire the right guy for the job.

So why are demand and supply so far off? This is mainly due to the, outdated yet still very present, stereotypes of developers, their social status and their scope of duties. As with every new technology, pioneers are often ahead of their time, widely misunderstood and not seldom laughed at. This surely, held back numerous smart kids to get a degree in computer science or learn how to code in the first place. Just recently, also because of the hype of startups, software development is not seen as a means to an end any longer and thus a degree in software engineering seems much more socially accepted and desirable. This change however, will still take some time and is by far not fast enough to satisfy the insatiable appetite for young talent.

In a tech driven environment, and lets face it, most startups consider themselves at least heavily technology influenced – Web, iOS, Android, Full-stack, Back-end, Front-end developers and all other kind of fishes in the deep sea of engineers, rule and shape the daily business of such companies. Its not surprising that the speed a startup can operate on mainly depends on their development team. Their skill set, way of collaborating and motivation, defines how fast a badly needed hot-fix is released or the next much-anticipated feature is shipped.

In one word, the creators of the modern web (and life) are vital for every project. Even if you are lucky (and smart) enough to start your startup with a technical co-founder, the time will arise when you face yourself to expand your tech team and hire new developers.

If it seems hard to attract talented programmers in the USA, the UK or Germany – go try your luck in Spain. Salaries are half of what is paid in Northern Europe and even less compared to the USA. Investments in startups in Southern Europe increase although not fast enough to catch up anytime soon. Finding the right candidate is a hard and cumbersome undertaking as miss-hires are expensive and often disastrous for young companies.

Take your time

One of the biggest mistakes founders undertake while hiring developers is to rush the process and thus, settling for non-ideal candidates or worse. Not only will mediocre or bad developers slow down your production cycle and blow up your costs, but it is much more likely that they will only attract other B-level developers in the future. Great developers want to work in a great team – bad developers want to look good compared to the others.

Hence, the search for your ideal candidate begins way before you start interviewing candidates. Take your time, define and outline exactly what and who you need. Only after that, start picking the right candidates with laser-like precision with an ideal candidate already in mind. Don’t just use a shotgun approach and see what falls down from the heaven on your desk.

Avoid the one man show

Even though some football teams are build around a single star, in general its seems to be a better idea to invest in a balanced squad with multiple great players. Each of them have above average skills, their real value however, shows once you put them together in one team.

This counts just as well for your development team. The more great developers you put in one room that can actually play well together, the higher the chance they produce something great once they leave it.

If you go for the all-mighty rockstar developer, you have a fair chance on getting someone who wants to run the show by himself. Hence, suppressing innovative approaches that a young and hungry team of developers might come up with. In general you should aim to balance out your team in terms of experience, thrive and skills. Just as in football, you rather invest in multiple developer with complementary skills than in the one man show.

Go for the young and hungry

It is not always easy to find the right tradeoff between experience, the ability to adapt to new situations and salary. On the one hand, you want to have the most experienced developer you can get for your money, as it is not uncommon that a seasoned developer will work 2-3 times more efficient than a junior one. With that in mind, this productivity advantage often comes along with a downside, which is often ignored. Senior developer have their tool belt, software patterns and language preferences already manifested in their mind. If your technical requirements and software stack is in line with their way of working, you are lucky, however, if stats differ or change in the future you may be in for a surprise. I have met developers that are so dedicated to a certain way of working, that project managers eventually gave in to their inflexibility to use other technologies.

Younger engineers, on the other hand, are less likely to have unchangeable patterns and are more open to learn new skills and use other frameworks. In my experience, the ideal candidate has already worked on live products for a time but then again not long enough to be tied to this technology. I had great success with developers who are generally open and eager to learn new technologies by themself.

I am not saying, being an expert in a certain area is a bad thing, but if your product specification requires an API written in NodeJS and a candidate proposes to rather develop it in Ruby on Rails “because I am much more familiar with that technology and could deliver faster” your alarm bells should be ringing. Its just too tempting to give in to such, on first glance, sound advice.

Don’t forget the cultural fit

So far I was pointing out the importance of the technical skill level of an engineer, which without doubt should be your number one concern. However, almost as important is the cultural fit of your candidate.

People often join a startup because of the ambiance and culture that is lived and celebrated – also outside of the work place. Your early hires experience the rollercoaster of daily startup life at first hand. Hence, all ups are celebrated together, every down should bring your team closer and form a unit to thrive for constant improvement. This very link, one might say relationship, with your company is what many young talents are often seeking.

With a new work-balance interpretation of generation Y in place, it is crucial to actively listen and understand the needs of your future employees and adapt accordingly. You would be surprised how often these seemingly under appreciated concessions open up developers for lower salary expectations.

A candidate that can identify himself with the organization’s culture is more likely to grow within the team and take over an important and independent role. It is of utter importance to explain your company culture during the interview process to avoid a false outlook.

I found it particularly helpful to invite candidates that passed the first or second step of the interview process to our office to get to know the team and see how we work together. Let them talk to your employees and see if they click. Those short encounters are often enough to see how they get along with your team and at the same time, show the candidate a real picture of your company.

Let them play

Speaking of company culture: following Googles 20 percent time, you should keep in mind most software developers are creative persons interested in projects that exceed the scope of their office job. After all, this is one of the reasons you need them – in the end they have to come up with innovative solutions to realize your ideas.

You have to understand that software engineers are not seldom part of a community, working on open-source projects or personal undertakings. It is often with the help of those people or during the work on such side-projects that they stumble upon solutions that help them with their daily job.

The more time you invest in educating and training your employees the more valuable they become for you. In this case you don’t even have to send them to some fancy conference or schoolings that costs you thousands of Euros. All you have to do is support their vast thirst for knowledge. Granting them a certain room for personal development results in higher productivity, gratitude and motivation.

Let other developers hire your developers

It is incredible hard for non-technical persons to evaluate the skill level of a software developer and determine whether a certain candidate is suited better for the job than another one.

Consultancies earn a fair share on taking over this task. In my opinion this is the worst possible solution to this problem. First of all, their highest priority is to find you a software engineer – not the best one for you. Secondly, they are third party, not so familiar with your company, your product, your team or your culture.

The solution is simpler than you might think. So far you are completely ignoring the fact that you are already having access to people you trust and know what they are capable of doing. Let the technical validation of a candidate be done by one of your developers. This solves the problem of how to validate the professional level of a candidate as well as gives your software engineers the chance to ask specific questions relevant for your system. It is impossible to get more insights and be more hands-on than that.

On top of that, it shows that you have faith in your developers and consider them a viable part of your team, as they are influencing a crucial decision.

Let them show off

Last, but most certainly not least, there is no better way to get an idea of the way a candidate conducts his work by actually letting him work. In contrast to management positions, where you have to rely mostly on reputation and recommendations, you can test their coding style and skill.

A way that works out great for me, is to have a 2-stage challenge in place. First, the candidate has to hand in code snippets of which he is particularly proud. This gives you a first idea of how they structure their code, the level of their understanding and if they are using best practices.

I like to use this technique to filter out too junior developers or those that do not work according to my anticipated level. However, you can’t be 100% sure that the provided snippets are actually written by your candidate. This is where my second step comes in handy: send them a time-restricted challenge that is somehow related to what they are suppose to work on.

Based on the job description and scope of duties that I have in mind for my future team member, I create a coding challenge. The results show me whether the candidate writes fluent and idiomatic code, documents well and is able to structure a project properly, all that tight to a strict deadline. The challenge also gives me the opportunity to evaluate how the candidate sets priorities, as the workload is not necessarily designed to be finished within 24 hours.

With those 7 steps in place you can avoid most of the common pitfalls while hiring software developers for your startup. This structured approach helped me to attract highly skilled professionals of whom I was sure would be a great fit, for both, my technical requirements and my existing team.