Teaching a pig to sing

What’s wrong with the state of tech hiring today and some ideas on how we can fix it

Where are we and what’s wrong with that?

Recently I reentered the job market.  No, wait – strike that. Reentry makes it sound like a controlled process.  This time, it was more like the sweet meteor of death.  Let me explain.

For many years, I had worked on and successfully built relationships and clients in Colorado that allowed me to move pretty much unfettered between assignments.  Establishing a good reputation, getting things done, these are the traits that made it so that when one contract ended I would be unemployed only as long as I wanted to be.  Unfortunately, owning your own business comes at a cost, and part of that was taking a giant step away from the things you love (the work) and getting all snugly with things like medical insurance and payroll.

An opportunity to move to Washington state and work for a solid company came up in late 2011, so we decided to move so I could get back to my core competency.  I feel dirty for using that phrase, but it accurately describes why we made the move – I was never any good at the things I had to be good at, and the things where I excelled seemed to be taunting me with their closeness yet unattainability.

My new “forever” job lasted a little over 4 years before the company imploded, and on a rather dreary Thursday morning in March of this year I found myself having to start over with no relationships to speak of and having to sit on the opposite side of the table in an interview.

And therein lies the basis of our tale for today.  When you control the interview process, you can do the things which you believe lead to success for the role, the company and the candidate.  When you are a number in the system, you are subject to the whims of that system.  This is not to say that others out there do not see the same flaws, but for the most part everyone acknowledges the system is broken and yet we continue to run the same insane playbook expecting that this time we will get a quality hire.

In a nutshell, the situation is this: there is an incredible pool of talent out there trying to find a place to make a difference and there are a lot of companies in desperate need of that talent.  But we have placed a broken, cancerous tumor of a bureaucratic nightmare in the middle of that connection driven by uninvolved “stakeholders” who know little about the role or requirements beyond keyword searches.  Those who survive or thrive in the interview process are not always the ones you want or need, but they are the survivors and for many a company, that is sufficient, or so they want to believe.

A lot of what you are going to read will feel a little like teaching a pig to sing.  You can do it if you have enough time, sufficient motivation and no adversity to annoying the pig.  Because we have always done things “this way”, the process will feel unnatural and wrong but it is totally necessary if you want to survive in an increasingly competitive hiring landscape.

How we find candidates

The problem: Recruiters.  I wish I could do a mic drop here.

Whether the recruiter is internal or external to your organization, these are the people who are first responders to the talent you want to acquire.  It is important that they represent the company, the culture and the role.  Yet many (if not most) are ill-equipped to handle one of those let alone all three.  The following are actual examples of phrases I have received in email from recruiters:
The company: “They are in the healthcare space.  I can’t tell you any more because HIPAA rules won’t allow me to.”
The culture: “We have a foosball table, Beer-thirty every Friday and there is an office dog named Benny.”
The role: “It’s an engineer role – your [sic] probably better at explaining it to me then [sic] I would be explaining it to you.”

Before the recruiter has the opportunity to shine, though, you as a candidate has to make it through the Play-Doh Fun Factory that is the recruiting pipeline.  If you manage to make it through the star-shaped nozzle to actually garner the attention of a recruiter, you will most likely find a vacuum when it comes to vetting your actual qualifications for the role – the attention is more about learning if you are a serial killer than it is about learning your ability to do the job.  The average serial killer is better at hiding their sociopathic tendencies than you would be (I hope).

And finally, the recruiter’s role in the process is to eliminate as many people as possible, so the questions you do get are geared towards knocking you out of the process.

Why this is a problem: This is a numbers game, and from that perspective I understand why we have landed in this place.  The following breakdown comes courtesy of the Talent Function Group, a recruiting consultant firm.  And in this case, the source does not invalidate the data:

Recruiters (successful ones, at any rate) have created a “funnel” model to determine how many applicants are necessary to land a single hire.  The size of that funnel depends on the role they are hiring for.  Let’s assume an active model, where the recruiter posts a job somewhere and waits for the candidates to roll in.  The following numbers are averages based TFG’s study.

