How to Find Crappy Programmers

I read plenty of articles about how to recruit great developers, but what if you are only interested in the crappy ones – what then?  Perhaps you aren’t willing to spend good money to make money, or you just think getting work done is overrated.  Whatever the reason, this series of articles on Crappy Programmers will do the trick.  Welcome to the first installment: ‘How to Find Crappy Programmers’.

The job post is your potential programmer’s first impression of your company, so make it count with these offputting features:

1. List a String of Acronyms for Technologies

No matter if the person writing the post or doing the interviewing has any idea what they mean.  All that’s important is that they were used in your code base at some point in time.  There’s nothing developers love more than playing buzzword bingo in job posts. 

JMS, XML, J2ME, AJAX, SSRS, SSIS, JSB, WCS, JSTL, HTML, DHTML, XHTML, MOSS, SOAP, BO, WPF. 

You get bonus points if the technology is over ten years old.  Don’t worry if it seems like you’re filling positions with checklists, developers like having years of their work marginalized into a neat little box.

2. Put an Arbitrary Number Next to Each Skill

It’s important to pay people based on the years of experience they have, not their talent, proficiency or overall competency.  To that end, be sure to put a number next to each skill that represents some number of years.  A job posting for a Technical Lead might then look like this:

10+ years total in the IT field
8+ years with Microsoft technologies
5+ years with relational databases, like SQL Server
3+ years with C#
1+ years with WEB technologies

Then you don’t have to consider anyone with less years of experience, even if their skill level is higher.  After all, since the person is older, they will fit in better with the other old managers.  Don’t actually mention age though (that’s illegal) – the proper career terminology is “culture fit”. 

Plus, since they were already well into the workforce while most of the current technologies were created, they have a firm grasp of the fundamentals, like PowerBuilder.

3. Say Nothing Positive About the Position

We’re all very desperate for a job “in this economy” and you did say that the multiple positions would be “filled soon”.  Don’t waste space talking about what sort of projects you might work on, what the team environment is like, how the developers work together or anything technically appealing whatsoever. 

By completely ignoring what a developer looks for in a job, you’re letting us know up-front the sort of don’t-care attitude at the company.  This sets the stage and limits developers asking for things when they come on-board, like non-broken chairs or licensed software.

Agile is for hippies.

4. Use Euphemisms for the Negative Aspects of the Job

Obviously, if anyone knew what it was really like to work here, no one would take the job.  After all, that’s why our other developers have all left and we’re constantly hiring.  Clearly we will need to lie, so here’s an easy translation matrix:

What the Job Post Says What it Really Means
Standard work hours are 40-50 hours a week We expect developers to live in their tiny tiny cubes 24-7
This is a support position We don’t allow our developers to have a life outside of work
You will work closely with the PM, DBA and QA Our environment is highly political, riddled with ridiculous rules made by people who don’t understand software, and we get very little done
This position involves working with our real-time application I don’t know what real-time means but it sounds good
Great opportunity for growth Only a desperate person would deal with this shit
Job candidate must be resourceful, responsible and able to work well under pressure. Our corporate culture is basically the ‘Lord of the Flies’

5. Require Resume to be in Word doc Format

Requiring resumes to be in the proprietary and platform-specific Word .doc format, instead of .pdf, .html, or .txt formats, is a nifty little test early on in the hiring process.  You want to make sure that your developers are adept at jumping through HR hoops, even on technical matters. 

We do not want our developers to have any basic principles in their work, or to have a keen understanding of interoperability or usability.  We also like it when recruiting firms paste their logo at the top of our resumes and add lame summaries – our resumes were too much about us that.

This is a special treat for Java/UNIX developers.

So there you have it, folks. By following these simple steps, you are well on your way to hiring crappy developers. 

But wait, some good developers might still slip through this cover, so stay tuned for our next installment of the Crappy Programmers series by subscribing here.

