How to Advertise for a Programmer

Ovid on 2005-05-29T20:18:45

Note: I'm not looking for work (unless you're some European company foolish enough to pay my relocation expenses :) I just thought to write this down. And to be fair, I think I may have written something like this before. I can't remember. Sue me.

I was reading about a company having difficulty finding competent Perl programmers. The problem appeared to lie, in part, with the advertisement. The main thing you want out of an ad is for people to read it. If you have nothing compelling in the ad, the people who will read and respond are the unemployed or the unsatisfied. Why overlook the competent, happy programmers? You want everyone reading your ad.

I'll get the most contentious issue out of the way first. It's the first thing programmers want to see and the last thing employers want to admit.

If you really want their attention, list a salary range.

If you have the courage to list a salary, that commands attention like nobody's business. Let's face it: how often do you read a want ad and not look for a salary? When scanning a list of ads, most programmers are going to first read the ones with a salary.

I think most programmers suspect (either consciously or not) that any company that is not willing to list in their ad even a hint of the salary range is going to try and pay too little. They want to see if they can pull a fast one and pay 10 to 20 K less than the programmer's worth. So there, right in the ad, is the first mark against the company.

Note: The range isn't set in stone and it can be a wide range. The lower end should actually be less than what you expect to pay because anyone hired at that will resent it.

What do you want?

I don't care if you want me to write robust, scalable, buzzward-compliant code. Everyone wants that. Big deal. I don't want to read something obviously written by a marketroid. Hell, write that you want fragile, insecure, poorly organized and undocumented code and you'll have everyone's attention. That would be easy to twist into a funny ad that programmers will appreciate.

my @wanted = qw/fragile insecure obfuscated/;
@wanted = map ! $_ => @wanted;

If you only need (or are willing to pay for) a maintenance programmer, don't try for top-notch programmers. Most will realize this in the interview and either not take the job or take it with the intent of leaving for something better as soon as they can find it. This is a waste of time for everyone (and often a huge waste of money for the company.)

Do not let Human Resources write the ad.

Many companies have policies that HR must approve all hiring ads and that's fine. Good HR people are worth their weight in gold and are tremendously underappreciated but they rarely understand tech culture and will usually not create a compelling ad. They don't know what TDD, SQL or XHTML are. They can't build an effective ad around that. To this day, I still laugh about the company that tried to recruit me with an ad for a senior programming position where I had to demonstrate a "strong marketing and sales background."

Write the ad yourself, run it past your tech people and then hand it to HR. Before it goes out, you and HR need to mutually agree on it.

Don't list every damned skill that all of your developers have.

Help wanted: entry level programmer with Perl, Mason, JSP, SQL, ASP, ASP.net, JUnit, XML, XHTML, WSDL, RDF, EasyTrieve, Crystal Reports and SOAP.

You've seen those ads and you know they're a joke. Maybe (maybe) you have a position for a lead architect who needs brief exposure to all of these to be able to do her job, but I doubt it. List the skills they're really going to use on a day-to-day basis. Why scare people off?

Understand the programming culture: it's Perl, not PERL.

This one is really important. Yeah, it seems nitpicky, but this is such a huge sore point in the Perl community that having PERL in the ad says one of two things: the technical people are clueless or bureaucracy is heavy enough that HR can pump out rotten ads without the techies knowing (or having the Power to do anything about it.) If you really want top-notch programmers, why bother to screw up something so basic?

Why do I want to work there?

