Last month, a story in The New York Times described the peculiar way in which a software company hired a programmer.
The firm searched GitHub and other public code repositories in order to recruit (and eventually hire) this employee, who is still working there today; it was someone who had no idea of the firm’s existence before it contacted him.
As it turns out, this practice is more common than you may think: on the Internet, you are what you code. “Finding a truly great programmer is akin to finding an NBA superstar and with the same level of reward. The very best programmers can easily be more productive than 10 really good developers,” said Bryan Cooley, CEO of the Atama Group, who’s hired numerous programmers for the tech startups he’s founded over the years. He began his latest quest by interviewing around 400 candidates, eventually hiring 12 of them for smaller assignments. “Five of them are among the best developers I’ve ever seen and we keep them very busy.”
Tech firms are engaging in several non-traditional hiring methods, from programming contests to using Big Data firms to find the right people via algorithm. Some firms are so nervous about revealing their methods that one public relations person even emailed: “Because market conditions are currently so competitive re: attracting top talent, we don’t feel comfortable sharing details of our strategy and practices outside the organization.” Wow.
But other companies were more forthcoming about their recruiting. One of the more popular methods: set up a coding challenge or programming contest to bring out interested parties, with the top prize being a trip to the sponsoring company’s headquarters to interview for a job. Look at what Facebook is doing in this area, sponsoring several Kaggle.com programming contests to find the best programmers; it also makes use of the site InterviewStreet to screen potential applicants. One of those Kaggle contests got more than 400 people to post 3,500 different entries.
In theory, any company can build and run a contest online. Renesys Corporation, an enterprise-software vendor, has posted a series of what it calls “code puzzles” on its Website for the past several years. Martin Brown, manager of the Renesys application development team, is a frequent user of the puzzle results: “The answers we get tell us how coders think and whether they follow the problem we have set out and how they write a small piece of code.”
Renesys doesn’t specify a particular programming language or really give a lot of guidance for completing the puzzles. “What is important is for us to see how clearly a potential candidate thinks and what kind of insights the applicant brings to solving the problem and using the particular data set,” Brown said. “One candidate that we did end up hiring wrote his solution in Google Go. That was my favorite.”
Brown also looks at how much documentation the applicant provides along with the code; more isn’t necessarily better—but “how” and “where” someone documents his or her code is key. The puzzles are the first step in weeding out candidates: anyone who shines is interviewed by phone and eventually presented with a more complex coding challenge that usually takes several hours to complete. “That, we look at with great care,” he says.
Hiring contests can also be useful for internal guidance, even if they don’t result in an actual hire. Security vendor Impermium sponsored a programming contest on Kaggle. The prize was $10,000, along with an opportunity to interview for a job at the company. While Impermium ultimately did not hire anyone, “the Kaggle competition was useful and we were able to examine many interesting algorithms,” CEO Mark Risher wrote in an email. “These algorithms, even those that didn’t win, gave insight into emerging fields of research, and even more importantly, helped ensure against tunnel vision, considering the problem from a fresh perspective.”
Kaggle charges a percentage of the overall prize purse. For as little as $200 a month, InterviewStreet will set up your contest, send out the invites and evaluate and tabulate the results; it supports 16 different programming languages, including C, C++, Java, C#, Python, PHP, Ruby, Perl, Javscript, Haskell, Scala, Clojure, SQL, MySQL, R and Go.
The InterviewStreet contests can take several hours of concentrated effort. But it isn’t the quick finishers who always do the best. David Meyer, VP Engineering for OneLogin.com, has hired more than 70 programmers over more than 15 years of working at tech companies; the hiring managers he’s interviewed that use these contests find that tenacity is a more accurate predictor of job satisfaction than elapsed time-to-finish.
There are plenty of other contest sites, including ProjectEuler.net, HackerRank.com, India-based CrowdAnalytix.com, Innocentive.com (for the life sciences), and TunedIT.org (mainly for education and research projects). Meyer hasn’t used any of them yet, although he does watch the space carefully; he prefers less expensive methods, such as hosting in-person meetups.But if you don’t have the resources to produce your own code challenges, and if you don’t want to track down potential candidates, there is still another recruiting method. A firm called TalentBin.com will perform these searches across GitHub and other public code repositories (along with certain question-and-answer Websites) for $1000 a month. They claim to be able to sift through 300 million programmers.
“One thing I do regularly is create events that draw the developer to me,” Meyer said. “For example, when I worked at UniversityNow, we hosted various meetups on education technology to attract developers who were interested in the topic. While we didn’t hire anyone directly from these meetups, that is how we got the word out on what we were doing and it was quite effective as a marketing tool.” He is planning on doing the same thing at OneLogin to get the word out about his company.
But a contest doesn’t have to take place in the public eye to be effective. You can give your potential candidates sample problems to solve—the very method that Cooley uses: “We ask them to outline a difficult development project and provide a timeline of completion, how they would go about various stages, and any pitfalls they foresee.” He also looks at what courses they took in college, if they’ve studied graduate-level mathematics, and whether they took advanced-theory classes. He is looking for thoughtful people, not just someone who can pump out code. And that seems to be the common denominator in the hiring process: coding prowess is just the entry point.