Ask Slashdot: Why Are Tech Job Requirements So Specific?
First time accepted submitter hurwak-feg writes "I am in the market for a new IT (software development or systems administration) job for the first time and several years and noticed that many postings have very specific requirements (i.e. specific models of hardware, specific software versions). I don't understand this. I like working with people that have experience with technologies that I don't because what they are familiar with might be a better solution for a problem than what I am familiar with. Am I missing something or are employers making it more difficult for themselves and job seekers by rejecting otherwise qualified candidates that don't meet a very specific mold. Is there a good reason for being extremely specific in job requirements that I am just not seeing?"
I'm under the impression that the more specific a tech job requirement is, the more likely it was written to target one person, such as a specific foreign citizen on an H-1B visa. That or the company just wants to be a cheapskate, wanting the new hire to be productive from day two instead of taking two weeks to train him or her.
A lot of jobs require domain knowledge, meaning that they aren't all that hard, but require a few complex tasks to be repeated over and over. Employers are able to train someone faster if they've been doing similar work.
On the other hand, you're a lot better off as an employer with a smart person with no experience in the field than you are with an idiot who's been doing the same job for years. That understanding hasn't seemed to trickle up toward management just yet. Maybe closer to the point, a manager can't tell a qualified candidate from a blowhard, or an unqualified one from someone who's simply insecure. So they settle for domain knowledge and hope for the best.
You might do better looking at startups. They aren't all ramen and 15-hour workdays, and the environment's usually more conducive to good technical work.
There are lots of reports of this problem. HR departments screen resumes and in order to screen down to a manageable number, they specify (and match for) very specfic requirements.
Unfortunately, HR departments don't understand the hiring managers' actual requirements, leading to job posting that (for example) specify "x years of experience with Y language" when the language has not existed for x years.
The real "Libtards" are the Libertarians!
1) A lot of times, job listings to the public are a required formality when there's already an internal candidate wanted for the position. In this situation, the job description will be written to fit that specific internal candidate's skills as precisely as possible.
2) Job descriptions are crap anyway. If you think you can do the job, apply. If the company doesn't give you an interview because they asked for 5 years C# experience and you only have 4 years, you don't want to work for them anyway. That kind of hellish determination to strictly follow paperwork never leads to a fun work situation.
Comment of the year
The problem is, there are a lot of candidates out there now. A LOT. So we get real specific with what we want, because we still end up getting between five to ten applicants that have those things and thirty to forty who have almost all of them. If we were vague, we would receive probably between 100 and 200 applicants per job. And we're in an area that is NOT tech haveny. We're in the middle of the deep south.
I remember a friend from google telling me they receive , on the average year, around 195,000 candidates, 30% of which make it to an interview phase. That number doubles every year and a half. By being way more specific , they are slicing that number in half. Or more. Instead of ALL the google employees having to interview 50000 (which doesn't count second or third or onsites that also occur), they're trying to do far less.
Employers are facing a glut of software engineers/IT/etc. We're just knocking the numbers down to reasonable levels with these extra requirements. It'd probably be in your interest to go ahead and apply if you're close to all.. but rest assured, if you see an advert for a job that contains a lot of requirements, they will probably get 5 - 10 applicants that meet those around here.. and 300 - 400 in a more tech heavy area like the bay area.
I've had headhunters contact me with jobs. When I say that I don't meet the list of requirements in the job spec, they tell me that nobody else out there does either, but I'm close enough.
There is a good reason and a bad reason.
Where I work, there is very little overlap in skills between the IT people. One person is responsible for the old IBM database, for example. It's not a relational (sql) database, so nothing I know from MySQL applies. When we replace the IBM database guy, we're going to need someone else who knows that exact system. In fact, because there are so few people remaining who know the system, we are engaging in an 18 month project to rewrite everything for MS SQL shortly before the person retires.
My own job is programming Moodle, an LMS with over a million lines of code. That's roughly equal to an entire Linux distribution. Hiring someone with no Moodle experience would be roughly similar to hiring a Linux programmer with no Linux experience.
On the other hand, I once spoke to someone who wanted to hire a "PHP guru". I tried to explain there's no such thing. What he SHOULD have been looking for would be a web PROGRAMMER who knows PHP well. In many cases, skill in the field is far more important than above-average proficiency with a particular tool, but management sometimes doesn't understand that. If the person doing the hiring isn't particularly skilled in the job they are hiring for, they just don't know what is most important. For example, I would argue that for web programming, the WEB part is super important - good programmers who aren't web programmers aren't in the habit of thinking about security at every step, or scalability, nor are they necessarily skilled at stateless programming. A manager who isn't a very web programmer herself wouldn't know that though, so the best they can do sometimes is to look for someone experienced with the tools the company uses.
Ok. I am confused. You don't have the time to have someone on staff, helping with 50-70% of the job, but you do have time to search for 8-10+ months with no one filling the job?
Did I read that correctly?
Ok, I give up, why you?
(Context: I'm a hiring manager; my team builds big distributed software systems. Our choice of language is Scala, but the team chose to use Scala before anyone on it actually knew Scala, and we don't have strong preference for Scala for software developers we hire -- in fact, we don't look for specific language knowledge at all, but rather strong fundamentals (OOP, distributed systems, etc)).
Assuming you're not looking at a company that's gaming the system (others have talked about the whole "I want to hire/promote someone specifically but I have to post a position so I'll post a position only my preferred candidate will satisfy" scenario), the other problem -- and I think this is a bigger issue -- is that most people are just bad at ferreting out talent as part of the interview process, and therefore opt for asking about very specific skills, because testing for very specific skills is actually much easier than testing for talent, for experience, for understanding of the system. Add to that, of course, that if/when your HR group is responsible for job descriptions, quite often they can't conceive of a more flexible, open-ended description because they can't effectively measure for that when filtering resumes.
The unfortunate thing, of course, is that in the end the specific knowledge is probably not even what you're looking for -- certainly, it's not what we're looking for because what we want is the ability to solve very hard, complex, problems -- and these are the sorts of problems that are also hard to ask about in an interview, because any problem you can make significant headway on in 45 minutes is simpler than what we deal with. This really comes down to the fact that interviews are a test, a simulation of a reality (the person actually working with you), and people sometimes opt to build the interview (and the pre-interview process, like the job description) in a way that makes it easier to conduct that simulation, rather than in a way that makes it more representative of the actual thing for which you're testing. It's that "looking for your keys under the streetlamp because that's where the light is, even though you lost your keys in the dark alley" problem.
We post specific 'requirements' fully aware that no applicant will meet every single one (well, it happened once when someone applied for a position after having left our group a few months prior). For us, it's more about describing what the job will entail and attracting people who wouldn't mind working with the stated technologies.
We had once upon a time not bothered listing the technologies we already knew a candidate would not have experience with, but we were inundated with applicants that made clear they were unable/unwilling to work with things they were not already familiar with.
Now we list things knowing full well applicants won't have experience, but we still get applicants and almost always they might be a bit concerned they lack the 'requirements' but they always had the will to entertain learning new things and usually seemed to have the ability to actually become proficient.
I of course have seen the more common thing, some 'public' job offer that was tailor made for a specific guy, but I know first hand some of these things are crafted with total awareness the requirements are not going to be met.
XML is like violence. If it doesn't solve the problem, use more.
I have hired dozens of software engineers over the years. Most of the time I get approved to hire a new staff member because i) the project is late or ii) somebody critical has just left and the project is at risk of being late or iii) its a new project that I have to quickly staff or it will be late.
I usually assume that it will take 4 to 12 weeks to find an appropriately qualified engineer, then 2 weeks for said engineer to give notice at his/her current job and then 2 months to ramp up on our existing product stack. During these 14 to 22 weeks, this new resource is either not providing any benefit to the project or is actually slowing the project down (ie during interview phase and during ramp up phase). This is always bad news and no VP ever wants to hear that velocity in his/her pet project cannot be improved for at least 14 weeks. Now imagine that I have to add another 1 to 2 months of slowed velocity while this new engineer upgrades his or her skillset (or occasionally downgrades to an earlier version). Ugh.
That is why there is a huge preference for people that know the exact tool chain and software stack that the project is already running. Time.
However, I (and most managers) personally don't care if you have some specific sub release of SomeLanguage++ 5 (for example). But you ought to have coded SomeLanguage++ professionally and well within the last few years on some significant project where you can point to some kind of value that you added. Your 2 months of SomeLanguage++ 3 experience from 2001 is not interesting to me.
At large companies, the HR department may very well screen on precise versions of a software stack. Solution: use google to figure out what is significant about that release (if anything) and how it differs from your knowledge about the stack and then add that specific version of that software to your resume. The dev manager isn't going to care that you only used PHP 5.4.3 and not PHP 5.3.25.
Even better solution (assuming its not the gov't or some massive corp): Find out who the hiring manager is and somehow get introduced to them. The devil you know. I totally prefer to hire people I have met that are known to people in my network. Why? Because I trust my network. I do not trust the Internet.
Either way, the manager will want you to be able to prove in the interview that:
a)You are a good person who is reliable, easy to work with, dependable and can hit the ground running and get me out of the hole that some sales guy dug for me
b) You have specific knowledge about the technologies that you claim to know
c) You have work experience to back up your claims
d) You have the skills and capabilities to succeed as an engineer in my organization
e) Ideally that you can do more than what is minimally required for the job
I specifically recommend that you do not complain about the job posting in the interview. ;) Actually, don't complain about anything in the interview.
The job market is very tight, so employers are spoiled for choice. They will seek employees who can hit the ground running immediately. In this environment, they see even a week's learning curve as a waste, and would rather hire someone ordinary who can be immediately productive rather than someone great who might take a little longer. Watch out for this changing as the economy recovers, and jobs again become an employee's market.
-- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
People in IT tend not to understand that how the rest of the world operates is vastly different.
We rightfully or wrongly think we should just learn on the job. That we have the skills in terms of general programming and people should just hire us and we will learn whatever specifics are needed.
The rest of the world simply does not work this way. They operate on a you go to school/learn a trade and then you do that specific job... and you should be able to do it. As a result, when you have people trying to hire for a technical position, the HR person will tend to put in the requirements as they know.
Now some HR people are getting about this. Some hiring managers are getting smarter and putting in more general requirements. Some HR people are getting smarter in terms of not screening so much for key words... but the general problem is the same.
The rest of the world operates very specifically. ...
A brain surgeon doesn't just get hired as a heart surgeon.
A divorce lawyer doesn't just get hired into a corporate law position.
A bus driver doesn't just get hired as a truck driver.
An electrician doesn't just get hired as a plumber.
A fork lift operator doesn't just get hired as a crane operator
And if you take yourself out of the tech bubble for even just a second, you would see how the rest of the world works. The amount of training someone else gets before they touch a new piece of equipment or even a process.
Again, I'm not saying how we do things is right or wrong. There are pros and cons to everything. But just understand the rest of the world operates much more like the very specific certifications that you complain about.
My own job is programming Moodle, an LMS with over a million lines of code. That's roughly equal to an entire Linux distribution.
What are you smoking? Just the linux *kernel* is roughly 12 million lines of code. Firefox is 10 million lines of code. The GNOME desktop framework is 8 million lines of code. The GNU compiler is 6 million lines of code. Chromium is 7 million lines of code.
That's just a smattering of the packages that can be found in a linux distribution...