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.

6. Advertise the position exclusively on Craigslist. Do not accept referrals from people you know and trust.
Might I add:
“Proficient in all aspects of the software development lifecycle”
Means:
“We have a custom application that we don’t understand, and the only guy who knows it is gone, so we expect you to wade through hundreds of thousands of lines of source code to figure out what broke and fix it.”
@Mark I see your point but having both found a job through Craigslist and hired a great dev through there, I’m partial to it. Word of mouth is great, but among traditional job listings sites, I’ll take Craigslist over Monster any day of the week.
@Matt Nice one… I know that one a little too well.
“Our corporate culture is basically the ‘Lord of the Flies’”
that made me laugh out loud. Great job!
It’s kind of Microsoft Word to open and convert text documents that happen to have a .doc extension.
Don’t forget the bonus points on #2: Make the required years of experience more than the technology has been around. For example, “10+ years C#” when C# has only been around for 8-9 years. This way you can reject any applicant you want since no applicant could ever meet all your standards!
Thanks for the laughs!
Although I am a System Administrator, job postings for us follow a similar format. I especially enjoy the listing of technologies along with years of experience.
I came across a post requesting Exchange 2005 experience. I submitted my resume (not looking for this job, I wanted to see if it was a typo) listing my experience with Exchange 2003 and Exchange 2007. I stated I did not have any experience with 2005. The response I received was that they were looking specifically for administrators with Exchange 2005 experience. The posting is still active 2 months later! (How long before they find out there is no Exchange 2005?)
Wow, I think you actually work for my company and just posted this during lunch. No joke when I say this is how my company operates.
“Stable, long-term, responsible position” = “We have an aging legacy app/system that you’ll be maintaining until you die (or we go out of business).”
“On-the-job training in mission-critical technologies” = “We’re using some obscure or obsolete language/tool/OS/platform that you’ll have to become expert in but will never use anywhere else.”
“Ground floor opportunity with high risk/high reward” = “We’re paying you in peanuts and stock options in the off-chance that some VC or dot.com-3.0 firm will pour money into us.”
“Sweat equity position” = “We’re paying you in peanuts and stock options, but the venture capitalists have our phone number/e-mail on auto-block.”
Great post, by the way. ..bruce..
You forgot the best part of buzzword bingo, you get additional bonus points for having more years of experience with any technology than the number of years it’s been around for. THAT is how you find a winner.
Look at Blogs to see what well-known bloggers ( daringfireball, JoelOnSoftware, etc. ) are talking about. If the person submitting their resume has either experience listed in employing technology within the same subject matter, they’re “on the ball”. It also doesn’t hurt that they know how to repair those Decwriter terminals no one else wants to go near.
Seriously though, you’ve just described over 98.9% of the positions listed out in the real world today. For that other 1.1% of jobs, there’s “knowing somebody on the inside of the company”. In an unrelated manner….this something that was posted on a job offering for a company down the street…
10+ years total in the IT field
8+ years with Microsoft technologies
5+ years with SQL Server 2008 <— Nice
7+ years with C# 3.0 <– Very Nice
10+ years with WEB 2.0 technologies <– Arguable, but total RAD, D0oD…Not.
A+
Regarding number 2, extra bonus points for contradictory numbers. For example:
5+ years Java experience
3+ years object oriented programming experience
2+ years programming experience
Also “fast-paced, entrepreneurial environment” usually boils down to “the application you’ll be working on wasn’t written by developers, and we hope you’ll both fix the code and the company, because we’re running out of funding.”
Im working @ a CL position now, its great.
Monster basically staffs code farms and indian call centers.
As you would expect, no company tells of their bad sides when they’re hiring, but as you pointed out there definitely are signals.
I have been through a couple jobs already and I have to say that it can be really hard to see the downsides of some of the jobs before you’ve actually worked there for some months. There are all kinds of heuristics you can use, but they’re not too reliable.
There’s also the problem that all companies have some down-sides, so it’s a case of optimization in any case. You just need to figure out what matters to you the most and go for that. Of course, it naturally follows that the coolest and nicest jobs aren’t as well paid as the ones that not as many would like to do. So optimizing between having meaningful work and having a good salary can be a particularly hard thing to do.
For the programmer it would clearly be best if she knew someone beforehand in the company she’s considering to join. That’s probably the most reliable means of figuring out whether you’d like the position or not. Sadly, this isn’t possible as often as one might like, but I think that building a good network of people can help somewhat.
Don’t forget:
“Require more experience with a technology than the length of time that technology has been in existence”.
When last looking for a job (2005?) I came across a company wanting 10 years of experience with C#/.NET.
How can you possibly have missed requiring certifications of various kinds? Someone with the “piece of paper” just has to better, right?
Don’t forget ‘require longer experience in a technology than the technology has existed’
3+ years Ruby on Rails 2.3
It was released in 2009.
I’ve seen this in the wild.
Oh man, that is some funny stuff!
I think I’ve run into all of these… more then once… HA!
I like it when they use an entire paragraph stating that you will be supporting their XYZ (in-house system), using XYZ-tables & fine tuning the PDQ-reporter with realtime WTF1000! Which all of course means nothing to anyone outside their company or department.
I’m a self taught computer enthusiest who does web dev, networking, and computer repair. I could never land a legit job in the IT business because of #2 (years experience). So, I just started my own business. I guess I’m better off? If I had landed the job I suppose I would just be working with crappy developers.
I’ve seen all or most of these offenses by 3rd party IT recruiters. They often re-write job descriptions with this junk because they think it will sell better.
A little disclaimer would be nice.
Warning: This ad was written, designed, and posted by a contract company. Our client doesn’t want you to know who they are, how much we will pay you, or the fact that you will be treated like a second class citizen once you are there. You’re unemployed, suck it up, apply with us so we can boost our numbers and we can eventually hire a PhD and pay him an entry level salary.
Years of experience is even better when they ask for more years than said product as been in existence. Ex. 7+ years of Flex.
“Real-time application” means the customers are actively using un-tested, pre-beta versions of the software. Each version the customers have are somehow different, and they are all reliant upon the software to manage their core business needs.
Of course, what the salesman said is, “Our standardized software has the dynamic ability to be customized for your specific business needs by setting easy-to-use parameters, and has been through rigorous testing and quality assurance.”
Fixed this for you: “This position involves working with our real-time application” should == “All development will be done on a live, production system. We have no development server and we don’t even know how to spell ‘QA’. “
Well the older filter can often be the reverse.
We figure everyone over 40 only knows Cobol and Basic on MS-DOS or Mainframes, and so if we hire you expect to be buried in the Software QA lab (you can’t do “real” coding) located in the basement so you don’t annoy us by mentioning how things we are doing didn’t work in jobs you held in the past.
Re#2: bonus points for requiring more years than possible:
“5+ years iPhone, Android, or WinMob7 native app development, preferably in enterprise or nucular plant process control environment”
I’ve passed on applying for jobs (craigslist or otherwise) simply because of #3.
I tend to do this:
Okay, have I heard of this company? If No, open google.
What does google find? If some generic website or business card site, pass.
Does the company have information on what they sell? If no, pass.
Seriously, if you can’t describe what you sell on your own website, then I’m not blindly applying for what might be yet another SEO or me-too site.
A properly written job posting should not require having to google the company to figure out what they do. If the company writes games, cool let’s apply. If the company just takes one data source and turns it into another, blah let’s pass.
Hey has anyone mentioned that it is even funnier when a posting requires more years of experience than the age of the technology? Just checking.. because that would be FUNNY!
My favorite requirement that I’ve seen is “1 year experience with ping”
@TechyDad
Boy, I remember when we used to say that about Java… Sad, really
Hurr hurr, don’t y’all love it when thum employurr types want you’uns to have more years of experience than how long the technology’s been around fer? Anybody else noticed that?
Fer example, “you’uns need five years of experience working on the Android platform.”
That’s silly, cause Android only came out in late third quarter of ought eight.
Haw haw.
I ran across one ad that, in addition to the random string of acronyms, required me to have both “digital” and “analog” skills.
Here’s one I hate but, it’s not a bad job req, just a kind of job I’d prefer to avoid:
‘Must handle multiple projects simultaneously’
Sure, in every job you end up with multiple moving parts but, multiple /projects/ – not for me.
“Great working environment, fast-paced and challenging”
Translation: “We’re going to grind you up and spit you out, and if you don’t smile and say ‘Yes, Sir!’, we’re going to really make it uncomfortable for you!”
I personally don’t consider that a great working environment…
@Greg
Wait, what? Really?
Hilarious stuff. I would just put “Seeking a Jack of All Trades” in the subject for the job.
@Greg
“I ran across one ad that, in addition to the random string of acronyms, required me to have both “digital” and “analog” skills.”
Yes, that is called “mixed signal”. Google/wikipedia it.
In my second dot-bomb job, one of the business execs had this brilliant idea (as if he was the first idiot to ever think of it) that the way to determine if a developer was doing a good job was by keeping track of how many lines of code he writes per day. He wrote up this beautiful document describing the process. It must have taken him hours. He wasn’t around for very long after that.
@Joe Rinehart – Sometimes it just means that a company is not too bureaucratic, but just get things done.
@dave – I’m doing it all the time, not a tough thing if you can organize a little and projects typically take 1-4 weeks, but sometimes clients can’t keep up to us. We don’t wait idly but just make some other project.
Uh, actually the “digital and analog skills” is a legitimate requirement.
Any companies doing any sort of signal processing aren’t going to want developers with no knowledge of signal processing.
If you don’t know what signal processing is, guess what – you aren’t qualified for that job. Automatic filtering, yay!
Otherwise, hilarious blog.
To be honest, that is how most swedish companies ads looks like, over and over again and it isn’t getting any better at all.
9 out of 10 companies are now using more or less recruitment companies and they have starting to have GROUP interviews, not a personal interview.
Makes me shiver with fear for the future really.
While it’s always fun to take a poke a poorly written “help wanted” ad, I do have to say that performing maintenance on undocumented systems that were produced years (or decades) ago by people who are long gone is nice, steady work. If you do a good job, your job will last as long as the company does.
These are typically companies that just want to run their business, and all the IT stuff is just overhead. They don’t care if their systems have a three-layer model or a seven layer burrito. They just want them to run.
Once you get in the door and get the money and working conditions issues straightened out, everything else is smooth sailing.
Unfortunately, most technical people just don’t understand business. It doesn’t matter if the ad says they need a “triggle pin operator” (from a poor translation in a chinese hardware manual). What matters is that it’s an opportunity to show up, talk to someone and negotiate working conditions and compensation that are acceptable to both parties.
In fact, you can consider a really awful ad to be an indication that the company really needs help and there may be nobody left who knows how anything works. Maybe it’s full of buzzwords because the HR person just went though a bunch of old emails and picked out “technical sounding” words.
These are awesome job opportunities and should be taken as gifts.
Terry
I like the generic ads -
Software Engineer Level I-V: No soul required…
You forgot:
“Fast paced environment” = “We often skip QA and/or deploy direct to production”
Don’t forget about job postings with the words “Jedi, Ninja, and Guru”, or am I missing something?
I recently landed on a job for Java development. Then they told me I was needed to do “integration”. Then I found out that I will be tweaking some java build process built with windows .bat files. And I went for it. Never tell the job applicant what they are really going to do.
Our company once put “C language experience required; Visual anything need not apply” in an ad and we got tons of Visual Basic applicants. That’s one way to draw them!