The Official friso.lol Guide to Hiring
TL;DR
Step 0
Create an internal role description for your vacancy using this template: Google Doc, PDF
A role description captures the place in the organisation where this role works, the responsibilities of this role, and the fundamental skills required for this role. Fundamental skills are not the same thing as experience with particular tech or specific tool or framework knowledge.
Step 1
Write a job description using this template: Google Doc, PDF
To make the most out of your funnel, a job description should be written for inclusion of potentially capable candidates, not exclusion of candidates who are not fully buzzword compliant.
Step 2
Document your hiring procedure using this template: Google Doc, PDF
A hiring procedure is an instrument for match making, not just an instrument for candidate evaluation. When you successfully run through all steps of the funnel, you should not have any doubts and the candidate should be immediately prepared to sign.
Step 3
Track your candidates in the funnel using this handy spreadsheet example / template: Google Sheets
Tools are for automation, data is for insight. Let me repeat that: tools are for automation, data is for insight. You need automation when you reach volume. You need insight from day one. This spreadsheet will do the job until you need the automation of a tool that speeds up the process of sending out confirmation emails, scheduling interviews, etc. When that time comes, select a tool that is great at automation and provides a way to export all data so your are not limited in terms of insight.
Congratulations!
You are now easily more professional at the hiring process than 90% of businesses. Read on for the full story…
Prelude
Let us pretend you are a manager at a steel construction company and you are looking to hire a welder. You ask your team of welders for input on the job description. The team drops their work for three ours to have a meeting about the requirements. Long time team member Joey is very particular about stainless steel welding in outside conditions including the not necessarily widespread technique of utilising a IR thermometer to check the surface temperature. Francis on the other hand is zealous in his appreciation for maintaining a welding travel speed that perfectly balances aesthetic and base metal penetration. The list goes on. When your team has concluded the meeting, you have a list of twenty individual tools and techniques to be listed in your vacancy; a good candidate should have multiple years of experience with each, obviously… Next, HR informs you that the base salary for a new hire will depend on years of work experience (welding or otherwise) and which certifications a candidate has acquired. You object that those things do not necessarily make someone a better welder, but alas. You publish the vacancy and use an agency to recruit prospective candidates from several sources. Eventually, you interview a small handful of candidates who tick all the boxes, and finally you end up making an offer to Janice, which she accepts. Janice has worked with all of the listed tools and techniques during recent projects, and she recently acquired the right certifications to appease the HR checklist. An ideal candidate.
A few months into the job, however, it turns out that Janice had only worked on art installations for the past five years and had never done construction welding. You learn this when a steel walkway construction that your company delivered collapses under the dynamic load of fifty people passing over it. Oops.
If the above scenario could really happen, good welders would be paid three times what they earn right now. That is not the case. For your understanding, here is an actual job ad for a welder:
It basically states that the company is looking for a welder with at least five years of experience. This works because on a welder's first day at work it will be immediately apparent to their boss and coworkers whether he or she is in fact an experienced welder. If not, that first day will also be the last day at the company. To become an experienced welder, apply for apprenticeships or junior positions.
For comparison, consider the qualifications section of this job ad seeking a Data Engineer at the digital arm of
This rarely works because nobody working as a professional data engineer touches all of these technologies in a single year, let alone on their first day at a new job. On top of that, in many corporate contexts it can take weeks or even months from the first day at work until performing an actual act of work as specified by the job description, which further complicates matters. Any process that attempts to verify all of the qualifications listed above can only favour candidates with outstanding interviewing skills and a knack for memorising reference manuals. While admirable, these are not the skills that guarantee success when building production grade data pipelines for multi terabyte streaming ingestion. This is true in very much the same way that textbook and classroom knowledge about stainless steel versus aluminium welding does not guarantee the structural integrity of a walk way.
You could object that construction welding and software engineering are vastly different fields that can not be directly compared, and you are right to do so. A construction welder reads a blue print and makes the appropriate welds whereas a software engineer interprets a problem space based on a number of meetings and other context before making several levels of mental and whiteboard "blue prints" before finally applying the appropriate glue (code) to tie it all together. Between the welder's tools and the final result, the only abstractions are chemistry and physics. Between the coder's tools and the final result are literally tens if not hundreds of abstractions before you reach chemistry and physics. As a seasoned software engineer you are expected to have real understanding of at least the first five to ten layers that sit directly beneath the layer that you work in.
Fiercely Fight Buzzword Compliance Searches
Sure, but how many years of React experience?
Everybody with a fairly steady hand, the ability to stand for sustained periods of time, and capable of occasionally lifting an object heavier than 25kg who is willing to practice, can become an experienced welder.
Similarly, everybody who can effectively query databases, understands professional level software development, and capable of interpreting the business needs of the users of their solutions can become an experienced data engineer. Unfortunately, due to abstractions, effective database querying tends to require some level of computer science knowledge, and moving large volumes of data around tends to require some level of distributed systems thinking. Knowing Teradata's UI well enough to enter a query is not the same thing as understanding MPP analytical databases.
As a result of abstractions, some skills are concrete specialisations of more fundamental skills. When it comes to qualifications, you want to optimise for those fundamental skills that translate into using the right tools in the right way when on the job, not optimise for prior exposure to any particular tool. For data engineering these fundamental skills would perhaps include applied computer science, distributed systems, SQL querying, and deployment and monitoring of production data intensive systems. At this point you do not care much if someone previously attacked that problem using Splunk or Prometheus.
This applies for most tech roles. For once don't fool yourself into thinking that someone who spent the better part of a decade doing advanced statistical modelling of high energy physics using Matlab and C++ can not make the transition to statistical modelling for business oriented data science using Python and Jupyter Notebooks (they can). Or that someone who previously built a high volume web property on a Microsoft stack can not make the transition to the JVM as their primary runtime (they can). Or even that someone who has maintained clusters of thousands of servers located on premises using CFEngine can not make the transition to managing virtualised instances on your cloud platform of choice (they can and they will instantly spot what parts of your impressive Terraform setup will not stand the test of scaling two orders of magnitude).
There is absolutely nothing about being an early adopter of whatever trendy tech that inherently makes you a better engineer. Think of it this way: if two people built the backend for your product using completely different technology stacks, and both solutions are equally fit for purpose, then what skill do those two people have in common that made them successful? That is a fundamental skill you are hiring for. Now think of a one or two sentence qualitative description describing each of those fundamental skills. That is the profile you seek.
This broadens the search to candidates with relevant fundamental capabilities. It also demands more insight from the person performing the search: keyword searches become more problematic.
I don't know if this helps the corporate recruiter at
Avoid the Talent Fallacy
To win the Olympic Games you need a team of one very talented athlete and a host of very skilled and ideally experienced support crew. Being talented means being able to naturally or intuitively do the right thing in a situation that has not occurred before. Often depending on split second decisions. If your business consistently finds itself in unknown territory that can only be escaped through successful split second decisions, hiring is likely not your immediate concern. I am not saying that there are no uniquely talented computer programmers out there. They are just not the people who will build your next B2B SaaS. Get over it.
You spend more time with your direct colleagues than with your direct family. Your chances of business success depend greatly on you and your colleagues getting along, so first and foremost you want to hire people you care to be around every weekday of your life.
Most challenges in software are not exactly rocket science and the intersection of computer programming and rocket science is reserved for a very small number of teams. The overwhelming majority of software is a reconfiguration of existing components in some unique way that ideally brings value to its users. You are looking for people who can productively reconfigure existing components with sympathy for which configurations perform better than others through a deeper understanding of the underlying abstractions (see above).
When you are hiring, you are looking for a person who is fun and interesting to work with, has traits that are complementary to the team, a matching set of fundamental skills, and optionally possess a rare talent. In that order.
Step 0: Understand the Role and Profile
Before anything else, make sure you truly understand what you are looking for. Golang backend engineer is not the answer. Unless you really are in the business of selling lines of golang code and need to ramp up production right now. I hope you are not.
Answer the following questions for yourself:
- Where in your organisation will the new hire work?
- What impact will the new hire have?
- What are the fundamental skills required for the job?
- What challenges do we offer?
Share this document with everybody in your team or business.
Fill out this handy template: Google Doc, PDF
Step 1: Write a Job Description
Your job description shall have the following sections:
- About Us: A paragraph about your business or division in language that your mother understands.
- About the Role: An explanation in simple and tangible terms what the impact of successfully fulfilling this role will be, which other roles it interacts with, and where it sits in the organisation.
- About You: The traits and personality of your ideal candidate. The fundamental skills that are required for this role.
- Good to Know: Other information that a candidate is likely interested in, including the technology that you currently use and processes that you care about.
- Benefits: Compensation, perks, etc.
- Contact Us: How to apply.
Handy template: Google Doc, PDF
Step 2: Create a Hiring Procedure
Contrary to popular belief, a hiring procedure is not an instrument solely intended for the prospective employer to qualify candidates. It is in fact an instrument for match making; after successfully completing all steps both the candidate and the employer are ideally prepared to sign a contract the same day. Be very conscious about what information you need from a candidate and what information a candidate needs from you throughout this procedure.
For each step in the procedure, answer the following:
- After successfully completing this step what is the status of the candidate (e.g. qualified lead)?
- After successfully completing this step what is your commitment to the candidate (e.g. schedule follow up interview)?
- After successfully completing this step what is the candidate's expected commitment to you (e.g. send CV)?
- After successfully completing this step what do you know about the candidate?
- After successfully completing this step what does the candidate know about you?
Handy template and example: Google Doc, PDF
Step 3: Manage Your Funnel
Do you know how long it takes you to bring a candidate in for an interview after qualifying a CV? Do you know how much it costs you to process one hundred candidates through your funnel? Do you work with recruitment agencies? Do you understand if the candidates that they source for you are actually out of your network?
You can work with any popular candidate tracking tool and not have an appropriate answer to the above questions.
The most common intuition leads us to work with recruiters or agencies who provide a good volume of profiles that look interesting on the surface. It is rare that companies track the performance and cost of sources throughout the entire funnel. The fear of missing out prevails.
A hiring funnel is a funnel nonetheless, so in the long run you care about the cost of meaningful conversions. When considering cost you need to look beyond just the direct cost of the conversion, which is typically the fee you pay a recruiter when you hire a candidate. The other major component is your opportunity cost incurred by having people on your team sit in interviews as opposed to doing actual work. Recruiters are not no cure, no pay. There is real sunk opportunity cost given the time spent reviewing CVs, interviewing candidates, etc. Be sure to factor this in.
You do not need a specialised tool for insight. The example spreadsheet below has all the information you need to start working towards a more effective funnel. Tools come in when your volume necessitates automation; tools help you not forget about sending that confirmation email, or quickly review all pending CVs, or conveniently publish a new vacancy. They rarely help you improve your funnel. In all businesses where I have been involved with hiring, I have used the API of whatever recruitment tool was in place to extract meaningful data and run custom analyses. Chase metrics, not processes.
Here are some metrics that you should care about:
- Conversion from step to step throughout the funnel, broken down by source, and by cause (i.e. candidate dropped off due to disqualification or due to abandoning the process).
- The opportunity cost of maintaining your hiring funnel and process, broken down by source.
- The lead times for each step in the funnel (because keeping momentum improves conversion).
- The ability of sources to generate leads that were not already in your network.
Handy example / template: Google Sheets
Closing Notes
In a scarce market opportunism is tempting. And you should probably give in to this to some extent. Check out yet another event, push your name at the local meetups, make sure to be present on the startup job boards, make sure to ask all employees to share that LinkedIn post. Do all of that. The instruments provided above are there to help you maintain sanity while pursuing this opportunism.
In the end, you do need to generate leads, because buying leads is not sustainable. Most of the good people already have jobs and no desire to move to another one. The best candidates are the ones who are leaving their previous job from intrinsic motivation. There are not many signals that tell you when people are ready to move. The purpose of your outreach is to make sure that when people are ready to move, they know that your business is an option.
When you bring in a lead, it is your job to give them the most professional experience. Each and every candidate that you engage with, qualified or otherwise, will onwards become an ambassador for your employer brand. Do not leave any loose ends.
Good luck.