Vivek Ravisankar is the co-founder of Y Combinator alumnus, HackerRank, a platform for coding contests used by programmers to hone their skills and a tool for companies to streamline their own recruiting process.


The hiring process for technical talent is broken. Across the board, the number one problem for any company is hiring programmers. Whether it’s a series A-funded startup or a large multinational corporation, hiring technical talent takes up a lot of time, energy, and money – and doesn’t always result in the best hires.

Even if you have many resources devoted to hiring, the number one pain point remains the same. There’s something fundamentally wrong in the evolution of the process.

For a long time, hiring technical talent was something just for software companies and startups, but this is no longer the case. To put it bluntly, software is eating the world and everyone needs coders.

Here are four hacks that every company can apply to their recruiting process to help efficiently and effective find great programming talent, and save time.

1. Learn to look past a resume

A trap that many companies fall into is relying too heavily on a candidate’s resume.

Don’t get me wrong – resumes are a great indicator of a candidate’s previous experience, and can give you terrific insight into their work ethic and skill set developed through previous employers. Some companies move fast and break things, and others have a completely different environment. Where you’ve worked can be very telling of your programming philosophy and what camp you fall into.

Most companies look for two things: a great school, and previous experience at a great product company. For some companies, this is all they initially look for. However, putting a resume on a pedestal like this is a seriously flawed approach.

By doing so, you are competing for the same, very small, pool of talent with hundreds of other companies. There are amazing talent across other planes than this; candidates that, for whatever reason, didn’t get an opportunity to go to a great school, or maybe even skipped school to be able to keep hacking.

If a candidate does not have a great resume, it doesn’t necessarily mean they are a bad candidate. Ironically – and this is the case more than you would think – it could be that they have spent their entire life learning their craft and put school second.

Look for those diamonds in the rough – those that may not have a shining resume but do have the programming skills you are seeking.

2. Create a consistent bar for your application process

Every company has different values, processes, and cultures. But when hiring, the interview should be designed with objective measurement standards in mind that will clearly indicate whether or not the bar has been cleared.

Programming is a science, not an art, and the hiring process should be the same way. So many interviewers, whether consciously or subconsciously, try to prove their intelligence by asking hard questions – often with the intention of finding people exactly like themselves. They’ll try to trick candidates to see if they fall into a trap; if they do, it’s a fail. If they don’t, it’s a hire.

Here is a great example: a friend of mine, who happens to be a brilliant developer, is in the interview process right now. He’s interviewing with a number of top companies. Each of these companies obviously operate in different ways, but he has NO clue what to expect in each interview. What will they ask? What specific skills might come up? How do you know which specific skillset are they interested in?

Catching the candidate off guard to see how they respond is an unfruitful tactic used by too many companies. There is absolutely nothing wrong with preparing a candidate for an interview – this is actually a great sign that they are truly interested in the company, and are willing to do the work ahead of time, be ready for your questions, and be immersed in the company as quickly as possible.

Remember to ensure that your interviewers are prepared. Every interviewer in the panel should know what is expected from the candidate, know what questions to ask, and what specific skills and talents the company is seeking. With this in mind, a company can make an informed and completely objective decision.

3. Fine tune your recruiting process with data

The most streamlined processes in any business are data driven, and that is no exception for the recruiting process. How can you objectively evaluate and select a candidate without data (which is, by definition, objective)? And more importantly, how can you expect to improve your hiring process if you have no understanding of its previous effectiveness?

Plain and simple: recruiting should generate a lot of usable data. You should be able to quantify a programming candidate’s skills, but you should also be able to do the same with your interviewers. You want to be able to identify which interviewer is doing a great job, which questions have led to successful hires, and which questions led to busts – and use this to mold your recruiting process moving forward.

It’s important to identify these questions and interviewers by percentages of interviews held that went on to be hired.

Although most technical interviewers will be developers, that doesn’t mean that the best developer will be the best interviewer. This requires an entirely different skill set, and is one that needs to be recognized, and more importantly, tapped into. It’s important to not make these decisions just by gut feeling, but with supporting data.

4. Recruiting can’t be outbound: The future lies with inbounds

Despite the natural inclination to reach out, the process of constantly pinging programmers with recruiting inquiries isn’t sustainable anymore. This has always been the logical method for recruiters, but it does not guarantee a good response in today’s market. The key is to generate inbound interest.

When was the last time you bought something because you got a cold call about it? Or saw an ad for it? Everything we buy is either because we are naturally attracted (inbound) or hear great reviews from a friend (referral).

This same line of thinking can be applied to recruiting: a programmer is naturally attracted to a company’s approach to business, or has heard great things about the company from a friend.

A number of companies have started hosting contests to attract thousands of programmers to solve a particular challenge. The last security challenge conducted by the payment company Stripe attracted 16,000 security enthusiasts, and the AI challenge by Netflix attracted 100,000 programmers!

Developers are a different breed – they love to try and solve problems and will even do it for free when challenged.

Tell the world what you’re working on – not through a fancy job description, but in a fun and engaging way. Every company claims they are the fastest growing company on the planet with 40 percent month-over-month of some parameter, funded by top-tier investors, etc. It’s nearly impossible to stand out this way. Instead, make people want to come to you by getting creative.

What do you think about the technical hiring process? Do you think it’s broken? If so, how would you fix it? The technical interview process is due for some big changes, and I’d love to hear your thoughts in the comment section below.