How to source hard-to-fill programming positions

The competition is intense for great tech talent, and it’s even harder to find the most qualified people who are also the right fit for your company

This article shares some practical processes that you can add to your human resources function in order to accelerate the programmer pipeline, based on the years I have spent as a hiring focused software engineer at growing startups and now running my own recruiting firm.

Our recruiting strategy is surprisingly simple, and boils down to optimizing various segments of the sourcing funnel: awareness, pageviews, and application submits.

What ties these tactics together, though, is you, your company, what you’re offering, and how you approach the people you want to hire. If you want to build a strong, diverse team, you need to develop a thoughtful, empathetic and proactive approach before you can optimize.

Within the article we cover:

In the article’s appendix, I also provide our company’s 2019 checklist process — eighteen steps that we delegate to manage our sourcing process.

First, a little more about me and my company.

I have successfully used these processes to hire software engineers while performing as a sales development representative at TrialPay and while employed as a software engineer on the growth and revenue team at Lookout. Recently, having founded an independent recruiting organization, I have delegated these processes to hire full-time, on-site software engineers for companies large and small, each with completely different tech stack. Before pivoting to the full-time employee, third-party recruiter, contingency (success fee) placement business model, I leveraged these processes to contingency-match engineers in freelance programming projects around the globe, servicing over 300 business and developer clients.

Why should people want the job?

Optimization tactics are the how, not the why. We’ve found that it’s not just design polish on your marketing page or flashy claims that help companies land the right people — it’s thoughtfulness, empathy and sincere effort.

The ideal candidate is someone who stays with your firm for years. They’re making a serious commitment by joining your company, so you should find a way to get them seriously interested. Make it clear what it is your company does and what sets it apart.

Sell the position. Be truthful about what it is that makes you unique and do so in a way that is actually specific and appealing to developers – just as you ask people to put their best foot forward with the résumé, so should you with the landing page for the job.

  • Do you have an above average options pool or explosive user growth?
  • Do you have great test automation or a better infrastructure than average?
  • Are you trying to tackle some big technical challenge beyond a CRUD app with good UX?
  • Does your product or service do actual good in the world?
  • Is your team diverse? Is it taking specific steps to improve diversity internally through benefits, programs and other efforts?
  • Do people get to do greenfield work or do they get to practice their maintenance skills?

Let your candidates know. Get them to envision themselves at the company. Prepare three bullet points about the company and how the job affects the company. Think: “If you had to explain the company you work at, and the job you do, to your cousins at Thanksgiving, what would you say?” Although there are many things companies can do to make their jobs fundamentally more compelling, the point of this article is to help you work with what you already have. Use language that makes them feel like they can be included as part of something great. Explain the impact to the people in their lives — their favorite barista, their neighbors, their relatives, their significant other, their children… a change they already want to see in the world.

Describe the interview process and start managing expectations early. This should be unique to each job you post, but you can repurpose the bits that describe the company. In describing the interview process, some questions to consider include: Do candidates meet with the hiring manager? HR? Is there a tech homework assignment? What interviewing is on site, what is remote, and for the remote, is it video conferencing or phone call?

Managing candidate expectations is key to a high close rate (i.e. mutually successful process). But it’s also key to making the job attractive in the first place.

A simple, attractive page that explains the opportunity and is upfront with as much data as possible (about the business, about salaries) boosts conversion rate.

If you publicly advertise your job and put effort into your listing, you will eventually get so many applications that you end up creating more work for yourself in doing extensive screening and resume review.

It’s beyond the scope of this article to go deeper into the later stages of the interview and selection process. But in general, by having an engineer applicant write an open-book, no-right-answer, conversational, technical question for the candidate to answer, you can quickly see who is a great written communicator and preview what they would be like as a colleague. The best candidates take this as an opportunity to shine.

Tech Meetups

The most tried and true hiring channel is word-of-mouth networking, which doesn’t scale well; “networking” in the sense of going out in the evening and meeting people within your industry is certainly work, because the essence of networking is following up and delivering real value. And even if your network comprises mostly people you know (but not from networking events), proactively slinging favors is certainly time-consuming.

But let’s use the example of meetups since they are democratized and widely available to a general audience. Unfortunately, meetups are sometimes the kind of thing that you want to RSVP to when you’re feeling productive and are easy to make excuses to avoid when the time comes… especially if you emotionally pre-plan around some amount of rejection. When it comes to meetups, it has to be work, yes, but it also has to be fun. Yes, networking is about friendship.

