John Knox, Austin’s finest, wearer of Google Glass and generous supporter of BoS student grants, recently sent us this short essay on recruiting which made us laugh so much we had to share
Lets talk about recruiting senior developers.
34,295. That’s how many students applied to Harvard this year. Applying isn’t easy. Studying. Boring standardized tests. Writing essays. Working on homework. Begging for recommendation letters.
Of those 34,295 students, 2,023 students were accepted. Each of those expect to pay more than $62,250 a year.
When these students graduate, they’ll have a similar process to get a job. Begging for recommendation letters. Writing application letters. Padding resumes. Waiting in job fair lines. And attending interviews. You can’t stay in university forever, so the graduates put up with one last application process.
But what about recruiting folks who already have jobs? They aren’t getting kicked out of a dorm room. They’re not offering to pay you a quarter of a million dollars to work there. And there is a lot of demand for a limited supply of experienced developers and engineers.
Here is the typical recruiting process I’ve seen.
A recruiter sends you a LinkedIn message. It claims that you look like a good fit for an opening. You have to call during work hours, so you hide in the broom closet for 30 minutes. The recruiter tells you how exciting the opportunity is because they have free candy, health insurance, and a 401k.
If that goes well, the hiring manager wants to talk, again during work hours.
The hiring manager wants to know why you’re leaving your job. So you explain that you’re calling him from a broom closet because you’re quite happy with your job. You politely remind him or her that they’re the ones who seem to want you to quit your job.
So the hiring manager explains to you that they have health insurance and a 401k. And free candy. And they have the best team they ever worked with. Everyone has the best team, by the way. It’s one of the universe’s mysteries – like the Higgs Boson.
And then the hiring manager decides that you should take the coding challenge. And so you have to write some code that sorts things in big O of log N time, or whatever, even though you haven’t ever needed or wanted to write a sort algorithm to make a living. But you do it anyhow, even though you can’t quite remember your motivation. In the job you already have, you’re allowed to use the library sort methods.
If that goes well, you get set up on a phone call with a software developer. And you’re asked to write a binary search tree in your favorite language. So you’re sitting in a broom closet typing code into Google Docs, talking on the phone. The interviewing developer isn’t happy either, because he or she isn’t really interested in your twenty-minute binary search tree implementation full of typos.
And the developer asks why you’re leaving your current job. You explain that you haven’t decided to leave your job yet, and that just a few days ago the hiring manager was trying to bribe you to join the team by offering a 401k. And health insurance. And candy.
In the last five minutes, the interviewer allows you to ask questions, so you politely ask about the quality of the team, and if it’s fun to work there. The developer interviewer assures you that the entire team is nothing but geniuses. They all compulsively scribble sort algorithms on the restroom walls. They’re also a lot of fun.
If you pass that level, the company wants you to visit in person during work hours. And you meet five to ten people who might range in attitude from friendly to borderline hostile. Sometimes you’ll get to write more sort algorithms on the whiteboard, sometimes, you’ll just have a Q&A, sometimes you’ll just have to sit and listen to someone talk about how smart everyone on the team is.
Finally, a week or two later, you’ll hear back from the recruiter. If you did well, they’ll make you an offer that may or may not be less valuable than your current salary.
This typical recruiting process started with an appeal to join the company, followed by a long slow rejection process. If you examine many job listings, you’ll find this philosophy explicitly outlined: 31 lines of candidate qualifications, and two lines explaining the appeal of the company.
Except for the beginning and end, it’s a process that mimics the university recruiting process. Companies use it because it’s familiar, not because it’s effective.
Fortunately, you can do better. Here are some ideas for making your recruiting process a more attractive experience.
First, be careful who does your recruiting. Make sure that you would enjoy interacting with your recruiter. If you don’t respect the recruiter, why would the candidates?
If you hire a third party recruiter, make sure that they’re going to represent you well. For instance, I’ve seen many outside recruiters who conceal the company name when first contacting recruits. I’m much less inclined to respond to a recruiter who keeps the company name secret. I assume that either the hiring company has a poor reputation, or that the recruiter intends to shop the candidate to multiple companies. Eventually the recruiter will monetize the candidate.
Make sure your recruiter does research on candidates before contacting them. I get LinkedIn messages from folks offering me junior positions or positions that don’t match my recent experience. Those are simple mistakes. Some mistakes are more subtle, like assuming that the words Java, Ruby, or Objective-C will magically attract a candidate. You let employees program in Ruby? Nice, but hardly newsworthy.
Unless you’re intentionally operating a recruiting factory, why not spend a little time researching each candidate. Why not point out how their interests or experience makes them a good fit? Why not compliment the projects they’ve worked on? When a recruiter demonstrates that they might actually know what I’m a good fit for, I’m more inclined to respond. If a recruiter can match my interests to a position, I’m intrigued.
Ensure your recruiting team is organized. Even Harvard manages to send out rejection letters to every candidate. If your recruiters or hiring managers don’t return messages or don’t keep commitments, your company looks like they don’t care about their employees.
Be efficient. Lower your barriers to entry. Use a candidate’s work time sparingly. Do what you can to measure a candidate before using their time. Look at their github projects. Read their blog. Remember that the recruits are interviewing you too. How would you judge a company with a recruiting process that feels micromanaged, indifferent, inflexible, or inefficient?
If you’re trying to sell the team, your company should act like that’s a priority. If you have a “meet the team” page, and only 19 of the 325 employees are on it, I’ll make some assumptions about the quality of the team and what you think about the remaining 306. Unless your team is fighting crime, invisibility doesn’t equate with awesomeness.
Try to turn your interview process into an experience. It doesn’t have to be exciting or expensive. I’ve had great interviews over a beer or lunch. I’ve heard that some companies have their developers play a game of ping pong with recruits. These simple rapport-building ideas are shockingly rare.
Use care though. If your candidate doesn’t drink alcohol, or like ping pong, the technique may backfire. The candidate may not feel like you’re a good fit.
Maybe that self-selection can work in your favor. Shouldn’t your interview genuinely reflect the culture and experience of your workplace? Yes, but there is a fine line between cultural fit and discrimination. Software has enough issues with monoculture, so show some flexibility. You’re not hiring folks to drink beer, play ping pong, and wear hoodies.
You want to hire developers who can cooperate together to solve difficult problems. They don’t need to be clones; they just need to have personality traits that will help your company achieve it’s goals. Your hiring process will impact the kind of person you hire. If your interview feels combative, it will select for people who like to argue. If your interview has a collaborative feel, you will bias towards people who do well collaborating. If your interviewer dominates the conversation, you’ll hire meek candidates.
Your culture starts with who you hire. Align your hiring process with the culture you want, and make that part of the positive experience you create for the people you recruit. Most talented people want to work where they feel like their best qualities will be valued. Use that to your advantage.
Make interviews conversational rather than procedural. Getting bombarded with questions feels boring. When your developers talk about technology over lunch, are they taking turns asking each other algorithm questions? Or are they having lively debates over the future of wearables, or how to improve UX with visual feedback? A conversation rather than a quiz will make your candidates more relaxed. It will make the interviewers seem more like potential colleagues rather than gatekeepers. So have a back-and-forth about the dangers of KVO, or trade techniques to get better results with auto-layout.
The point isn’t to skip the technical skills part of the interview. You still should have developers write code in your interviews — preferably on a computer. But before you get there, ensure that each interviewer builds some rapport first. Your candidate is interviewing each of your employees just as much as you are interviewing them. An interviewer who jumps right into a technical challenge won’t seem credible or very collegial to a senior candidate.
If you’re bringing a candidate in from out of town, be sure you’re selling the city as well. Show them around, and make sure they have enough time to get sold on it. Your desk farm isn’t the best part of San Francisco. Your conference room isn’t listed in Austin tour guides. Give them some ideas of things to do, places to go, what it’s like to live there. Make sure they experience your city. If you’re asking candidates to move, you asking them to change their life in a big way. At least make the new life seem attractive.
Most importantly, treat each candidate as if you want to have a long relationship with them. One recruiter – from a large software company everyone has heard of – knows this. Some time ago, I interviewed for two different jobs at two different times that she helped arrange.
My first interview went so poorly that the manager decided not to hire anybody for the position. An exaggeration, but that’s how I felt afterwards. When the recruiter approached me afterwards she was apologetic and kind and told me that she would keep me in mind for future positions. She made it clear that the decision was an organizational one, not due to the interview.
The second time, I had a bad day and bombed the phone screen. My brain melted and I couldn’t even answer basic questions about the technology I use every day. And yet when she called me afterwards to break the bad news, she still said she would keep an eye out for future positions that match my interest. I actually felt good about the rejection, even though I really felt I performed poorly.
If anyone I know wants a new job and might be a fit at her company, who do you think I’m going to send them to? Yes, the same recruiter who took the trouble to establish a relationship. I have already introduced her to one brilliant friend.
The recruiters who cold-call me during work hours? The ones who won’t share the name of the employer, or who treat me like merchandise? They won’t get my help. Recruiters and companies who take the extra time to treat me like a human earn my attention.
This advice probably doesn’t sound too different from your marketing, customer service, or user experience efforts. Like those fields, you don’t solve problems by just spending money. You have to think, stand out, and demonstrate that you care by taking action. Interviewers need to be trained. Like other processes, change requires measurement and feedback, and the results need to be measured – yes, some of your competitors are gathering feedback from candidates using surveys.
Did you get 34,295 job applications this year? No? Then you shouldn’t use Harvard for your recruiting template. Shape each step of your recruiting process to do more than just eliminate candidates. Sell your company. The minimum viable recruiting process will hire the minimum viable developer.