For any given job post, 1000 potential candidates will read the post and consider the role.  Of that, about 200 will start the application process (a higher number will start when using a frictionless process like LinkedIn Apply) and of that number, only 100 will actually complete and submit the application.  Once submitted, the automated tracking system almost every recruiter uses will keyword scan resumes, applications and online profiles like LinkedIn, and in the process will take that number down by 75.  With the pool of 25, a human finally sets eyes on the candidate’s resume.  Typos, more keyword searches and “gut feelings” will take that number down to 12, and phone screens with the 12 will yield 4-6 candidates who will be asked on site for an interview loop.

Now you have your chance to shine – except for all the other problems in the process (more on that soon enough).  Continuing to analyze the numbers, though, 3-5 of the candidates will actually come on site, and of those 1-2 may be asked to come back for a second or final interview round. Statistically one candidate will receive an offer, and generally only 80% of those offered a position actually accept.  

Assuming you have corrected any typos from your resume and you are part of the 10% who complete the application, you have a 1 in 4 chance of getting to speak with a recruiter and a 1 in 8 chance of getting an invitation to interview.

And this is based on an active model.  If the recruiter employs a passive model – where they keyword search profiles – that is usually performed with software which will eliminate people with employment gaps, stated skills which are equated with higher salaries, organizational affiliations and other biases.  For example, a lot of jobs may indicate that you wreak havoc and move on.  A long history of employment at one company may suggest that you are not a cultural fit.  All things that can be screened by software and eliminate you.

Even if you manage to do everything right, the odds are less than 1% that you will get an offer.

What we can do about it: Maybe we are looking in the wrong places.  If people are our greatest asset, then why don’t we rely more on referrals and known quantities?  I can see the counter-argument forming in your mind: I have a lot of work to do and I need to grow rapidly to meet those expectations.  With this model, I can offload the grunt work of getting people into the pipeline and focus on those “qualified” people.

The assumption that we can grow the business like an out of control virus is dangerous.  At the very least it leads to a decay of the team’s effectiveness and at worst it degrades and devalues your product.  More importantly, you absolutely cannot scale to the effort the virus demands, so your choices become less about finding the right fit and more about settling on the least bad one.  

Again, I’m making some assumptions here: your corporate culture is one which resonates with people, that you have talented people who want to see the company grow, and that you can temper the demands of the business so that you can move at the speed they want without sacrificing the things that made the first two assumptions into truths.

So, that said, you also cannot simply rely on referrals, especially if you are a small to medium sized company.  Instead you must cultivate community relationships.  Encourage your development teams to (on the company dime) contribute to open source projects with the company’s blessing.  Get involved by presenting at conferences and user groups.  Actively blog.

My point, and I do have one, is that taking an active and visible role in the community will make others in the community want to seek YOU out for employment.  Plus the relationships your team will build will provide a deeper pool from which you can pull.

By a jury of your peers – the Panel interview

The problem: You’ve made it through the gauntlet and have been invited on site for an interview loop.  Now you have the opportunity to shine!  Congratulations and job well done!

Only why are there 4 people in the room all with guns pointed at me?

Many companies feel that the stress of standing in front of a firing squad for an interview yields better results because it shows what the candidate is made of, how well he/she will respond to stress in the role and that context switching during the panel interview will tell you how well the potential recruit will handle multiple competing priorities.  

And that is an incredibly flawed way of thinking.

Why this is a problem: So let’s start at the beginning with this one by relating it back to the previous issue.  If only 80% of people who are offered a position accept, why do you want to stack the deck against you by implying you have a stressful environment with multiple changing priorities flying at your team?  A successful interview loop is one in which both the potentials in the scenario are feeling good about the interaction.  To do so, you must build rapport with the candidate, and placing them in harm’s way in not the path to achieve that goal.

When the shooting begins in the panel interview, the stress level for the candidate goes up.  The problem, though, is that this effect is the exact opposite of what you should desire.  The interviewee will most likely not perform at their best in an effort to get out of the way of the current round of bullets flying at him/her.  The practical upshot of this is that you are doing yourself and your company a disservice because you will almost certainly miss people who may be otherwise qualified because of performance anxiety that you created in the first place.   Maybe this kind of thing is appropriate if you are interviewing to become the next Presidential Press Secretary, but much less so if you are interviewing to become a developer.

Another message this type of interview sends is that the position is either ill-defined or that there are a lot of masters to be satisfied.  The argument that proponents of the panel interview use is that the role must interact with several other areas of the business, so those stakeholders must also be satisfied with a voice in the process.  By that logic maybe the cleaning crew should also be in on the interview because the candidate may be the type who leaves half-filled Starbucks cups in the trash.  OK, cheap shot, but the point is that this “multiple voice” scenario presumes that a candidate cannot be relied on to act professionally in the role so literally every other person the role touches has to be assured they can work with the candidate.

