Writing a good job ad for a programmer

As a poor person, I have been perusing a lot of job ads recently and I’ve run into several major turn-offs over and over again. I don’t reply to ads that seems clueless because I have learned through sad experience that working somewhere lame is not an acceptable activity in life, and if an ad is clueless, it’s likely that the company behind it isn’t too hospitable to programmers, however well-intentioned that company might be. As such, I am writing a brief howto regarding job ads, designed to help you find and retain good programmers.

Avoid colloquialisms

The words “rockstar”, “ninja”, “guru”, and so forth are instant deductions. If the rest of your ad sounds pretty great, these words might be reluctantly overlooked, but in an average ad, they kill all potential of a reply.

Why should that be so? Don’t these ads demonstrate your company’s hip-funness? No, they don’t; they demonstrate that your company is an out-of-touch poser, trying to wow people into thinking you’re a good workplace with “unconventional” and evocative language, but programmers aren’t so easily fooled. If you want to prove that your company is cool, prove it by describing cool things about your company, like “free lunches” or “work when you want” or whatever good things your company does. If you’re a run-of-the-mill company that provides no special benefits to its employees, you probably should just focus on the coolness of the tech you use and other micro-desirabilities about the job you’re trying to fill.

Now, it’s bad when a company is using these words to conform to the norms (saw an ad today that said “…a rockstar (everyone else is using it, so we thought we would too)”), but it’s worse when a company actually means it and expects “rockstar” or “guru” performance of the candidate. In all cases where I’ve found this, the expectations have been completely unrealistic in way or another, whether it’s the expectation to hire “rockstars” with a salary of $50k or the expectation that “rockstars” can perform the work of five plebes. These expectations are unrealistic; it seems that people think programming can get done like magic if you just hire the right guy, but the fact is that substantive programming has been and always will be hard work, even for the geniuses among us, and it will take time to write programs, and your programs will have bugs, no matter how insistent your demands or how diligent your search for the mythical “rockstar”. And, supposing you could find a person like this, they aren’t going to sign on for the meager salary you’re offering.

This is also applicable to a lesser extent to the term “expert”; “expert” is so widely used that you can’t really take points away for it, but it’s not ideal, because almost any normal coder knows that the experts in a certain language are the ones writing the VMs and compilers and designing the language’s future, and in almost every case, you’ll never find such a programmer in your respondents. There’s nothing wrong with that, we can’t all be experts in everything; Guido van Rossum is an expert in Python, but (as far as I know) he’s not an expert in .NET. If you want a Java programmer, you just want someone who knows it well, not someone who would consider themselves an “expert” because if these people are serious and consider themselves experts and can’t point to several patches to a language runtime or compiler or some other substantive low-level work on the subject, they are more trouble than they’re worth.

So, just leave out all the colloquialisms. If you’re looking for a good programmer, say something like “Looking for a Good PHP Programmer”, “Must be good at PHP”, etc.

Act like a normal person

Programmers hate pandering. Write your ad in prose and seem like a person well-informed on development. Keep things simple; as programmers know all too well, complexity is a death knell. When you bring a candidate in for an interview, don’t be stuffy or overly “corporate”; just relax and talk with the guy, because you’re a person, and he’s a person, and you’re all just people, and that’s all there is to it, there is no reason to bring other things in.

Don’t gush on and on about your mission statement or other silly things in the ad or interview, just be straightforward; instead of corporate-speak “We provide a cacophony of solutions to help businesses around the world pervade their markets”, try “We sell a few marketing-related services to businesses”. It’s simple, to the point, and you don’t look like a corporate drones.

Programmers spend all day with logic and if you do something illogical they will notice and resent it. Policies that exist for no reason and other corporate trademarks like big-wording prospective clients to death to make them think you’re smart is anathema.

Offer a decent salary

Around here, most people seem to think that software developers aren’t worth any more than $45,000/yr. It’s hard to find jobs that offer more; there are some senior-level positions, but by and large, the majority of ad are going to seriously lowball their targets. I guess that they must be getting some respondents that way, but it’s not a good way; you’ll get people too desperate to care or too ignorant to know that their work is worth much more, and these aren’t the serious professionals you’d want running the infrastructure that supports your business.

Just think about the responsibility and power that your programmers hold. You need to make sure you get trustworthy and experienced professionals in there; they have access to all of your customer data, both stored in databases and at point-of-entry, including credit cards and passwords. In most cases, they have access to all of your sales data and can tell the performance of the company with a simple SQL query. In some cases, they may have access to salaries, SSNs, and other confidential employee data. It is their job not only to safeguard the integrity, security, and usability of this data, but also to write the programs that use it. That is a lot of power. I don’t know what it is, but a lot of businessmen seem oblivious to that. There is no reasonable way to keep a programmer out of these databases and systems.

As such, it’s pretty important to keep your programmers happy. Programming is serious and complex business. When a programmer with business and domain knowledge quits, you lose a lot; it takes several months for competent programmers to get to know your systems very well. Programmers should be both feared and honored.

What does that $45k salary say, and what do you think you’re getting away with? Most professionals can find much better salaries, so what does that leave you with when you offer $45k? And do you trust those people with these responsibilities?

Don’t be a recruiter

Recruiters are almost universally clueless. They have little education and they don’t understand any of the technical fields into which they pump candidates. I’ve seen many come from Robert Half and friends who pass the little trivia exams they give before they send you out and are absolutely useless on the job. These people come in because people who don’t understand programming can’t tell which programmers can actually sit down and write some programs and which memorized a few simple syntax rules and survive by globs of copy-pasted functions.

I never respond to recruiters anymore, ever. They always bring you in for an interview and it never leads anywhere because they can’t tell what anything is or means, all they can do is compare resumes. These comparisons have, with one exception, resulted in completely non-sensible matches in my case specifically. In short, recruiters a giant waste of time for everyone involved; the candidates they provide can rarely perform the actual work that needs to be done and the programmers that respond are usually spammed and dragged through a lot of useless crap to no benefit.

Just don’t use recruiters.

Example

Here’s an example “good” job ad, which I’ve just made up.

My name is Jeff Cook. I run a company called Deseret Technology that provides general IT consulting services, primarily custom development. We need an experienced .NET developer and prefer experience with ASP.NET MVC. We are offering [some decent rate]. Please contact me at [email] and we’ll talk about it.

Here are some awesome things about our company: everyone carpools in a giant blimp that picks you up at your house every morning, there are fresh tacos under all the keyboards, our employees have all types of haircuts, and we are just some pretty smart dudes.

See? Not so hard. The answer lies in simplicity; it’s just basics, really. Be smart and everything will work out great.