Table of Contents
Originally written for the Seedcamp resources website.
How to find and hire good engineers seems to be a common problem amongst startups of all sizes. Whether you’re looking for your first non-founder hire, an executive level CTO or are building out a large team, sourcing and hiring engineers is difficult.
In this post I’ll start at the beginning with how to go about sourcing candidates – getting applications into the top of the funnel in the first place. A followup post will go into how to run the actual hiring process itself.
Groundwork – what is it like to work here? #
Your first task is to put in place the foundations needed to get people to apply. You don’t need to do any (or all) of these things but they are worth the one-time investment which will pay off with a larger candidate pool in the future.
The key question you have to answer is: why would I want to work for you?
You need to provide evidence to help potential applications answer this question and then the followup: why would I want to work for you instead of Company X.
You essentially need to show off!
So how do you do that? This can be through your website and/or the job ad itself, but you should be thinking about the following:
- Where will the candidate be working if they are successful? If this is an office-based job then explaining the details about the office environment with photos and videos will help them picture where they will be. This should include basic information like the office address, nearest public transport, facilities such as showers, bike storage, desk layout and places to go to eat/drink in the area. Do you have a philosophy behind your office choice e.g. open plan offices to help people communicate, or quiet areas for engineers to get into the zone.
- How will they work? What tools and processes do you have in place? How does the engineering process work and what technologies are being used? If the team is remote, how do things actually work – chat, video calls, regular meetups, etc? These are all good topics for blog posts as well.
- What are your company policies? Publish your handbook if you can but if not, highlight key policies like holiday, sickness, maternity/paternity leave, complaints procedure, code of conduct, pay and performance reviews and how the policies might be adjusted in response to feedback.
- What are the company benefits? This is an important part of the overall compensation package but you may offer certain things to everyone e.g. insurance, car, mobile phone, equipment, travel allowance, conference allowance, profit sharing, share options, etc.
A good way to find out what to include is to ask your current team and/or think about what questions you had when you joined your first company.
Most businesses are quite bad at showing off their policies, even when they are positive and a great selling point. You can stand out by being transparent and having the candidate already partially sold on working for you before they even speak to you.
This is a good opportunity to consider whether your policies are appropriate for different types of people. Fresh graduates renting with friends have very different requirements from an industry veteran living with a family.
Showing you have thought about key things like a code of conduct and maternity/paternity leave also has an important effect on encouraging more diverse applications. With the diversity challenges in the IT industry, it is beneficial to show candidates that you have thought about this in depth and already applied policies within the company. Having to adopt policies dynamically if problems arise is not a good way to build a trusting, friendly work environment.
The job ad #
The ad itself is probably the first time a potential candidate has encountered your organisation, so it has to sell both the job itself and the company. Many of the things above can be included in the ad so it works as a standalone article e.g. if it is read on a job board outside your own website, or sent via email.
Things you might want to consider including in the ad:
- A detailed list of the tasks and responsibilities that are part of the role. This should answer the question “what will I be doing?”.
- Who they will be working with and for, and what the day to day might look like. Knowing which team or group you’re going into allows you to understand the context of the role in the wider organisation, and perhaps even look up some of the people who are already working there. Understanding who your manager is going to be also gives you a view on the company hierarchy and seniority of the role. Reporting to a project manager is quite different from reporting to the CEO, for example.
- Describe the selection process so the applicant knows what is going to happen and when. If you can give timelines then that is particularly helpful (and unusual). The experience of most people of applying to jobs is like a black hole – they never hear back and even when they do, it’s on what seems like an arbitrary timeline. There is basically no reason to keep candidates on hold and you should aim to progress people within days or a week. As the process gets to the end it may lengthen because it can be easier logistically to combine interview days, for example, but the early stages of an application process should be very efficient. Consider how you would want to know the current status of the process if you were the applicant. Make the whole process exceptional and the candidate will think of your positively in the long run even if they’re not hired. You may want to work with them in the future, or they may buy your product.
- Avoid listing detailed requirements and long lists of “must have” attributes. I prefer to have more applications that I filter rather than have potentially good people self-filter because they don’t happen to hit one thing in your list. This is a particular problem with trying to improve your application diversity.
- I also like to leave off any degree requirements. Many of my best engineers have had no formal qualifications and are were self taught. Of course, this may vary depending on the types of problems you’re trying to solve – deep technical requirements or specialist topics may require certain qualifications. There is also a certain advantage to having gone through the experience of university (regardless of the subject), but it does select out many excellent engineers. Again, I prefer to filter on other criteria yourself e.g. their experience.
- Where possible use real numbers to show off about the interesting things your company is doing. This can include customers (numbers & names), money raised, revenue and the scale of the technical challenges (e.g. requests per second or dataset sizes). Some of these are vanity metrics but they help to add to the context. Engineers like to know they’re working on meaningful projects.
Where to source candidates #
Unless you have a big reputation, you’re unlikely to get many direct applications with the ad solely on your own website. Even the biggest companies use various methods to bring candidates in. There isn’t just a single location that will work so you need to put time and effort into all of these.
Job boards #
Job boards are a relatively quick and passive place to get your job ad out. They’re about volume so aren’t necessarily going to get you targeted candidates, but will help to increase the reach of your ad.
There are specialist job boards for different types of roles and people. For example, PowerToFly is a recruitment platform for women whereas RemoteOK is specifically for remote jobs. I recommend building a list of the main job boards relevant to your role and then posting on all of them.
Candidate search platforms #
Direct candidate search is time consuming but is a good way for you to filter through profiles on specific search terms and then directly get in touch with people who fit the criteria.
LinkedIn and StackOverflow Careers are two popular examples, with StackOverflow being very specifically for engineering roles.
LinkedIn also has a job board product which is worth using because the ads show on your business profile and it has a huge audience, but you will be able to be more targeted if you spend the time to search profiles. The problem with LinkedIn is it is very general and I’ve found engineers are less likely to maintain active accounts and/or pay attention to messages which are often spam.
Community involvement #
Much more long term but often with good quality results, getting involved with the relevant engineering community groups will help you build a profile and meet people with similar interests. This can be specific technology meetups e.g. London Python or focused on techie-types in a certain geographic area e.g. Oxford Geeks.
Speaking at meetups and conferences is a good way to build your reputation. Aim to educate and/or tell an interesting story rather than going with the goal of selling/hiring, but remembering to mention what it is you’re looking for at the end of your talk! It is usually easier to get a speaker slot at a meetup because the organisers are usually looking for people to give talks. These can then lead into conference slots in the future.
In London, the SiliconMilkRoundabout event which is a larger scale jobs fair. They have minimum requirements for applicants so there is a quality bar to the people you meet as a company.
Education links #
Although limited to graduates or academics, building links with universities and other educational establishments can help you with a regular pipeline of (inexperienced) talent. This is essential for building a company in the long term but does have training overheads because they are all going to be relatively inexperienced. Timings are also linked to academic terms so this isn’t as useful for immediate hiring needs.
Building an internship and educational recruitment program is quite involved but there is a good book on this topic: Recruit or Die.
I have left recruiters to last because I think they’re the least effective method of finding people.
I have written about this in more detail elsewhere but the problem is that in all cases, the incentives are misaligned. You need a recruiter who 1) is looking for good candidates that fit your criteria; 2) who will find you someone who is good to work with; and 3) someone who will will stay with you for a long time
The only way to find a recruiter who can hit all three of these is by hiring someone full time in-house. Using a success fee or retainer through a recruitment agency means the financial incentives simply don’t match. Either the incentive optimises for finding someone quickly or to create a long process which maximises the retainer income.
Hiring a full-time recruiter who you know gets your company values and will actually work in the same office and probably sit next to the person they hire is the best way to align incentives..
However, in-house recruiters have all the overhead as a full time employee so aren’t necessarily appropriate for small numbers of hires. They only really make sense for growing big teams.
A possible compromise is an exclusive, contract recruiter who is working for you for a defined length of time e.g. 6-9 months. That person can get into the company culture and take the time to find the right candidates, but then leave once they have built the team.
The advantage of using recruiters is they supposedly have good networks of people, although that is really only true for the top end executive search firms, if you’re looking for contract roles or for less skilled general administrative positions (not engineering).
The best engineers can pick and choose a small number of places they want to work at, so they don’t use recruiters. This means for hiring engineers, it’s really tricky to find a recruiter that will actually deliver.
The best way forward is either having someone full time on your team to focus on this and/or focusing on the other sourcing options above to seek out the candidates yourself. Indeed, building your early team is probably the most important thing you can be working on. Without a good team, you can’t build and deliver a quality product to your customers.