Eric's Guide to Hiring {Software Developers}

Eric Lawler

August 30, 2019

Filed under “

Hiring is the public speaking of the business world. This topic generates more anxiety, nausea, outrage, lawsuits, cargo culting, and wives tales than almost any other subject. Pop some Pepto Bismol and treat hiring like the discipline it is: Something to be learned, practiced, and eventually mastered. This is the first in a two-part seriesI’m knocking on 5,000 words, which is about 4.5x longer than the average New York Times article. Oops. on hiring. This essay covers the first parts of the hiring process, consisting of the critical steps to take before interviewing candidates: steps most companies ignore.

Who’s Eric? Rookie to journeyman

At Lawn Love, one of our core values was “Do more with less,” which is embodied in finding creative ways to succeed with limited resources. When building out the engineering team there, my imperative as CTO was to find complementary people to achieve Lawn Love’s product goals (which in turn roll up to business goals). But I couldn’t afford the high premiums of a recruiter, nor the eye-popping wages the FAANGEye-popping or competition-stifling? Your choice. FAANG is Facebook, Apple, Amazon, Netflix, and Google. The high-paying “elite” of the tech world in 2019. Microsoft never gets a mention, because FAAMG didn’t sound as cool.

[2022 edit: The world was in for a real doozy when Facebook later changed its name to Meta and this ridiculous acronym completely fell apart.]
corporations offer. So what’s a poor CTO to do? Learn as much as he can while continually experimenting to find what works best for his team and company, natรผrlich. I’ve digested reams of advice from business books, CTOs, engineering leaders, CEOs, the occasional investor, and many recruiters. Most of the advice was terrible. The diamonds languishing in the rough, however, were enough to form a comprehensive hiring strategy. Hiring, itself that most-strategic of acts: Entrusting someone with your business, to serve it for months or years to come.

This prolix essay screed will serve as Eric’s unofficial guide to hiring. Before we begin, let’s get the credentialing and disclosures out of the way.

Disclosure 1: I have some experience on the employer side of the table, conducting close to 100 phone screenings to fill a handful of software engineering and product positions, but I would never claim to have expert-level experience executing the strategies I describe here. I’m proud of the team I created, but hiring the right person is finding a uniquely-shaped puzzle piece to complete an ever-evolving puzzle. Often, we’ll find that we didn’t really understand what piece our puzzle needed next, or that we didn’t quite flesh out the skills, motivations, and temperament of the applicant in the hiring process.

Disclosure 2: Being a CTO, my area of hiring touched programming, product management, engineering management, and data analytics. I’ve never hired a customer service rep, an accountant, or someone who knows the difference between TIG and MIG welding. The core strategy is the same for hiring any role, but my experiences are strictly in white-collar work.My experience getting hired for blue-collar work consisted of knowing the boss (x2) and fogging a mirror and passing a drug test (x1)

Disclosure 3: You really need to read Recruit Rockstars by Jeff Hyman and Who: The A Method for Hiring by Geoff Smart and Randy Street. These two books were able to explain why the best advice I got worked. Though Smart and Street argue otherwise, there’s no universal, perfect method for hiring, but the philosophy shared by the two books is invaluable. Both books go into more detail, with plenty of backing evidence, for the strategies I lay out here. Of all the business books I read that touch on hiring, these were by far my favorite resources.

Hiring in the wild

Since leaving Lawn Love, I’ve gotten a healthy dose of experience being on the receiving end of hiring processes. I’ve now interviewed across the spectrum: Big Cos, tiny startups, solo founders, and well-funded, booming startups. I’ve experienced interviewers conducting what appeared to be their first-ever interview, phone screened with several different departments, stood in front of whiteboards for hours, and programmed more toy projects than I can count. Processes have ranged from “We don’t believe in steps” to 10, count them, ten rounds. I’ve had to satisfy panels of people and many variations of “If it’s not an ‘[expletive] yeah!’ it’s a no” and “any one person can veto a candidate at any point in the process.”

