Job Ads Should Always Be Edited

August 01, 2015

I plan to write a larger blog post on “An Employers Guide To Hiring Better Programmers” later but for today I just wanted to tackle one of the most irritating parts of a job search - reading job ads.

Frankly job ads are all terrible, just some are more terrible than others. A job ad is an ad — it’s one way a prospective employee is attracted to possibly making contact. The whole point is to get someone to send you their resume and possibly begin an evaluation process. This is really no different than a billboard telling you why you should buy a Hyundai, or a flower attracting bees, or a political ad getting people to vote for someone. Would you buy a car if the ad included “frequent breakage and snail-like acceleration”, or would you fly to a flower in the shape of a raid can, or vote for a politician who said “sometimes I lie”?

Job ads frequently contain language that screams “don‘t apply here, we‘re stupid people” or “danger, Will Robinson, terrible pain ahead”. The job ad should give just enough information so the job prospect knows they might be a match, enough positive spin to make it at least seem like a good place to work, and hopefully enough financial information to make it seem worth the effort. Nothing more!

When‘s the last time you saw such an ad? Probably never but if you have you should congratulate the company or agency or maybe even apply!

I will be looking for a job once I am done with fixing up my house (so I can move closer to a job) and some remote work so I hope I can improve the job seeking environment a little. Actually I don‘t expect a lot—people have been writing job ads for 50 years and still haven‘t learned anything about what works.

Here is an ad I have been seeing in my inbox (I get ads from various places every day). This one is a perfect example to criticize. Searching on google for some key phrases (there are so many stupid ones they are actually easy to search for) it appears than there are nine places the ad appears although I am not sure how many recruiters are actually using it, some may be copies. The job is local but I have no idea who the actual employer is.

The ad itself, followed by my commentary afterwards:

Requirements:

  • Experience with Native iOS/Android application development
  • Experience with Android version 2.2 and above (specifically 5.0 and 5.1), and iOS snow leopard and above version
  • Strong knowledge of Eclipse ADT/Android Studio IDE, and Xcode 4 and above IDE
  • Strong knowledge of iOS and Android application build/distribution process and code signing/provisioning for * publication/development
  • Strong knowledge of object-C, storyboard and Xib
  • Desired experience developing with fragments and adapting UI for big form factors like tablets on Android
  • Experience with Maven build, and Gradle build framework used on latest Android SDK versions
  • Experience with REST service
  • Experience with migration and update projects designed for older versions of the iOS/Android platform

Responsibilities:

  • Build solutions using the technical requirements for the implementation of the mobile solution
  • Understands the team organization‘s direction, structure, and requirements
  • Takes input from supervisor and appropriately and accurately applies comments/feedback
  • Understands the necessity of project standards and applies them consistently
  • Researches mobile development and applies to assigned tasks
  • Prioritizes multiple tasks effectively
  • Design, develop, test and implement mobile applications.
  • Conduct testing to ensure that mobile apps are functional and built per user specifications.
  • Develop detailed application design specifications aligned with overall architecture and user experience.
  • Develop documentation, flowcharts, layouts, diagrams, charts, code comments and clear code.
  • Develop and implement back end code.

First off the bat, the ad is stupid in that it expects to find someone local who is a highly experienced programmer in two competing technologies, Android and iOS. Sure there may be people who can do both but it‘s not possible to be really good on both, they are radically different constantly growing environments and just keeping up to date in one is hard much less both. You wind up being mediocre in one or even both. If for some reason you are really good at both you should expect a really high salary not available in this area. The employer will not want to pay enough to warrant such a rare talent. So the only reason to want such a dual expert is to save money so it‘s not likely they want to pay enough.

I am very good at iOS and it‘s still a burden just to keep up and learn all the new stuff each WWDC. For Android you have to keep up not only with new features but manage to build software than spans 4-6 major versions of Android and dozens (out of thousands) of configurations. Everywhere I have been each platform was worked on by a separate team or individuals. Expecting someone who is able to keep all this stuff straight much less learn all the nuances is unlikely.

You can ask but you will only get two kinds of applicants (1) those who know almost nothing about anything who assume the employer knows nothing or (2) people who only know one and hope they can BS their way in on the other. Even if you find the mythical dual expert they won‘t work for you because you won‘t pay enough.

Now to the ad itself. It‘s terrible on so many levels.

  • Experience with Native iOS/Android application development

Asking for the mythical dual expert. Just hire two people already, if it‘s a short term project you will get it done faster. Easier to hire two good people soon versus waiting for a unicorn.

  • Experience with Android version 2.2 and above (specifically 5.0 and 5.1), and iOS snow leopard and above version

Oh please shoot me now. Did anyone with a brain read this first? iOS snow leopard and above version. First of all it’s Snow Leopard but that is OS X. iOS has numbers not names. Who would answer this ad with such an enormous wart in the copy?

  • Strong knowledge of Eclipse ADT/Android Studio IDE, and Xcode 4 and above IDE

So useful to know that the only tools you can use are required. It‘s like Uber requiring people with a car (yes I know they want to provide some in the future). This is pointless (a theme I will repeat a lot).

  • Strong knowledge of iOS and Android application build/distribution process and code signing/provisioning for publication/development

What the heck does Strong mean? Pointless, just mention experience building and distributing apps. The rest of the line is jibber-jabber. I do know people who have worked on apps but never submitted anything to an App Store or Enterprise so this is necessary.

  • Strong knowledge of object-C, storyboard and Xib

Again with the stupid misspelling. It‘s Objective-C. If you want to mention the rest call it Interface Builder not Storyboard and Xib.

  • Desired experience developing with fragments and adapting UI for big form factors like tablets on Android