The philosophy for attending meetups: just making friends. Why? To make friends. Don’t mention your company at all. How to make the perfect meetup pitch? Don’t. Your aim is to have fun and make friends. Go for quality, not quantity. Treat it like an informal culture fit opportunity to find people who you just want to be with and around. And don’t pitch your company! Instead, ask great questions:

  • How did you get started with computer programming?
  • What do you enjoy most about software development?
  • {Name}, how can I know if someone I’m talking to would be a good connection for you?

And meetups must be accompanied by follow through. Here are some things we’ve found to be effective:

  • Send a personalized email or LinkedIn request that says what a pleasure it was to meet them.
  • Connect them to other people within the industry and suggest ways they could do business with each other or benefit in some way from the relationship.
  • Send them content or links to events they might find interesting or valuable – not about your company but about something they’re personally interested in.
  • Standard networking procedure: continue to enduringly give value with no expectations whatsoever of return.

Sometimes the emotional need for short-term results, such as hiring a developer today, can make it challenging to attend meetups one at a time, making friends, and following up to build that relationship. A certain zen mind is required here. But everything ultimately boils down to brand and word-of-mouth, which is built one person at a time, and networking is a tried and true method of hiring.

One criticism of startup meetups is that they’re “full of desperate wannabes,” and that can occasionally be true depending on sample size and or availability to mentor juniors. The patience required to execute the meetup strategy is something that may not map well to the needs of tech executives; the unpredictable quality of the attendee talent pool is also challenging. Indeed, “a fair fight is the result of poor planning,” so it can make sense to proactively target your networking.

Beyond general startup meetups, you should also consider events oriented around technical niches or communities you are trying to reach. Particularly in startup hub cities, you can find small, casual events focused on arcane technology topics that you might be trying to hire for, and professional networking events for underrepresented groups in the tech industry.

Cold Outreach

First, make your list of profiles who you’ve prequalified as highly likely to be a good fit. GitHub and StackOverflow are places where programmers leave a public track record. Then, systematically send them personalized messages! Treat them like people, because ideally, they’re going to become your next coworker. As long as you’re polite, respectful, appreciative, and thoughtful, your individualized outreach creates a high-value option for the recipient with tons of upside. The same networking tips apply.

When deciding whom to scout, start by taking an inventory of the technical or business skills required by the job. Expand the list so that you include adjacent skills – for example, if a core skill is JavaScript, then you might list React, ES6, Node.js, TypeScript – since if someone has any one of these skills, they would definitely know JavaScript as well. At our recruiting firm, we’ve written an internal software tool that automatically generates a list of implied skills – since we recruit at scale, and not all of our recruiters have first hand technical knowledge, it helps to make this easy for them. If you aren’t technical, ask an engineer on the hiring team for help with this step!

If you have the time and patience, you can take your list of technical skills and search GitHub for open source projects using said skills. On each project you find, you can click on the “contributors” tab to see the top 50 contributors to each project. Once you go to people’s profile pages, you can see their website and social media information and sometimes their email address. Check out their web presence, and if you feel intuitively they’d be a strong fit for your company, reach out and make the connection! Some developers love to bash recruiters for spam, but the truth is most developers love thoughtful, personalized, respectful, no pressure outreach just as much as anyone else.

As with meetups, cold outreach online can be improved through thoughtful focus. For example, groups like /dev/color and Techqueria provide online Slack channels for members as well as offline events, that can be invaluable conduits for getting the word out about openings at your companies.

Here’s how we organize our searches:

It’s difficult to provide statistics here, since the success rate with cold outreach varies widely, depending on how picky one is with prequalification and how much emotional bandwidth one has for empathy on a given day. But generally, it’s a program that predictably delivers results.

But one has to supplement the “do things that don’t scale” work with things that do scale. Ultimately, networking is expensive because the real cost is time and there’s only so much one has. Fortunately, there is a cheaper dollar-per-hour solution: targeted advertising. There’s a reason that Facebook and Google are multi-billion dollar advertising companies: because advertising, at the end of the day, truly delivers value and results.

Driving Traffic

When you are advertising to candidates online, the advertising is much more likely to resonate if people have already interacted with real, authentic people from your company. The people you’ve reached at meetups is your “fuzzy” network. But you have to go beyond that. In order to succeed with advertising you have to plan. Start with borrowing a tool from your friends in marketing… the customer persona.

Define your ideal candidate. What cities might they reasonably be expected to commute in from? If you’re going to leverage social media advertising — and you should, because it’s one of the most cost-effective and time-efficient ways of targeting high-match candidates — you need to hone your geotargeting (see more on that later in this post). What are the key technologies they’ve worked with in the past? What kind of companies have they worked for? If you want someone from within your industry, use a tool like Crunchbase Pro and make a list of companies within the industry. Then leverage LinkedIn to make targeting lists of people who have worked at said companies.