Many of the processes leave much to be desired. Some companies ask the same questions in multiple rounds of interviewsIs this a police interrogation, looking for inconsistencies in my story? More likely, it’s because no one takes any notes during the interview…. Others didn’t have a standardized list of questions they were working from and let their gut feelings guide us through meandering hour-long chats. And, of course, this doesn’t even broach the subject of the horrendous job listings–job listings companies dump thousands of dollars a week in fees to display–presented to job seekers…

So here we are. After spending months learning and practicing the discipline of hiring, and more time not only experiencing painful hiring processes, but ruminating on what makes them so off-putting, I present to you Eric’s Guide to Hiring {Software Developers}.

Eric’s Guide to Hiring {Software Developers}, Part I

i) Take hiring seriously!

The most surprising experience I had during my job hunt was learning how many companies are hiring because… Well, er, they don’t quite know why they’re hiring, really. You see, the manager got this new job req, right? So a listing was reposted from that one we had a few years back, and… Yeah, I mean, we’ve been looking for a 10x rockninjaru for the past 14 months, but we’re just pretty disappointed with the talent drought going on right now.

These companies aren’t really interested in hiring. I don’t blame them: It’s often dreary, soul-crushing work. The applicants they get kinda suck. The pay they can offer is pretty low. They aren’t transparent about their processes. They don’t explain how their company operates or how they make money. They have no idea how to hire and are content to sit around, waiting for the perfect 10/10, ticks-every-box candidate to drop on their laps and accept their mediocre salary.

The common trait in the best hiring advice I’ve received? Have a game plan. If you don’t know, intimately, how this new hire will solve your current pain; if you don’t understand that you’re on a fact-finding mission when talking to candidates, not meeting a new best friend, you’re wasting your time–and the candidate’s. Please don’t stroll into the interview room clutching the candidate’s resume and nothing else: No computer? No notebook? No plan? Good luck, bro.

In short, take hiring seriously. The expected outcome is that you have a new employee, and your new employee is now dependent upon the success of both himself and your company for his wages. The most painful time to fire someone is right after you hire them… and then realize you’ve made a terrible mistake.

ii) Before all else: Know what you’re hiring for!

The first mistake companies make is rushing out to hire someone as soon as their boss gives them a green light to bring on fresh meat a new tribesman/team player/employee/workplace proximity associate. Before you start talking to anyone, make sure you know the following:

  • What does success in this role look like? Worded differently, if this is a good hire, how will you even know it? Precisely define what success is. “Writes code” is not success. “Grows revenue” is atrocious. Better examples are “Hires five engineers in six months,” or “Plans and executes a $1M marketing campaign with a 6% ROI.”
  • What attributes will contribute to success? If you’re hiring an engineering manager, are they going on a hiring blitzkrieg to bolster a proven team, or acting as a hands-on architect to guide the development of a next-generation software project written in Clojure? Depending on what you need done, you’re looking for different skills, interests, and motivations in the person best suited to the role.

The Who book has a lot of excellent material on how to craft what they call a “scorecard” for a role. The scorecard is your means of objectifying (not subjectifiying) what you expect out of your new hire. It’s a resource to guide conversations and is designed to be freely shared with candidates. Good candidates are unafraid of your stretch goals–scorecards are not secret.

Recruit Rockstars ties the concept of the Who book’s “skill-will profile” to the “DNA” of your company. Not a list of values posted in the lobby, it’s a deeper description of how everyone in the business works together, and what they’re working towards. Mr. Hyman posits that it’s the DNA of individuals combining that creates a company’s culture. But you aren’t hiring for cultural fit, you’re hiring for the DNA traits themselves–which manifest in different ways.

In his somewhat lofty words:

DNA is, in a sense, the soul of a company, and it shapes the resulting culture in intuitive and unspoken ways. Rather than a divinely handed-down set of well-articulated tableaus, it is, instead, an a priori set of guiding principles, an inherently understood morality that requires no discussion or explanation. It manifests itself in how things are done, what's expected, what's allowed, what's unacceptable, and how employees are punished and rewarded. It's how we communicate. It's how we act.

Recruit Rockstars, pp 52-53, Jeff Hyman