Many ads tell me what they expect of me but say little about what they really offer. Medical, 401K, carpeted cubicles, blah, blah, blah. I don't care. I can get that anywhere and I'll find out in the interview. Is there comp time for overtime? Do you practice TDD? Real, full-time DBAs to work with the programmers? (I drool over that one.) Will I get to learn cool new technologies? Is there a book buying budget? Is the work really unusual? (I'm astonished at how many ads don't tell me what business problems I'll be solving.) Tell me what makes you special and that will really pique my interest.

You don't want 5+ years of experience.

Are you really going to turn down that awesome programmer because he only has 4 years and 11 months of experience? What you're really looking for is a certain minimum level of competency. Figure out how to assess that.

Dogmatic hiring qualifications are a sign that the company has rigidity problems. Yes, there are times that such qualifications are necessary, but when you're posting an ad for a Web monkey, they don't need a BA. Remember, you're looking for someone with whom you want a good, probably long-term, relationship and as such, you don't want to throw out qualified candidates for no reason. It frustrating when you have two applicants who are perfect for one job, but it's awful when you have one "almost good enough" person and you're rereading old applications.

Here's a quick test: if your ad says that candidate must have X, pretend to be the candidate and ask yourself "why?" Have you promised your clients that the person supporting their servers is a RHCE? You have to keep that promise or be honest enough to tell them when (and why) you're breaking it. Are there legal requirements involved in the qualification? Fine. You don't have a choice. However, if you can envision a perfect candidate who falls short on the qualification, drop it. You can always keep that in your mental "nice to have" checklist.

There's a lot more, of course, but those are the things that I'm always looking for in ads. It's really not that hard, but the poor ads that are out there seem to have formed most people's mental templates of what an ad should be. Forget about that. Your job is to find people, not to write another ad that no one will remember or care about.


I know how you feel...

ajt on 2005-05-30T12:37:09

Some time ago we decided to expand the team. Trying to keep the buzzwords out of the job description was almost impossible. HR wanted to add silly phrases like "team player", "eye for detail", and other such meaningless, and refused to allow me to say "Perl hacker with good Linux skills": which is what we wanted.

Then the agencies, start sending in CVs, almost all of them having been written or re-written by an agency monkey with little or no technical skill, and it comes out as utter drivel. You have no idea if a given candidate is suitable at all, because the CV is so terrible, yet the agent says they are so perfect.

In the end I placed an "edited" advert on jobs.perl.org and got an unfiltered CV. We had a quick round of interviews, and got what we needed, no agency fee changed hands. Alas he was then made redundent later on, but that's another story.

There are days I worry that if I loose my job another time, I have no idea how I'd find a job, seeing as the whole process is so inefficient from both the employer's and employee's perspective.

here is a fine example

Qiang on 2005-05-30T16:07:18

I hope my post won't be inapproriate...

sometimes ago, The Erlbaum Group from NY posted a fine job on use.perl that is just too good to be forgotten. (I kept a copy of it :)

The Erlbaum Group is looking for a Linux Systems Administrator with a penchant for Perl. If you love UNIX systems, and your favorite Swiss army chainsaw is Perl-flavored, you’re our guy. Or gal.

Your job would be to own all the admin responsibilities for the company. This includes maintaining two internal servers, outsourced Exchange hosting relationship, and maintenance and support for all client servers. Also, your help would be invaluable in support of software development efforts, including setting up development and testing servers, supporting programmers, etc.

If you have the chops, you would be regularly enlisted to throw into the Perl web development efforts on various projects. Possibly as much as 50% of your job might be Perl hacking – maintaining existing code and developing new features.

We’re a small firm, specializing in Perl (and open-source) based development. Although the company is small, our clients are not. You would have a very important job with an opportunity to wear a lot of hats, and get your hands into a lot of different things. If you like small companies, don’t mind hard work, and are a solver of problems, then this is the job for you.

        * Truly expert in administering UNIX and Linux servers.
        * Expertise in all things TCP/IP.
        * Ability to crimp Ethernet cables with teeth.
        * SSHd, QMail, Apache, Bind, NFS, IPTables, etc.
        * Must have warm acquaintanceship with up2date.
        * CVS chops a must.
        * Able to say a few kind words about Windows.
        * Perl wrangling pants. CPAN flavored.
        * Seriously organized multitaskers only!
        * HTML, JavaScript
        * Object-oriented Perl
        * HTML::Template, CGI::Application
        * MySQL, Solid SQL knowledge
        * Perl monks preferred.
        * CPAN authors treated as royalty.

I just love to read it again and again!

i kept few more less interesting ones on this page http://wiki.perlchina.org/main/show/perljobs/

Re:here is a fine example

Ovid on 2005-05-30T20:49:44

No, your post isn't innapropriate at all. That's a great ad! You know what they want, they're enthusiastic and they sound like the know what they're doing. That's the sort of ad I would respond to.

Me too!

Adrian on 2005-05-31T09:29:43

I just wrote a similar rant and then came across yours :-)

Re:Me too!

Ovid on 2005-05-31T15:55:40

Heh. Seems like we're spot on with many of our requirements. That's amusing :)

9 years experience

duff on 2005-06-01T19:01:28

I once participated in a phone interview where the job required 9 years of unix sysadmin experience. At the time, if I included my school days, I was only up to about 8.5 years. The interviewer kept coming back to that "missing" .5 year experience. "Are you sure you can't find 6 months of experience somewhere?" I almost told him facetiously something like, "oh you're right! I forgot all about the experience I keep stashed away in my offshore accounts" I knew from that interview that there was no way I would want to work in that organization.

Re:9 years experience

Ovid on 2005-06-01T19:19:06

That's hilarious. I am boggled by the idiocy of some people.