Programmer Job Ads: It's A Bird! It's A Plane! It's SuperCoderCoolMan!

June 13, 2007

After razzing on programmer interviews, it's time to turn my attention to another irritating fact of the programmer's life: idiotic job ads.

Ads are to IT shops and companies what worms are to anglers, basically bait to attract people before reeling them in. What once was a fairly basic request has now morphed into a laundry list of alphabet soup and hoary cliches. I often wonder who writes these nuggets; sometimes it's fun to read through a set of ads just to imagine what funny stuff the writers were smoking at the time.

Somehow I get the impression that a lot of hiring managers imagine that there is a place in the country where all the great programmers hide out, just waiting to pounce on the awesome resume that the manager has just put out. The perfect programmer appeareth; the average I.Q. of the department goes up 50 points, all the troubles of the company will fall at his/her feet and the other coders bow before their mighty new coworker. Not to mention the manager will look like a genius.

Fat chance. I dare say that most resumes will scare away any really good programmers. With the advent of the acronym heavy ad, prospective employees tend to pad the resumes with enough buzzwords to match (and if they won't the recruiters will add them). Managers then find that the matching candidates are mostly unable to back up their resumes, so the next ad gets even more detailed, leading to an ever expanding war of tit-for-tat.

I think some hiring managers (maybe most of them) feel that their staff is very superior and desire to hire someone perfect to match their ideal. Either that or they feel their staff sucks and they need to desperately hire someone to average out the poor coders. When you read job ads you get the idea that the company is seeking the perfect candidate. I've always wondered how many of the programmers (who may have been hired out of desperation or during some early era when requirements were more realistic) that work there already would even qualify based on the new ads.

Here is an ad several recruiters sent me recently (you can't stop recruiters once they get your email). It's a good example of what I find silly in ads:

Job Description:

The position requires a senior Software Engineer to become part of a mature software team involved in analyzing business and technical requirements, and designing, developing and integrating web-based systems in the Solaris, UNIX / Linux, Oracle, Weblogic / JBoss environment.

The engineer must be proficient with the full life-cycle object oriented software development process, well-rounded in both requirements analysis and technical development aspects.

The candidate will be expected to analyze complex business requirements and processes, prepare application system specifications, and participate in hands-on development tasks (design, code, and test) to implement efficient, cost effective application solutions.

The candidate must be willing to work as a team member or independently with limited supervision, follow guidelines on design, coding and other departmental practices, and work well with others on aggressive project schedules.

The candidate must have a willingness to grow technically and assume larger responsibilities, when required.

Required Skills:

Must have experience with recent production grade software development across any tier in the J2EE application framework applying OOA/ OOD/ UML using industry standard Design Patterns

The position requires strong Java, J2EE, Web application development experience with demonstrable proficiency in the following technologies: Java, J2EE framework, ICEFaces, JBoss, JSF, JSP, JavaScript, JDBC, Servlets, Applets, HTML, XML, XSLT, Web Services, SOAP, JMS, Rational Rose, NetBeans, Forte for Java, JUnit, RMI, Ant and CVS.

Start with an amazing list of knowledge and experience requirements, throw in several completely pointless points that are the same in every job, sprinkle in the odd (must be willing to work in a team or not), demand perfection and generally save the world from damnation. This example is actually not as bad as many that I see; I have seen ads that were 100 lines long and detailed every thing that the coder might ever be required to do in government-like language.

I think hiring managers often forget that the job ad is bait, you can't just supply a long list of what the company needs, you have to supply something to attract potential employees to even want to consider working for you. These type of ads rarely catch a really good programmer's attention (unless you are really needing a job); it's like advertising how sucky and anal retentive working at your company will be. It's a two-way street, both parties need to want to come together and do business. Especially in a tight job market you can't expect that hidden genius to jump at the chance of working for you.

Listing every known technology your company has ever used in a job ad is also silly; there are so many valid combinations these days that exact matches are highly unlikely. If you are looking for a Java programmer, for example, with several years experience, they have either built web applications or swing/swt applications. Either way they will have used some set of typical technologies along the way and likely learned them on the fly. They used tools, learned frameworks, dealt with deployment and testing; you can't actually spend several years writing code and not have used something. Why force people to pad their resumes and lie in order to meet your precise requirements when in the end you will hire an imperfect candidate anyway?

The funniest thing (if you like dark humor) is taking one of these jobs (assuming you can get to the point where they throw in the towel and hire the next person who walks in the door) and then discovering the job is nothing like the ad at all. The fantasy gives away to the ugly reality that the work is dumb, the code is horrible, the coders are depressed or broken and the management lives in a dream land.

No wonder people are abandoning programming as a career.