Once you’ve figured out whom you want to target, it’s time to scale your ads.

Jobs are one of the lowest cost things that you can advertise on social media. Although it’s an open secret that recruiting is really just sales, dressed up in some terminology and business processes, when you are selling a job via social media, you are selling something people really want and as a result, you pay really low rates for targeting.

Through pay-per-click platforms like Quora and Reddit, one can target people who are knowledgeable about a technological domain while geo restricting to candidates who are within commuting distance of the opportunity.

Another way of driving traffic is through pay-per-post job boards. The best job boards are ‘sticky’ in that candidates will use them time and time again for each career move. Examples of these are StackOverflow Jobs, Craigslist, Hacker News threads, and GitHub jobs.

Job boards are another opportunity for you to recruit for diversity, too. Organizations like the Society of Women Engineers and the National Society of Black Engineers allow you to post to reach members (and the public).

Low-Cost Channels

Yes, Craigslist. Craigslist is still a surprisingly great place to post jobs. First off, Craigslist became a billion-dollar company because it disrupted newspapers and “ate” their classifieds ads business. Before the Internet, the classified ads were one of the primary ways that employers found employees. We find that it’s worthwhile to post the job ad in a few different markets, with price ranges from $45 to $75, if you’re considering relocating the candidate or open to remote. Otherwise, just your local market should deliver plenty of good results. When dealing with remote and relocation positions, we like posting in the NYC, SFBay, Raleigh, Seattle, and Austin markets due to the high concentration of programming talent in those cities. The best thing is, it’s super cost-effective when considering Craigslist’s flat fee.

Your college alumni association may have a career board. If not, there is probably a LinkedIn or Facebook group that informally serves the purpose. One of the most overlooked secrets in recruitment is leveraging your college alumni association job board. These are often zero cost to post for alumni and help you get people you’re already highly likely to click with anyway. Make a point of posting your jobs there.

In recent years Facebook has shifted its platform focus to cater to Facebook Groups with common interests. These groups often have thousands of members and it’s a great way to find people in your fuzzy network of people whom you don’t know well but are in your industry… (maybe you’ve seen them commuting on the train or at a conference). In order to find the right groups to post in, just do a search around Hacker News, Startups, Tech as well as the specific programming skills you identified previously. If it’s your first time posting in the group, it’s generally considered good etiquette to make a post introducing yourself along with the job information.

Another zero-cost-except-your-time channel is taking your comprehensive list of technical skills, and then go search each one on reddit.com to find relevant subreddits. Recruiting etiquette on reddit varies from forum to forum. Sometimes there’s a monthly jobs thread for the specific technology; sometimes you can post an original thread. If it’s unclear, read the rules in the sidebar, and if it’s still unclear, message the moderators. When posting a job to reddit, if at all possible, share compensation range information upfront. It’s just one of those things that really makes a difference on that social media platform. Our data shows that posts with compensation range information are substantially more likely to get upvotes.

Plain LinkedIn posting, to your personal social media profile, can work great for approaching programmers as long as you are humble and respectful in your tone: the tone that we have found to be effective on LinkedIn for hiring programmers is one that says “While I’m sure you have many good opportunities, perhaps the timing is right and this is the one that is right for you.” It’s even better if your message explains why you’re reaching out to them: programmers like when you’re up-front with describing your targeting criteria. When dealing with software engineers, rational tone breeds trust. In terms of driving traffic to job boards from LinkedIn, we don’t feel it’s worthwhile as we see an average $5 cost per click when targeting programmers and a low submit rate. Pay-per-click platforms like Reddit are better performing.

Blended, when it comes to spending money on Reddit, we’ve found that we typically pay $0.47 for a click, and get on average 7% application completion rate, netting an average cost of $6.70, 5% of whom are worthwhile of screening. Even if your team doesn’t already have ads as a skill, the margins are so good when it’s working that it’s extremely cost-effective. Thanks, ad technology!

Referrals

I would be remiss if I didn’t mention referral programs.  Referral programs are widely successful when implemented. Offering to pay employees $5,000 per engineer hire typically yields candidates with refer-to-close rates in the area of 25%.   It’s the easiest way to get more leverage from an existing asset, your employee base.

Final note: If you are interested in more information, feel free to grab our 2019 guide to recruiting software engineers. This is a step by step process and a checklist you can just send to your team.