Importantly, if you don’t know what attributes your existing successful employees have, how will you ever identify them in the candidates you interview? By pulling in senior team members and brainstorming what makes your existing “rockstars” rock so hard, you’ll have a short list of common traits to find in applicants. Examples include “driven,” “fearless,” “great problem-solvers,” “selflessness,” “humility,” or “tirelessness.” Then include specific actions that demonstrate what it means to be driven. “Driven,” for example, could be a shorter way of articulating “Unafraid to go toe-to-toe with our biggest competitor and release a better version of the upcoming feature they just announced–before they do.”

iii) How will this new hire fit in?

What are the existing strengths and weaknesses on the team and how will this new hire complement them? Think through what sort of strengths you need in your new hire. You aren’t on a fool’s errand, looking for someone without weaknesses. You’re looking for someone whose weaknesses are irrelevant to your needs–probably because they’re countered by a different team member’s strengths. Though their “DNA” or crucial traits should match your company’s, their exact areas of expertise are going to vary–which is exactly what you need to create an environment that has all the necessary skills to get the work done!

Going one step further, thinking from the perspective of The E-Myth, what will this new hire allow existing team members to achieve? If someone else is doing the role today, what will the new hire allow that person to work on instead? Again, this should be pegged to an understanding of your business’s specific needs. The E-Myth describes a philosophy where the person doing the work hires their own replacement, allowing them to work on more strategic tasks. This means of working on increasingly strategic tasks, as well as defining key areas of responsibility before someone begins working in the role, are the approaches IBM and Hewlett-Packard took to scaling their businesses in the 1920s and 1940s, respectively.

iv) Important Point One: This is a sales and marketing challenge

You have a product: your company. You are selling that product to buyers: job seekers as well as people who don’t even know they should be seeking your job. So treat your efforts to find the Right Hire as a sales and marketing endeavor, not a human resources initiative. You already know you need a broad “funnel” of applicants to boost your chances of finding the correct rockninjaru, but maybe you haven’t given much thought to exactly how that’s done.

Before throwing up a listing, consider how you will tailor your process to your target audience. From soup to nutsLife goal: eat a 6+ course meal at least once, you should be tailoring everything your candidates are going to see, touch, and smell to attract the right people. From your job description to how they’re greeted on-site, don’t leave any experience to chance. Poor experiences equals funnel drop-off. For example, when you’re hiring a junior candidate, do you really need to put them through exhaustive behavioral interviews, digging deep into their limited work history? If you’re hiring a computer programmer, do they need to go through personality tests originally created for your sales team? Customizing your process to each role you’re hiring tells candidates you respect their time, and, in turn, saves you time and helps you attract the Right Hire.

v) Job listings: Demand pizzazz

The first thing most of your candidates see is your job listing. All companies understand this and yet choose to post tepid gibberish that doesn’t answer any of a candidate’s questions. On top of the gibberish, most of them don’t even bother formatting their listings correctly. This sends a strong signal that the company doesn’t understand the job market and doesn’t care about job seekers. For the love of good candidates, write a killer job description, it’s an easy way to stand out.

A good listing preemptively answers quality candidates’ questions: Who are you? What is your company trying to achieve? Most listings jump straight into “THIS IS WHAT YOU’RE GOING TO DO FOR US, WAGE SLAVE,” with nary a “Hi! We’re FooBar FinTech Co. and we’ve disrupted the blockchain weed dispensary ERP market!” Good candidates understand their value and are wholly uninterested in working for a crappy company. If you have a sneaking suspicion your company is kind of crappy, you need to dust off your marketing hat and write up a compelling argument for how you are, in fact, an excellent place to work and full of wonderful humans. Because you are.

v.i) Set clear expectations in the listing

Another common failure? Not setting clear expectations in a job listing. What will someone in the role you’re hiring for actually do? Because you defined this role before you created your listing, it should be a straightforward task to translate your scorecard into a few key areas of responsibility this new hire will have. Bonus points are awarded to listings that encode secrets about your company into its expectations. For instance, this was the entire “Your Role” subsection from the first draft of my “find a pair of PHP programmers” recruitment drive in early 2018:

  • You’ll be writing PHP (and lots of it!), with plenty of backing SQL and Javascript.
  • Turn ideas into finished products, for both internal and external use. Front-end? Back-end? You’re all-in.
  • Own those new products! As an early hire, you’re helping define our engineering culture and will work directly with your peers to tune the engineering machine.
  • Future-proof your new code with unit and acceptance tests.