It‘s a list of requirements, what is the point of “Desired”? It‘s not a request for sex. Why not just ask for building apps for multiple device resolutions including tablets? Even on iOS this is important, having an understanding of AutoLayout.

  • Experience with Maven build, and Gradle build framework used on latest Android SDK versions

I don‘t know why you would need either of these to build an Android app with an IDE but I‘ll allow it. Perhaps an existing project uses them.

  • Experience with REST service

I would prefer “experience consuming a REST API” but OK.

  • Experience with migration and update projects designed for older versions of the iOS/Android platform

Aha, something important. This tells me the job involves updating old crap, something I have been stuck with recently. It should say “updating”—how long as it been since grade school? There is nothing wrong with working on making old stuff newer, sometimes it can be fun. Other times it can be horrible. This line at least tells you something. Mentioning iOS/Android again is silly we are not talking about updating a Perl script.

Now on to the next section. Oh what an ugly pile of nothing. Job ads always seem to include such crap for no apparent reason. Tradition? When you write such an ad this is where the good stuff should go, giving the job prospect a reason to apply. Instead we get a laundry list of meh, or what I like to call Instructions On Being A P.O.W. At Our Camp.

  • Build solutions using the technical requirements for the implementation of the mobile solution

Do what we say or we will kill you. Well, maybe not exactly that last part. Why is this even here? It‘s not an ad to come and read Reddit all day.

  • Understands the team organization‘s direction, structure, and requirements

Most places are so messed up no one knows what the heck is going on. Why should the new person?

  • Takes input from supervisor and appropriately and accurately applies comments/feedback

Right, we want slaves who don‘t shoot the master. Why not put in “does not bring gun to workplace”.

  • Understands the necessity of project standards and applies them consistently

Who does this? Everyone understands what standards are but generally they are as common as unicorns. As to a reasonable standard being applied consistently I would rather just ride a damn unicorn. This kind of statement means absolutely zip. In fact it makes the employer look like a prison.

  • Researches mobile development and applies to assigned tasks

I read technology stuff every day and have been for my 34 years as a programmer. There is no need to put this in an ad. It‘s part of being a programmer.

  • Prioritizes multiple tasks effectively

What does this mean? This ad is starting to get on my nerves. Who decides how effective I am when you pile ten projects on me at the same time? If you put this in an ad people will think the employer likes to overwhelm employees with too much work. Assuming anyone has read this far without skipping to the next ad this sure makes it sound like a terrible place to work. Work here and lose all hope.

  • Design, develop, test and implement mobile applications.

As opposed to reading Reddit all day? Watching cat videos? This is a duh line. It‘s like writing an ad for ditch diggers and listing ditch digging as a requirement.

  • Conduct testing to ensure that mobile apps are functional and built per user specifications.

So no QA? Sure programmers should test their code up to a point but programmers should not test their own code for production. That is a real speciality. So here you are telling me the employer is too cheap (or too lame) to have QA?

  • Develop detailed application design specifications aligned with overall architecture and user experience.

Oh great, no agile process of any kind. At least they didn‘t mention the dreaded SDLC. Another reason to avoid this place.

  • Develop documentation, flowcharts, layouts, diagrams, charts, code comments and clear code.

Who writes documentation? Flowcharts? This line is so pointless it may as well go in the ditch digger ad.

  • Develop and implement back end code.

This line is funny. Why? There is zero mention anywhere else of back end code. Writing code for the server side is a whole other technical speciality not specified anywhere else. Cobol? .Net? Java? Brainfuck? Don‘t put stuff in a job ad that is not consistent with the rest of the ad. Where are you going to find a mythical three-header monster programmer? Especially if one head is a variable.

So what should the job ad have? First of all hire two people. Or three if there is a server side that you have no one to do. You will get applicants faster than waiting for a unicorn. Sure it might cost more money. But if waiting a year for a pointy horse isn‘t costing you money since you are getting nothing done in the meantime then why hire anyone at all? This isn‘t magic you can‘t snap your fingers and Superman will appear. The list of just iOS ads in this area grows every week, there are simply not sufficient experienced programmers to fill those, much less the supersized dual threats.

Leave off almost all of the Responsibilities section and replace it with some reasonable happy points of why working at the employer is a good thing. Maybe they are not necessary but remember this is a job ad. Why should I work there, as opposed to the other 20 places? If you want a unicorn, maybe mention your grass is greener.

Make sure everything in the ad is spelled correctly. If a resume is filled with misspellings would you hire that person? Likewise why should an experienced programmer work somewhere that doesn‘t even pay attention enough to ensure the ad is correct. Sure maybe the ad was written by someone with no idea what any of it means, but if you are hiring someone at $100K you would think that spending a few minutes checking the copy first with someone who knows is a good investment. Heck it might be a nice startup, editing job ads for the clueless. Is it worth $500 to ensure you get better candidates or any at all?

Finally understand what you absolutely are looking for and what is less important. Here the employer wants to hire a unicorn who doesn‘t exist (or at least not at what they are willing to pay). Realize that if the work is important enough to hire someone, hire what will make the work get done in a reasonable way, and not expect Wonder Woman to fly in to make it all good in an instant.

Remember this is a job ad. It‘s a carrot not a stick. You want good people who make your company better, not to fill your prison with prisoners. You want to attract enough good candidates who can then pick from, not wind up with no one (this happens a lot) or only get random people who are hoping to BS their way in.

Advertising is much older than programming (even in pre-destruction Pompeii the local brothels had clever ads to get people to visit), maybe the job ad world can learn something from it. Or you can just keep making all these mistakes and get nowhere. Good luck with the unicorn hunt.