Editor’s note:This is a guest post by Jason Cartwright, the founder of Potato, a 65-person Web development agency headquartered in London. He’s previously worked for a variety of startups, as well as larger organisations such as Volvo, the BBC, and Google.
Hiring developers for your tech company undoubtedly involves making some of the most important decisions you’ll reach for your organisation. Aside from potentially producing poor work, the wrong person shaping your code can do untold damage to your product and the development culture of a team.
The right developer on the other hand can start you off on the correct footing, pivot any incorrect tech choices, network to pull in more skilled coders and motivate them to do their best work.
One of the most common causes of death among startups is people. The wrong hire can do untold damage to your product, culture and sanity. The right one can suddenly make everything work. Here’s how we avoided death by people over the last three years.
Recruitment consultants – just say no
To begin with we didn’t have the money to pay recruiters, and it turns out we don’t need or want them anyway and nor should you.
Like most agency business models, these guys exploit the inefficiency in a two-sided market. However, in our view, this inefficiency doesn’t exist anymore, and it’s too easy to get in contact with the people yourselves. You don’t have to be beholden to this shady sales commission-led industry.
Here are some dubious practices we’ve encountered.
- Posing as candidates: Copying an eligible candidate’s CV, replacing the name, phone number and email address. When we got in contact, he did the ‘switch’ part of the ‘bait and switch’, trying to sell us other people. We got an apology from the MD of the firm, then tracked down the copied candidate and interviewed him.
- Copying our adverts: This happens at least once a week. Our advert gets copied and reposted (often with incorrect embellishments, including salaries way below what we pay) then within days they get in contact promising they’ve found some developers for us as if we haven’t noticed this blatant copyright infringement. Even worse is when other people get in contact with us saying they’ve spotted this practice then asking if we’ve changed our policy on recruitment, or why we’re not paying people properly.
- Complete misunderstanding of the role: This one happens daily. We use Python. Not PHP, not ASP.net, not XYZ tech. Recruitment consultants continue to relentlessly spam us with candidates whose skills bear no relation to what we do, proving they have not taken the time to understand our business, or our needs.
- Sell us our own people: Attempting to represent a freelancer that’s already sat inside our office. Quite funny, especially when said freelancer has never heard of the company that’s apparently representing them.
- Cold calling: Various forms of chicanery to attempt to get around our office managers that answer the phone. They’ve seen it before and know every trick it’s possible to pull from the 2,030 calls we get a day from recruitment consultants. If we wanted to use a recruitment consultancy (reminder: we don’t, and nor should you) would we use one from a cold call, or would we ask our colleagues at other organisations for a recommendation?
A typical recruiter cold call (we’ve got a spreadsheet full of these, for giggles):
Recruitment Consultant (RC): “Regarding the previous phone conversation with [random employee name]”
Potato Office Manager (OM): “Can I ask if this is about a specific project?”
RC: “Yeah, about Web development”
OM: “Okay which project is that? I can pass you to the relevant person”
OM: “We have variety of Web development projects. Which one?”
RC: “[pause]… PHP?”
OM: “You’re a recruitment agency, aren’t you?”
RC: “[pause]… yes”
Aside from the fact that you don’t need them anyway (discussed below), recruitment consultants are playing the numbers game, and the financial targets they so often work to, as sales people, do not align with the needs of your business.
(For recruitment consultants reading this: you’re going to want to tell us that you’re different and that the industry is full of people in it for short-term gain. That may well be true, but I’m not sure it matters the role you play isn’t required by technology companies who can easily connect with candidates using more elegant and tailored alternatives).
Go to the coders
To get to developers without anyone getting in the way you’ll have to put the word out where they are.
Obvious examples of this are GitHub and Stack Overflow’s job boards. Reasonably priced, and reaching exactly the right audience. LinkedIn’s highly targeted text ads (rather than specifically job ads), and Google AdWords work well too. Technology-specific job boards are often free and massively targeted.
However, advertising is crude. Twitter and related referrals have been our best source of interviewable candidates.
Build your own HR manager
Dealing with raw applications is the most time-consuming part of the process if you’ve written and placed your adverts correctly then you’ll be receiving plenty. As with any repetitive business process automation is the key.
We receive anything from 50 to 100 applicants a day, and have a simple Google App Engine app (coded over a Christmas holiday, and costing about $3 a week to run) to manage the applicant through the process of getting more information from them, approving an interview, handling interview notes and salary negotiation. Applicants are automatically triaged based on the individual email addresses per role and location they applied to making sure that the right people can assess them quickly without administrative overhead.
We used to do this purely over email, using the same Gmail thread and mailing lists to talk to and about the applicant. You can see straight away where this is going to go wrong – it was the second time we slipped and accidentally emailed the applicant their interview notes that we decided to separate this information!
Of course, the developers that you’ve already hired should be maximising their time writing code as well as hiring. Respecting their time and keeping applicants they shouldn’t be interested in out of their inboxes is time well spent.
A fun side effect of having this data structured in a database is that we can monitor our performance, pulling out stats such as our initial response time, screening time, and overall time to hire. It also track referrals.
Screening is simple we’ll need to see some code. It doesn’t have to be a vast quantity, or even particularly complex, but it does have to be good. We resist using the simplistic term ‘best practices’, but ticking boxes happens here getting the basics right will get you an interview. Showing us code unprompted is increasingly becoming the norm, and perhaps sooner or later you’ll see organisations automatically filtering out applications without a GitHub or Bitbucket URL in it.
Make your interview process unique to your culture
There has been plenty written about interviewing developers and the pitfalls of when traditional interviewing techniques are used on coders.
We keep our interviews quick and simple. Only developers interview developers. There are no trick questions, ‘why are manhole covers round’ nonsense, or forced whiteboard coding. Interviews are done quickly in anything from half-an-hour to an hour, and everyone is interviewed at least twice, usually more, even if they come massively highly recommended internally.
Previous interview notes and personal connections to the candidates are hidden from interviewers to aid impartiality.
Interviews are framed as a chat over a cup of tea, and are designed to allow the candidate to do their best, not to create an atmosphere of trying to trip them up or catch them out that technical interviews can too easily become.
One technique we do employ that tends to work well is asking overly open-ended questions where the answer can be as simple or as complex as the candidate wants. This often gives wonderful responses that we don’t expect and is just as fun for the interviewers as the interviewees.
Cultural fit and ability to learn are more important than being able to recall esoteric Python intricacies off the top of their head. You can teach someone some coding specifics (or they can skim the documentation), but you can’t teach them to be intelligent or to not be an asshole.
It’s probable that your business boils down to finding extremely talented humans and creating an atmosphere that they like to be in – and this process is sometimes the only interaction the applicant will have with your company before accepting an offer.
The best hires are serendipitous – your hiring effort should feel personal to the applicant, even if in reality it’s ruthlessly efficient.
Looking for a job? Head to The Next Web Jobs Board now.