For an experienced PHP developer, there are a few eyebrow-raisers buried in there: Why am I writing SQL–they must not use an ORM. Ideas into finished products–hmmm, no formal specs and acceptance criteria in this company. “Define our culture” and “tune the engineering machine,” eh? So ya’ll’re a) tiny and b) still figuring out what SDLC processes work for you. Regardless of whether Lawn Love’s particular needs are right or wrong, there’s a certain subset of the developer landscape who is happy to eg. work without an Object Relationship Manager and on a small team. Tailoring our listing and my cold outreach scripts to attract only that subset was key to finding the devastatingly handsome talented engineers I ended up hiring.

Suspiciously absent from Lawn Love’s listings were 2+ page long bulleted lists containing every possible technology the developer would touch and every possible activity they could be asked to do in the arc of a long career. Why? Because most of it’s a given, and the rest can be expressed to the applicant after you have ‘em on the line like a fish on a hook. Your job in this stage is to get a conversation started, where you have the chance to convincingly sell candidates on your company’s unique opportunity.

v.ii) On lengthy job requirements

Keep the listing’s requirements to a minimum. About four times a year, new studies come out with an ever-lower percentage of how many job seekers won’t apply to a job unless they meet precisely 100% of your listing’s overly-strict requirements. Even worse, all of the studies have a clearly highlighted gender difference between men and women: fewer women than men apply for a job with requirements they don’t meet. Take a critical eye to your listing and snip-snip all the requirements you have that aren’t absolute deal-breakers. Do you really need a master’s degree for this role to be successful? And for all you companies listing both PhDs and associates degree requirements in the same listing: [inappropriately strong reproach redacted]. No one with a PhD is ever going to apply to your listing, so please remove it.

Lastly, have a few variants of your listing. A long one available by request (your scorecard is more useful for this purpose) for people who are extra curious about this position’s impossibly long list of responsibilities. An unformatted one for posting to text-only media. A form for sites with an apply button and form for those without. And, please, use the formatting options on the various job board websites. They give you italics, lists, and headings for a reason. Use them!

vi) Advanced recruiting: Find your own talent

Do you know how many businesses are out there, competing with you for talent? In the United States alone there are close to 6,000,000 (six million) registered businesses (firms) with at least one employee (there are another ~22M businesses who consist of strictly an owner and no employees). The point being, waiting for someone to find your snowflake of a business in the midst of those millions of other flakes isn’t ideal. Instead, you should aggressively headhunt candidates without sitting around, waiting for them to come to you.

If you’re given the marching orders to “aggressively headhunt candidates,” what’s the first thing you do? I hope it’s not what I commonly see:

Post a link to my company's newest job listing on LinkedIn, with a cutesy comment, "Come work with me ๐Ÿ˜‚๐Ÿ”ฅ๐Ÿ˜‚!! The kombucha's soooooo good lol!!" Done. Did my job boss!!

Ugh, seriously? Is that really the best you can do? The proper way to leverage your personal network is to be an adult, suck it up, and directly message great people you’ve worked with in the past. Naturally, no one’s ever looking for a job and everyone’s very content where they’re currently working… until you buy them a cup of coffee, shoot the breeze and lay out all the cool stuff you have in the pipe, but–oh, if you only had one more frobnicator down in engineering… Worst case? They truly aren’t interested in interviewing with you, so you ask if they know any equally great frobnicators they could introduce you to. And, you know what? People really will send you an introduction to someone else they know. You just have to ask.

vi.i) Cold outreaches have massive potential

Besides messaging people you’ve got some kind of working relationship with (vendors, contractors, former coworkers, even old bosses!), all of the modern recruiting websites offer a means to proactively message potential candidates. You want my hiring secret? This is it. My secret was writing sumptuous, glorious, and wonderfully charming messages to engineers who looked like a good fit for Lawn Love. I tweaked my script on each response I got, always seeking to tighten up my language and leave room for more customization for each person I was messaging. The end result? One-third of my hires came from cold outreach on websites like LinkedIn, Stack Overflow, and Angel List.