102 Responses to “How to Find Crappy Programmers”

  1. Rev. Spaminator says:

    I love “must be able to multitask.”, which really means “Focus and concentration aren’t required for something as trivial as writing code.”

  2. max says:

    Around here they want each year worked to only count for one type of experience, then will put out a list like:

    10 years C#
    10 years Java
    10 years in a Unix environment
    5 years .net
    5 years C++
    5 years PHP
    5 years AJAX

    Total 50 years experience. Assuming you went to school at all, you’d need to be 70 to get the job.

  3. Donovan says:

    You missed out on certifications; Ideally certifications in either half dead technologies like Novell/Corba or things that MBA types can appreciate like a “Black Belt” Six Sigma.
    Because a certification “certifies” that you are a kick ass programmer who churns out torrents of bug free code.

  4. demopub says:

    “Agile is for hippies.”

    That is classic. Actually it’s for hippies w/ego issues and don’t want to be the “fall guy” of a project.

    Anyway the list sounds about right, problem is I’ve never found, seen, or heard a “good programmer”, especially the ones that boast about being a great programmer–software always costs more than it should be. That why: a. we’re s/w developers, and b. we’re all crappy programmers.

  5. msu320 says:

    What people forget is how often the position is already filled before the wanted sign goes up. The reason for the absurd requirements (IE 15 years in C#) is to make sure that as many “alternatives” as possible don’t apply.

  6. casey says:

    I love when they ask for something seemingly totally irrelevant that divulges truly Lovecraftian horrors beneath.

    “10 years of experience with Ruby on Rails and MySQL required; PICK/Basic and DEC assembler skills, and/or fluency in Latvian highly desired.”

  7. Lee says:

    “Some mentoring of junior developers will be expected as will project management skills.” == “You will be required to run the entire company whilst I go for the ‘most pointless meetings per day’ record”

  8. Justin says:

    “Job candidate must be resourceful, responsible and able to work well under pressure,” is more fluff boilerplate than an indication of anything real. Though fluff boilerplate does indicate a HR department.

    On my recent job hunt I found that almost every job posting had fluff pieces in them, including postings on the well-regarded boards (joelonsoftware, 37signals, authenticjobs)

    “Strong analytical and problem-solving skills.”

    “Effective communication and organizational skills, demonstrable teamwork skills.”

    “Self starter that is process centric, standards and best practices driven.”

    Does anyone *not* ignore these? I’ve developed a blindspot to them.

  9. [...] the job-hunt game a lot of what is joked about here I have seen first-hand in recent months… How to Find Crappy Programmers | Code Anthem __________________ C/C++ Environment: GNU CC/Emacs Make system: CMake Debuggers: [...]

  10. WIZ says:

    Absolute pisser, but so so true, all of it so far

  11. Jonathan Allen says:

    Great post. I particularly enjoy the years of experience you must have in some technology. Any good potential employer should know that a good developer can use whatever technology is required because…THEY CAN LEARN. Good developers are more interested in solving problems and delivering whats needed not in how long they know some technology.

  12. jister says:

    How about adding the job description found in this post – http://owenge.blogspot.com/2010/04/odd-job-description.html

  13. Geo Mealer says:

    Speaking as a QA/SDET, love that dig re: PMs, DBAs, and QAs not understanding software. :| I’ve met more programmers who don’t fully understand an actual commercial software process than I have QA.

    Otherwise, funny, funny stuff!

  14. James says:

    The little blurb I always love is titled.

    Wanted Sr Linux Admin

    Must be skilled in Exchange and Active directory, and have extensive experience in Windows 2003 server, 2008 server, XP and Vista.

    ?!?!?!?!?

  15. vince says:

    I am a bad programmer :_(

  16. Joe says:

    It all boils down to bad management. First grade people hire first grade people. Second grade people hire third grade people.

  17. Max says:

    Gems I have seen:

    STRONG VERBAL COMMUNICATION SKILLS – Expert – Required
    US Citizen – 10+ years of experience – Expert – Required

    While I know I am an Expert at STRONG VERBAL COMMUNICATION SKILLS who am I to say that i am an ‘expert’ US Citizen?

  18. Wolfie says:

    I love when postings ask for skills that most programmers (even great ones) tend to lack. Like a command of the English language (grammar, spelling, and such).

    I have never had a job where there wasn’t horrible spelling in the comments or variable names of the code I inherited. At one, my boss was thrilled that I could check his PowerPoint presentation for subject/verb agreement and punctuation.

  19. Rob says:

    Also the classic: “Salary will be consummate with experience” (which is not subjective in the least, right)? == we’ll probably take the cheapest candidate.

  20. mikeh says:

    I love it when the position calls for someone with conflicting religions beliefs, like they want an admin who is an expert in both Linux and Windows, or emacs and vi, or Postgres and MySQL.

  21. Jon says:

    You forgot “Perfect job for a college student,” which means “We don’t want to pay you more than minimum wage.”

  22. Nev says:

    Very good post!!! 90% of programmers are crap. 70% are beyond hope and the 20% between those two figures are the ones who need good mentoring. The top 10% are the 9% who have had good mentoring or worked in an environment where they are exposed to genuine best practice, and the 1% are those who are just geniuses – though I have known one definite genius who still managed to #%@! a 400 million dollar project. I’ve figured this out from 15 years experience in software development. But of course no-one in an HR department will EVER figure it out. :) Haha. Very good post!!!

  23. Tyler says:

    Thanks for the good chuckle. I sent it to some friends and yah, good laughs all around. Thanks

  24. Karen says:

    “You will work closely with” is also an indicator that the projects are real enterprise class applications that must fit within an existing environment. If you want a job where you can build a stand alone system from scratch, this ain’t the place.

    Now, if the posting started with “Reporting to the DBA, you’d know you’d be writing stored procs all day”.

  25. stevil says:

    I like it when they are asking for 5+ years of C# or Java
    and working knowledge of object orientation.

  26. Alex says:

    @people can learn

    Yes, people can learn, but the company just needs a drop-in replacement for someone that gave them a finger, teaching a new generic developer to get into a technology costs money and time (from a month to a year to learn all nooks of new tech).

  27. steve says:

    Sounds about right =] Seen many a job advert like those mentioned, ended up going for a few interviews to check out the company anyway and turning down the job offered because the environment is as stupid as the job ad

  28. planetcall says:

    A funny job description by HR -

    We need ASP.NET web developers. NO CSHARP or VB experience required. Must be sound in ASP.NET!!! ;)

  29. Guy says:

    Senior Linux admin w experience with products… I’m familiar with this. See a company who’s bottom line is all about performance who is trying to integrate the new (linux, unix, POSIX, whatever) with the existing (active directory, ms exchange, server 2003)…you HOPE for someone available with the qualifications (skills, not paper) to fix your $h1+ (truly God among men) only to eventually find out that they’ve been around all along, in the form of folks who are too busy fixing all your other problems to be bothered with this.

  30. [...] no twitter, chegou um artigo que listava meios de como se contratar um programador da forma mais equívoca [...]

  31. Andre G says:

    I like job postings that contain impossible requirements
    e.g.
    Must have 10+ years Microsoft Azure experience

  32. David Rivers says:

    This is the most profound article on software development I’ve read in my whole life.

  33. [...] NB: Interesting perspective taking my point ad absurdum can be found in this blog post: How to Find Crappy Programmers [...]

  34. Anonymous says:

    [...] trattano il tema delle offerte di lavoro per programmatori. E’ il caso dell’eccellente How to Find Crappy Programmers, tanto ironico nella forma quanto – purtroppo – realistico nei [...]

  35. rrs says:

    this was an actual job posting i came across:

    Minimum Requirements:

    sitting for long periods of time using keyboard and CRT (or other
    computer programming devices); office could be in an enclosed space
    with potentially limited access to open windows; ability to learn
    quickly, work well under pressure, pay attention to detail, meet
    inflexible deadlines, and deal with difficult individuals while
    maintaining composure; ability to comprehend complex system and
    applications related materials

    PHYSICAL DEMANDS

    While performing the duties of this job, the employee is regularly
    required to sit. The employee is occasionally required to talk and
    hear. Specific vision abilities required by this job include close
    vision.

  36. [...] with these offputting features. There are plenty of articles about recruiting great developers, but what if you are only interested in the crappy ones?” I think much of the industry is already following these [...]

  37. Yutaka says:

    Many companies out source their recruitment to jobs agencies that know nothing about IT technology. If you write details about what you know, your CV will end up in the trash. If you copy and paste the ads onto your CV, you will get an interview very soon. When you pay peanuts, you get monkeys. Company get crappy programmers because they pay peanuts.

  38. [...] to hire for talent over experience (and I agree with this premise; Code Anthem’s recent post How to Find Crappy Programmers really drove that home just this weekend). I was really good at injecting my insecurity into a lot [...]

  39. Patrick says:

    Rule #3 is the worst for me when I look online for jobs. Is every one hiring for super-top-secret projects? Can you not spare a sentence to say what you would be working on? 1000 characters worth of TLAs and they can’t bother to say anything about the general nature of the work to be done! This is especially bad when it’s not a real company. I suppose this is a clue that the ad is posted by a middle-man, a talent agency or whatever they’re called.

  40. Warren says:

    I like how each company thinks that “what we do here” could be understood by the applicant, if we use the buzzwords they use.

    “* Candidate Experienced with [Insert Our Marketplace, Technology, and overall Mantra, in Five Words or Less Here] preferred.”

    In short, I think intelligence is what people should be looking for when they hire a developer, and yet, mostly they screen for a compatible series of historical accidents. Intelligence is the key. Most people who are intelligent can learn to use anything, and learn to do it faster than the not-so-smart people who have been doing the same thing over and over for years.

    I think that the ability to write “Mac OS X” applications would make a person a better Windows, or Linux developer. An ability to understand and explain encryption algorithms might be a good thing to have, even if the work you do has nothing to do with encryption. Because smart people do better here.

    W

  41. [...] determined to find talented people? Then here is what you do. Here are some things that you might like to read as [...]

  42. droope says:

    LOL!!!!

    “This is a special treat for Java/UNIX developers.”

  43. test says:

    I like the last one. Never able to convert my resume in OpenOffice format to word doc correctly.

  44. Gadget Newz says:

    [...] How to Find Crappy Programmers | Code Anthem [...]

  45. [...] husband and I had worked for years in the software development industry, so we had a lot of axes to grind, dirty laundry to air and big ideas to use as fodder for the content. My goal was to take a stand [...]

  46. Very good =)
    Congratulations =)

  47. "R" says:

    This is right on.

    I saw some dumb ass HR people on dice.com write descriptions like this. (for all the skills required as in Expert Level)

    “PHP, C#.NET, ASP.NET, HTML, VB Script, VB6, Windows Server, Red Hat Linux, Perl, jQuery, Ajax, SOAP, MS SQL, MySQL, WordPress, Drupal”

    ALL expert levels on those skills. Then there is a bunch of other stuff they have in there.

    That primarily translates to … YOU MUST KNOW EVERYTHING.

    Where do they get these guys?

Leave a Reply