Finally, at the heart of it, a panel interview is a dodge that turns what should be a sole decision made by a hiring manager into a group consensus where responsibility for the decision is layered over many people.  There is an old aphorism: too many cooks spoil the broth.  What that means is that many cooks with their different tastes will approach the one dish from different angles.  The result may be the best dish ever, but the more likely scenario is that it becomes something no one wants to eat.

The same is true when you attempt to apply group-think to the hiring process.  What one interviewer perceives as a strength in a candidate another might perceive as a red flag. Obviously, this is because everyone interprets the information they receive differently.  Add to this the normal social interaction patterns – in any dynamic, one person tends to rise to become the alpha in the group, and in a panel interview setting this is the person who dominates the questioning.  That leads to a one-sided interview and a clouded perception of the interviewee by the group based on their relationship to and interpretation of the results gained from the “lead” interviewer.

What we can do about it: Two on one interviews.  If a candidate is relaxed during the process, you are likely to get honest answers and not the bullet-dodging ones.  The candidate will open up and you will get a better feel for not only the technical but also the cultural fit.  And having a second person sit in on the interview will allow you to validate your perspective and assessment of the candidate after the fact.

Marathon Man

The problem: Let’s see how long the candidate will last.

Like the panel interview, this is another way of wearing the candidate down.  We have an investment in breaking down those who want to join our team, but at the same time not providing any fundamental way to build them back up.  We want the candidate to come on site and spend 4-6 hours talking with everyone who drove past the building last Tuesday.  

Another artifact of the desire to make sure every department has a voice in the process.

Why this is a problem: The goal in any interview loop is to arrive at a sound hiring decision in the least amount of time using the fewest resources possible.  At least, it should be, but our desire to let everyone in on the process has the opposite effect.  It wears a candidate down, making for greater odds that if an offer is made the candidate will be less likely to accept.  And it wastes a metric ton of money and time without doing anything at all to improve the odds.

Not convinced?  How about the numbers…

Let’s assume that the average person at your company makes $75,000 per year.  Apologies if that number is higher or lower than your actual average.  That means an average hourly rate of $36 ($75,000 divided by 2080 hours per year).  If you put 4 people each into an hour-long interview and you do this twice, you’ve just spent $288 without accounting for the cost of the recruiters, support people and anyone else needed to get you to the actual interview.  Then you have to add in the cost of disruption to business – there are 8 people who are otherwise engaged, and a conference room out of commission for two hours that cannot be used by any other team.

And this is a mild example.  In this search, I have been invited to loops where 12-18 people were involved not including the recruiters.  At 15 people – the median – the “time is money” cost for the staff just went up to $540 without consideration of all the other costs.

Did the expenditure of time and money yield any better results?  Probably not.  What you may find, though, is that studies have shown the last people in the interview loop are less likely to be in favor of a candidate.  This because the candidate is tired and exhibits less energy.  Answers may take a little longer to arrive at, which leads interviewers to perceive the candidate as less intelligent.  The interviewee may be somewhat brain-fried by this point, so the questions he/she ask in their portion (you do allow the candidate to ask questions, right?) may be what you consider to be lesser – worse, that they are the same questions asked in earlier interview sessions (which in and of itself is a valid strategy for a candidate if he/she feels strongly about issues like culture).

In the end, the final sessions color the entire candidate interaction and a promising find may start to look like a dud – but this is primarily because of the situation you created, and that in all likelihood, you would not be able to shine in yourself.

What we can do about it: Limit interviews to no more than 2 hours and 4 people.  If it takes more than that, either you don’t have faith in your judgment, you tend to manage by committee or defer to others for critical decisions (or your culture demands this of you), you can’t define the role adequately (so much so that you need others to tell you what to look for in a role that reports to you) or that your corporate culture will make all but the lowest common denominator unsuccessful.

Companies want to urge you as an employee to use good judgment or some variation on that.  Yet the path to becoming an employee is littered with places where organizationally they show they do not want you to actually exercise that particular talent.  This is one of those places.  If a hiring manager needs so much validation on their first impression of a candidate that the company would resort to this extreme, how can it possibly rely on that manager when performing the other responsibilities of the job to get those right?  Or does the manager actually have less authority and responsibility than he/she believes?