Our rep at Stack Overflow couldn’t believe the response rate to my cold outreaches, claiming that he’d never seen better. At the time, I thought this was just eye-rolling salesmanship, but with another year’s experience under my belt… I believe him. The few companies that do cold outreach send an equally cold script: “DEAR SIR OR MADAM, WE ARE THE BEST COMPANY EVER AND ARE HIRING. PLEASE CONSIDER APPLYING. THANK YOU.” All the questions you have to answer in your listing? Yeah, very important here, but even more important is the tone you use. Best case, you’re messaging someone who’s looking for a job, but has never seen your listing. Worst case, you’re interrupting someone’s day, so turn the respect dial to its highest setting. Do not mass blast people. Research them, decide if they’d be a good fit, then send a deeply customized message to them. Is this time-consuming? Heck, yeah! But what are you working on that’s more important right now? And how long is it going to take the right person to see your ad and respond to it, if you don’t make the first move?

vi.ii) Go to your target audience

Those ads, by the way, should be posted in the places your ideal candidates hang out. Hint: It’s probably not on ZipRecruiter. Some of the smartest folk I know are hanging out in small, cloistered internet communities. Break into their Discords, Slacks, IRC channels, and forums. Observe your potential candidates at their relevant meetups and conferences. And don’t be afraid to express your hiring needs–again, doing so in a respectful, sensitive manner. A company that’s cool enough to know about Larajobs or get into a slide deck at a conference I’m at is definitely a company I’m willing to do more research on.

Along with that, one of the finest wisdom nuggets Mr. Hyman drops in Rockstars is that the best candidates are already employed, so your call-to-actions on the careers page of your website should never be “Apply here.” Instead, think of something more clever such as “Let’s talk” that creates an invitation to start a confidential conversation. Having well-written scripts to post in these unconventional places lets you start conversations even after a particular role is filled and your careers page won’t contradict a months-old blog post or Slack message.


Use different listing titles! This sage advice comes from the incomparable Wes van Rensburg, who noticed that different people are looking for different job titles. That sounds a lot lamer in writing than it does in practice, but stay with me. For example, one of the engineers I hired specifically sent in an application because my listing didn’t have “senior” in the title. On the other hand, some engineers filter listings to include strict terms such as “principal,” “staff,” or “senior” in the listing title.

The various job posting search engines (LinkedIn, Indeed, ZipRecruiter, etc.) all use fuzzy matching to provide a slew of results for any posting it thinks is vaguely similar to your term. Wes’s observation, however, was that the staff he’s hiring have different mental models of what their next position is. So even if they see your listing, they’ll skim over the title without clicking it if they believe it falls into a different paradigm. In response, he created a handful of almost identical listings, with very different titles, describing the same basic position: A full-stack, mid-level Node.js engineer At least, that’s how I would describe it…

Eschewing the arbitrary job seniority prefixes, I experimented with several different variations on “Growing, well-funded YC startup seeks experienced full-stack engineers” to try and preemptively answer candidates’ questions, and position our listing appropriately in their mental models. You’ve never heard of Lawn Love, so the listing title gives me a chance to explain that, sure, we’re yet another startup you’ve never heard of, but we’re growing fast and have lots of money, so you should most definitely click this listing and give us a chance.

Obviously, it’s easy to get too cutesy with listing titles. You have to ground it to your company and the work you want done. But if your work environment is full of people tripping over their outsized egos, feel free to put up listings like “CODE NINJA WANTED. ONLY ROCKSTARS ALLOWED,” with other signals to attract only pompous, early-20s, unattached white males. Again, it’s all about attracting the right sorts of people to your role, which aren’t going to be the same best candidates for my role. Not wrong, just different.

vii) On talent benches

This next strategy is the hardest one to implement, in my experience. The best hiring resources recommend developing a “talent bench.” That is, don’t wait to find people when you’re acutely experiencing the pain of not having that role filled. You should already have some kind of stack of people to immediately reach out to. Many companies accomplish this through always having job listings up, slowly collecting resumes. If a role wasn’t going to open up for 6 months, I never figured out a means of keeping those applicants on ice. A solid candidate looking for a job in March is most definitely not still looking in September, you know? The Who book recommends selling this as some kind of cool, Disney-styled Fast Pass, where people can go through a step or two of your funnel and get advance notice of new listings, a shorter trip through the process, etc. This works best for the mammoth FAANG companies, whose hiring managers will never read this adviceActually, Hr. von Nyssen might. Greetings from PQ! ๐Ÿ‘‹, and leave that sort of thing to their internal recruiters, regardless. At the least, if you’ve been cultivating your personal network, you probably have a sense of which of your own connections you can immediately send a note to when you get that sweet, sweet req.

