tl;dr often hiring a technical profile as a non technical person means feeling lost and probably a bit stupid. This article lists a few advices I usually give to friends, usually entrepreneurs, in such situations.
This article is focused on my personal experience composed of many junior / intern hires and a few senior ones. When I say technical I have in mind some kind of software developer or software engineer, but perhaps you could derive interesting insights for hiring rare and specialized profiles in other industries.
I assume in this article that you do not have any external guidance and that the profile you are desperately looking for will be on its own in your organization. Basically you are dangerous path, and I do not think an article good do anything more than trying to help you identify signs.
If you are non technical and you pick your personal experience as a reference you will get a very wrong picture of what it is to hire a technical profile. Supply and demand in software engineering has nothing to do with what it is in communication.
In many industries, for most entry level job openings, a working strategy is to post something on any job board and to wait. Then a huge flow of resumes will get in. Sourcing is done. You need to evaluate those applications, make an offer. People usually do not get many offer at the same time, and if you are reasonable you will probably hire with a random offer.
But supply and demands are inverted on rare profiles (that is usually why we call them rare), so sourcing is tough, and making the good offer is also tough.
What you don't want is to not know what you want
There are countless good articles on what technical debt is, but basically, you do not want to get things 50% done in a 100% poor way.
If what you are looking for is a Lead Developper able to handle all the technical aspects of something complex and brand new, then you do not want to settle for an intern or some software agency. It would not be compromise a trade off it would be an error.
You can over simplify the problem in three families:
- Very simple adaptation: you just want to change the style / integrate a new plugin in Wordpress. Intern / junior developers should do it.
- Clone: "I want the exact copy of X". Cloning is actually a way to give your project the best features description you can imagine, it eases product management and thus gives a very good common ground. For this you can usually settle for some experience programmer, not necessarily top league, good enough should do the job.
- New product: "I want AirBnB for luxury cars", even a good high level concept pitch is not a complete product description, many things will be fuzzy for what you expect and what should be technically put in place. There you may be looking for the true gem able to handle some new technical product.
What they are looking for
Software engineering gave me the luxury lifestyle of not knowing what looking desperately for a job is (living in continental Europe this is a very unusual thing to experience). Luxury does not mean that all your needs are met it means that you develop new ones. Consider the following:
- Money is not everything, and engineers are not sales or marketing people whose culture is to run after the next couple dollars.
- Recognition matters, and recognition has also a kind of financial counterpart, what you do not give as cash, you can give as stocks.
- Purpose is a goal by itself, because at the end of the day, once we are fed, once we are part of a group, we also would like to have the feeling of a sense and achievement through work.
- Being cool is not a hype, it is about trying to stay on the edge, trying to work in good conditions.
For the last two ones, just note that Google's hiring motto is: "Do cool things that matter", even though they pay extremely high wages and lead their industry, they try to promote the impact they make on the world and how they are caring about how they do it.
Writing an offer
This step is usually the moment for you to be sure that everything is clear in your mind and that you have something to sell.
You must be clear about:
- What you are doing.
- Your ambition, you need to sell your company, the team and the position.
- The profile. Please do not make a two feet long wish list of the last cool techs you read about on TechCrunch, we have read thousands like that it is exactly what is seems to be: bullshit to compensate a lack of confidence.
- The compensation. If you have won the painful bargaining about giving away stocks the world needs to know! You probably have a good compensation range in mind, state it. It is difficult, and you probably would like to offer more but it displays that you are ready to swallow it and have the hard discussions when they are needed. It also exposes that your offer does not challenge along with the applicants, you know what you want.
- The environment, especially because you may be sourcing outside of your current area: are there any cool stuff that you do internally? Are there any nice meetups around? A startup lifestyle will always be better in the Valley than in the middle of nowhere.
Sourcing is the most painful part, expect it to fail a lot and to be painful. If you are looking for a senior profile, you will probably have to make them leave a previous position. Headhunters agencies are worth the investment for that.
Post your offer to every relevant places you can think off, job boards are not useless but they need to be specific. Monster for example is a very bad choice, StackOverflow Careers is something you may have never heard off but they dispatch your offer on a platform that developers looks daily. Some locale platforms are sometimes very helpful, in France for example RemixJobs has grown a relevant audience to young technical profiles.
Leverage your network, very early some companies are paying for referals if a recruitment follows.
Be present at events, sometimes they let members make an announcement or the beer drinking can be a good opportunity if you have the diplomacy to not perform a sale pitch to every person in the room.
Reviewing a profile
It is tough to read through a resume that you don't understand, though a few signs about potentially good technical resumes:
- They will be in PDF
- Even if the design is not great they should present a minimal amount of consistency, e.g. repetition of style for similar elements.
- Proficiency in a language should be surrounded by related technologies, e.g. for PHP where you could expect keywords like: "Zend", "Symfony", "Composer", "Doctrine" or "PhpUnit". A bit of googling should help to connect the dots.
- Look at external things (Google them if they are not on the resume): active GitHub profile, active StackOverflow profile and personal websites are nice displays of some actual interest and commitment for technology. Try to understand those and what they mean.
During the interview
The pitfalls are:
- To try to look like what you are not, it mostly works with the people that you do not want to convince or only work for a short time.
- Settle with unclear answers, try to know what the candidate has really done during his career.
- Assume that they will be better than you, especially with very junior profiles. If you have ever worked around a technical project you should know some things, ask the candidates to explain them, or ask obvious question. My favorite one is: "Is PHP a client side or server side language?", a right answer does not mean anything but a wrong answer is clearly a way to cut the interview, and yes I have had many wrong answers to that one.
More generally try to look for signs of commitment and achieved goals: any open source project, what tasks / projects has the candidate handled in his career, ask to be shown and explained things. Even a poorly designed working app is a great proof of being able to ship something.
- Be fast, when hiring you are probably not the only one talking to that person; when firing also because the bad person is not poorly contributing but usually damaging whatever you are trying to build.
- Ask a technical friend, they can do pieces of the interview that you can't do, especially with a person experienced in interviewing that will help you a lot.
- If someone seems to be alright, don't wait to have many profiles to chose from, this won't happen.
- The great candidate does not always look like one, you do not share the same culture.
- You do not know how to test them, but some online services can do this for you e.g. Codility.
- Try to be clear before starting the recruiting process starts about what you are ready to trade for.