Maybe this is the very definition of an organization which declares loudly that it empowers their team while simultaneously acting in a manner that is the complete opposite.

Whiteboarding for fun and profit

The problem: You are interviewing for a technical job.  A few minutes into round 2 of your 5 hour loop you hear the phrase “let’s go to the whiteboard” and immediately your blood freezes.  That phrase rarely ends with the directive to “draw a half pony/half monkey monster.”

Ever happen to you?  It’s OK to say so – you’re in a safe place now.

OK, so I’ve lost half the audience, and the other half are hanging out for the rest of this piece so they can find ways to use my words to create a burning effigy (of me or the process, I am not sure which).  And for those in favor of this practice, I get the “why” but totally disagree on the “how”.  Hear me out before you get the pitchforks and torches.

The way this usually plays out is that you are standing at the whiteboard in a room where the air conditioning suddenly turned off in the zone you happen to be standing in.  You are in front of 3-5 of your “peers” who are scrutinizing how you cross your “t’s” and judging you on which color marker you chose.  

The “why” centers around the innate risk and reward of the system.  The interviewee risks losing the job by writing bad code but has the potential of being rewarded with an offer if he/she gets it right.  It is the very definition of a meritocracy, where the talented and virtuous move ahead based on the strength of their achievement.

The problem is, in almost every case the achievement is worthless and the exercise stacked towards those who study the process and not the craft.

Why this is a problem: Where to begin on this one…

There is an entire cottage industry surrounding the technical interview process that has come into its own over the last 10 years. Many books have been written about how to ace the (fill in big name and desirable company here) interview process – what kinds of questions are asked and what the “winning” candidates supplied as answers.  There are organizations who will take your money in exchange for interview prep with these large companies.  And literally every other company out there wants to emulate those guys by following the same playbook.

So, what is wrong with the whiteboard coding exercise?  If the goal is to understand how the candidate thinks and how he/she approaches solving tough problems, how can asking the candidate to display this process be wrong? 

Let’s start with the obvious: if you are hiring a developer and your actual process to get code is have your team write that code on a whiteboard, you have much larger problems than the interview process.  Sure, you may host design or problem-solving sessions where the whiteboard is a tool to get to a solution, but in as close to 100% of the cases as is possible, the actual work is going to be done on a computer in an environment where the developer has proper tooling (like an Integrated Development Environment like Visual Studio or Xcode or Android Studio).  And unless you have a particularly contentious shop, you probably don’t pay developers to watch other developers write code and shake their heads in disgust at every semi-colon or typo.

The real problem lies in the problems candidates are asked to solve.  Uniformly the problem is not related to the industry, the language or the actual tasks you will be asking the candidate to perform on the job. The problems are generally algorithm-centric and designed to showcase first how smart the interviewer who posed the problem is, but second is geared towards being clever yourself at the expense of best practices, testability and manageability. 

These algorithms are generally a variation of about 200 different problems like reversing a singly linked list in place or balancing a binary search tree.  The argument is that constructs like data structures are important elements in a programmer’s toolbox.  Only problem is that if a programmer who works for you brought you a bit of code to review where he/she created his own binary search tree you would undoubtedly reject that code.  You would err on the side of code that has withstood the scrutiny of other developers, that has mature tests to ensure it does what it claims to do, and better that going forward you are not introducing defects into a system you must support 24/7.

Why are you expecting this behavior from someone you want to hire?

Back to the matter at hand, though.  Whiteboarding bears the same relevance to a professional coder as being good at Grand Theft Auto is to prepare you to be an Indy driver.  That means none at all.  This cottage industry has allowed a generation of “coders” to arise that have memorized the core algorithms in this set.  Armed with that, they proceed to the interview and hope for the best in the “algorithm question lottery”.  Acing the interview and getting the offer, they allow glaring mistakes to pass code review or rely on tools to perform the job they don’t actually understand or know how to do.  And about the time the team gets wise, the coder is off to the next interview and job.

Because the only skill they have learned is memorization and not problem solving.  And it leads to a performance bias for the experienced developer who has spent the time perfecting their craft and NOT memorizing things which will be useless the minute they get the job.