viii) Show off your company

The last point to file under “Up your sales and marketing game” is understanding that good candidates want to know a lot about you:

  • What’s your culture like? Whom will I work with; are they nice? How many hours a week do you expect out of me? How do you treat parents / what is your flex-time culture? What’s your PTO policy?
  • What will I actually be doing? Do I have to be promoted (up or out)? Can I be promoted? Do you have parallel individual contributor and management tracks?
  • What is your company working on? What’s its mission? How does it make money? How long has it been in business (code for: can you pay me a salary for 2.5 years)?
  • Why should I work for you, and not any of the 6,000,000 other businesses out there?

The Talent Board publishes an annual survey on recruiting trends. They found that candidates in the first phase of their job search are looking for an understanding of the company’s culture, insight into what it’s like to work at the company, and a personal connection to the company’s brand and mission. Does your listing fill any of those needs? Each question should be answered, briefly, on your listing and in detail on your website.

viii.i) A picture’s worth a thousand listings?

Having ample pictures and videos of your actual employees answers a lot of these questions. Recruit Rockstars recommends the lower the video and audio quality, the better. I’m not sure I agree with Mr. Hyman on that point, but I’ve seen stats on how many people watch the videos on career pages and they’re quite high. In my personal experience, I’ll always watch the cheesy videos, to get a feel for what a company’s really like. For example, one of the engineers at a company that uses Ruby on Rails was wearing a shirt in a team picture with _why’s foxes on it–a humongous signal that those guys take their programming seriously! So hop to it: find someone in your office with a Canon 80D + 18-135mm IS USM lens, rent a shotgun mic, and get to filming and snapping.

Another YC startup did a profile on Lawn Love, which was universally well-received by applicants. It featured pictures of the (old) office space, actual Lawn Love employees, and had a lengthy interview with the founder and CEO on what Lawn Love is and what the work culture is like. I didn’t, however, ask anyone how they received the creepy giant cardboard printout of my head that was on the wall. There could be some brand damage, there. ๐Ÿค”Paying someone to craft that for your company pales in comparison to how much you’re dropping on LinkedIn, and it’s good for years of use!

viii.ii) Connect applicants with their peers

Your truly top-shelf, killer ninja-rockstar-gurus have one other requirement: They want to talk to their actual boss and coworkers before starting. A simple request, I know, but still a challenging one for many firms. I’m not sure if it’s still the case, but for a time Google’s process consisted of interviewing with random panels of humans, and if you’re found to be Google Material, they just slot you into an equally random role. There’s a 0% chance you met anyone you’ll actually be working with. In contrast, Amazon is quick to point out that they’ll always have your future coworkers involved in the interview process. I don’t think it’s very difficult to structure your hiring process in such a way that a new hire gets to meet his or her boss and actual coworkers before starting, but it’s worth repeating, nonetheless.

Conclusion, and adieu

That covers most of the warm-up work that goes into hiring. I’m sure I’ve forgotten something, so expect this post to be updated (and inevitably embiggened) at some point in the next few weeks. The next half of this unending webpage essay will contain the tactical bits around doing the actual “interviewing” for a position: Resume screens, phone interviews, in-person interviews, work samples, reference checks, closing the deal (until they are in your office, working, you risk losing them to someone else!), and having an onboarding process.

If you read this far, you must like hiring as much as me! The exciting part of the internet is finding other people who geek out about the same things. Don’t be afraid to make yourself known–especially if I’ve said something completely, egregiously stupid. If you’ve tried any of these strategies, but found them utterly lacking, let me know. I’m always interested in learning more and getting better at everything I do.

I’m still matching my personal skill-will profile against companies scorecards, looking for my next role. If you want this level of thought applied to your business, shoot me an email.