Why do we do it?  It has to be more than checking that the candidate has memorized an arcane algorithm we randomly picked.  How about this for a reason: it is a hazing and a right of passage, a tax we as the senior team member impose on someone looking to get their foot in the door.  I had to go through this bulls**t when I got hired, so you do, too.  It is the way we do things for better or worse (mostly worse) and I see no good reason to break the cycle.

Many see the whiteboard as a more quantifiable way to definitively pass on a candidate, much better than a more realistic “bad cultural fit” diagnosis.  And no one questions the statement “he just didn’t know how to invert that binary tree” even though you will never ask him to do that – never. 

What we can do about it: Depends on which side of the table you are sitting.

As the hiring manager, why not test developers on the skills necessary to do the job?  Create a problem in your market and ask the candidate to solve that specific problem BEFORE the interview.  Bring the code on a thumb drive and be prepared to review it with the manager.  This is how your code gets into production, right?  A developer gets a user story, writes code and that code is reviewed by other developers on the team?  The developer writing the code has full access to the development environment as well as Google and help documentation and…?  

Check for completion – is it organized nicely, does it compile, does it violate any best practices and are there supporting tests? Can the candidate defend choices made in the code?  Does the work pass the smell test?  Is it obviously cut and pasted from the Internet? 

Forward thinking companies like Foursquare and Pivotal Labs are coming down on the anti-whiteboard side.  They have begun to recognize that the whiteboard has filtered out otherwise great developers for reasons not at all related to their abilities.  Maybe it is time your company recognizes this, too.

But what to do if you are sitting on the other side of the table as I am now?  Well, it boils down to 2 choices: either cram with the best of the posers and learn how to make the system work.  Or you could do as I am – politely refuse to interview with companies who refuse to recognize the inevitable candidate optimization impedance caused by the whiteboard interview.  And you do that by very clearly telling the recruiter that you do not participate in trivia contest interviews – you are a serious practitioner of the development craft and you welcome any opportunity display your work.  You simply prefer to do it in the context of the work itself and not in an artificial construct that results in sub-optimal hires.

What do you do when the recruiter agrees but then at the actual interview you are asked to solve the problem of the 8 Queens?  Politely tell the interview panel that perhaps the wires were crossed between the panel and the recruiter, but having seen the kinds of results this process yields that you have adopted a policy of watching for indicators which will be a cue that a role will be a poor fit – and that whiteboarding is right at the top of that list.  Suggest that based on this information you would be unlikely to accept an offer if one was made.  Do it respectfully and without arrogance, and thank the panel for their time, and then end the interview.

Yes, I just actually suggested that you walk away from the interview.

It will be completely unexpected.  There will likely be a minute or two of stunned silence.  No one is going to rethink the process there and then, so don’t expect a call from the recruiter.  And knowing the numbers game they play you can extend that non-expectation of a call to “forever”.

More importantly it removes the ability to shoot you down because you don’t recall the most optimal way to demonstrate the difference between equality and equivalence.  It turns you from being part of the loser pack who couldn’t survive the trivia contest into a topic of discussion and hopefully an eventual agent of change.

It doesn’t get you hired today, but the shortage of competent developers says that if you stick to your guns you will eventually land in a place where your skills are both needed and appreciated.

And the winner is…?

Not you.  Or me.  Or the company you are applying to.

So why do we do it?  Because we don’t know any better and we don’t want to learn.  We can’t see past our mistakes to learn from them, so we are destined to repeat them no matter where we go. We can’t see any better way that would not require work, and we all have too much of that already.  And because it was hard for us to get our jobs, we should make it hard for candidates to get the job, too.

There are all sorts of strategies companies can employ to protect themselves from bad hires.  From probationary periods to contract roles (directly with the company rather than through an expensive agency) to simply the laws in the state they operate in.  With the length of this piece, those are probably topics for another day.  

Regardless, we are rapidly reaching a tipping point in our economy where there will be far more roles open than there are people to fill them.  Already we are seeing companies with positions going unfilled for 8 or more months – in one extreme case, unfilled for nearly 2 years.  Setting aside the obvious argument that a job open that long might not actually be necessary, you can see how the current approach to hiring combined with a risk-adverse culture would create this kind of situation.

The time for cultural and procedural change is now, before the coming tech crisis.  And the companies that will whether the storm will be the ones who are not afraid to break out of conventional thinking and find better, more efficient ways of attracting and retaining talent.

I just hope I can last long enough in the market.  Or that the pig learns to sing sooner rather than later.