Employment in America: WTF is going on?
corcodilos.com
corcodilos.com
Successful hiring is an outgrowth of successful management. Know what you are looking for in new workers--not just what they should be able to do the day they are hired, but what they will grow into as your company grows. Be clear about the difference between hiring clones of yourself whom you'd like to have as friends and a diverse workforce full of smart people who get things done.
As my FAQ says, use work-sample tests for all your hiring. Don't trust educational credentials, but rather verify. Use legally safe means to find out who is smart and can learn more on the job. (References and expanded details on these points are available at the link.)
The people the hire managers and promote people to managers rarely stop to ask:
(1) Can this person keep the people underneath them happy and productive and make them happier and more productive? and (2) Can this person actively seek out other people to work under them that are productive?
Hiring in too many businesses is outsourced to HR. i.e. A department manager goes to HR and says "give me someone who can do X, Y and Z". HR is then left with only keywords and has little knowledge of whether or not a candidate with a differing skill set could also perform the job well or better with a little training. Only the department manager has enough knowledge to hire correctly for the needs of their team. Why we ever let them get away with outsourcing this core responsibility to HR is beyond me.
I certainly don't want to actually hire anyone unless I absolutely have to, and even then I will get "independent contractors" or use temps if i can first.
I've read in many places that startups and small businesses are a very important engine of economic growth in the US. Since that O(1) obstacle disproportionately hurts small businesses, it could serve as a long-term brake on growth.
In the UK the government pushes people to become "self employed" as it flatters the unemployment stats before that it was encouraging doctors to sign people of as disabled and on to a different benefit.
For example, the US employer-provided-healthcare thing is an absurd burden on small businesses (and medium business, large business, and for that matter, the entire concept of labor mobility) that absolutely needs to go.
Of course, the better question to ask is more simple: how much is your time worth when it comes to hiring?
Because hiring takes time amount X, which presumably has value to you. But an employee will cost Y - somewhere on the order of say, let's say $50,000 - per year, in outgoing salary to them. So the question is, how large is X? How much money are you willing to spend hiring someone, considering that an employee, even if you had to do nothing, costs you $50,000 a year.
There's a few dozen billions to be made by the person that fixes the problem. I wish I could comprehend the scale of the problem - it'd be nice to be that person.
Most of the help we give to the unemployed is contingent on two things:
1. They don't have income and
2. They are looking for a job.
That seems like a great way to test for unemployment benefits but what it fundamentally does is ensure that if you are unemployed and need the help you can't try to supplement through self-employment. Thus our current unemployment assistance largely works to discourage new businesses from starting.
A better system would be a mandatory severance system where if you find yourself unemployed, you get a lump sum. You can look for a job, become self-employed, try to start a business with it, or any combination of these. But when it is gone, it is gone.
Lending is the lifeblood of any economy. If you play around with the rates, significant outcomes can happen. And the Federal Reserve, through the FOMC, has been influencing the interest actively since 1979.
Yes, hiring unexperienced people and training them is an option, but you can't do that for your entire engineering team. Hiring new grads isn't a problem, hiring people senior enough to make those new grads productive is.
In short, not only is this post an advertisement, it's not even an accurate one. The talent gap is a significant problem, and it's only going to get worse if we don't acknowledge it.
Or let's say someone with Java experience is available but you are looking for Scala. I just use these as the initial comparisons but I'm sure there are more. Can you not let the python person train up on Ruby on Rails and have a strong candidate?
I understand its best to match one to one what is being looked for, but I wonder how many good candidates are being passed by because they don't fit the perfect stack but are likely able to perfectly adapt.
I feel a lot of employers are exceptionally bad at communicating their actual requirement. Ironically, one of the sure sighs that your job description is bullshit is having a line that says "excellent communication skills". Anything about "fast-paced environment" too.
Bringing it back to tech specifically, in my (anecdotal) experience people are rarely bothered by lack of knowledge of a specific framework assuming that the candidate has experience in something similar, or more generally if it is safe to believe that the candidate can get up to speed and contribute in a reasonable amount of time.
At this point we are of course just comparing anecdotes. I will also note, though, that there are a lot of very different subsectors within tech, and hiring practices vary widely between them. In accordance with the venue I am here mostly referring to startups (including late-stage startups).
I suppose the salaries of engineers are evidence enough that there is a talent shortage. Though, I've been perusing for a job and would not respond to maybe 85% of job postings because companies can't clearly articulate what they do and what the position they're offering is. I've been to plenty of interviews where they clearly haven't looked at my github, and then ask me odd, incredibly domain specific algorithm questions, and then turn me down as untalented. I've been to plenty of interviews where they think I'm talent, but in all their bragging about how talented their team is, I see signs of lazy engineers.
I think your judgement of how small the hiring problem is is way off. Coupled with companies' unwillingness to hire and train mid-level engineers to senior level (which really only takes a few months with an interested candidate) is the bigger problem.
Re job postings, most jobs are not filled through job postings. If you want to find a job at a company that knows how to hire, you will have much better luck if you find the opening through networking or a referral. I have literally never got an engineering job through any other channel. (Note that this does not serve as evidence toward your indictment of HR, most networking/referral hires still go through HR to at least some extent).
I think in most companies yes, they're off the list. Bottom line-ism is king these days. Companies see bringing someone in and up as a cost, not an investment. All they want to do is pull from the well, but not put anything in. They want perfect fits, and they want other companies to make them. It sounds like a frighteningly random and risky policy.
You can find this paradigm in many econ/business courses. You invest in capital; you pay for labor.
Yes these can be learnt by a motivated junior developer reading books and the like, but they can be taught and explained better and faster by a senior developer.
Case in point when I started at a real programming job, I already knew how to program pretty well, but it was the other organisational and system design concepts that I needed help with.
Pragmatic Programmers was always a fun start for me back in the day, even some MS Press and plenty of O'Reilly.
Most of what I learned came from blogs and time spent at a computer, however.
There's no substitute for practicing the art of programming to learning actually useful programming skills. Write, run, rinse, repeat. Have fun :)
Oh and when applying for jobs, I found http://pragprog.com/book/algh/land-the-tech-job-you-love useful.
It comes down to living in the trenches yourself or learning from someone that has already done so.
But that's rails... ruby is a pretty strong language, and it's a much closer map to python than other options. As for your other languages...
Someone who's spent their life in PHP with no experience outside that language? At this point, I'd probably pass on that resume. The problems I deal with require a breadth of experience in deeper software engineering-y topics: networking, storage, maintainability... my assumption would be that you haven't been given hard enough problems that require you to get outside of the PHP box, if that's all you've ever done.
Similarly Java vs. Scala. I see a lots of J2EE resumes, and my experience with interviewing those folks is they may understand the J2EE/Hibernate/SOA/webapp stack, but when it comes to non-webapp problems, they're lost. I'd be more likely to talk to someone who has Java, C and Python experience, but no Scala, than someone who's got a broad Java base but has never branched out of that particular language. Scala experience, whether or not immediately relevant, is more likely to be correlated to be harder problems, self-development and exploration -- at the very least, that someone is trying to keep up with industry trends.
Maybe my J2EE and PHP judgments aren't fair; but they're heuristics developed over some time.
As a guy who's always looking for advice on getting an entry-level position, I've been told to learn a dozen or so technologies before applying for a junior position: HTML, CSS, JS, Python/Django||Ruby/Rails||PHP, Linux, Data Structures and Algorithms, Photoshop, Design Principles. I also need to have some good quality projects and approach hard problems, which can be time-consuming and difficult on your own. Even then, some places filter out candidates who don't have a CompSci degree.
To me, this seems a little high for a junior position (Any company, not Google) and sounds more like a full-stack web developer (I'm just shooting for a Front End spot). With no professional experience, there's no way I'm going to be proficient in all of those domains unless I spend a long time learning on my own and that doesn't exactly pay the bills.
As the problems get harder and more people drift towards CompSci, the requirements for even a minimum-level position will continue to increase, while the time to learn all of the requirements remains the same. This will hurt the talent pool in the long run, although people that have been riding the wave will command very large salaries if the talent gap continues to widen.
The way I would approach it if I were gunning for an entry-level frontend dev position would be to just start building webpages. Start with HTML, and layer on CSS. Make it interactive with Javascript. Now serve it up from the backend with Django/RoR/PHP, which will also teach you Linux. Work with it for a while and you'll see the reason to learn Design Principles. You don't have to learn everything about those topics at once, but as you face new problems with your webapp, you layer on new skills.
Having some experience in one of those frameworks is certainly useful but it's not really a requirement of being a front-end dev.
As long as you're intelligent and can use Google you'll pickup working knowledge of a language or framework quickly. This is why the best companies hire people based on who are they are, not what they know.
There is also the semantic issue of how deep one must understand a language or framework. For example; I build custom WordPress themes and have a general knowledge of PHP but I'd never put on my resume that I know PHP. Not because I don't want to work with it, but because working knowledge doesn't constitute extensive knowledge.
If you want real advice for getting an entry-level position, it's actually quite simple. Step one: build things. This will help you develop the necessary skills to contribute to a team. Step two: tell people about them. The majority of job openings are filled through referrals and networking; sending in resumes to job postings online is a very inefficient use of your time.
I expect I would have significant trouble getting hired to do a different specialization, like parts of a videogame engine (say c or C++ or python or lua). So as long as database backed websites are in demand I'm probably ok, but if those disappeared tomorrow I could become a statistic - if everything becomes apps, I'll manage, but that round of interviewing won't be as easy as the last few rounds of interviewing were and I'll probably have to take some personal time developing a demo to talk about.
I've seen two friends with mainframe experience end up having lots of trouble finding new jobs - they could certainly program, but had nothing they could point to that seemed relevant to the web dev jobs. And a friend who works on videogame engines is trying to make a switch to websites and it's looking hard to make that switch.
So, I don't think it's strictly along language lines, but I do think employers are hesitant to sub in one type of programmer for another. I'm not convinced they are wrong - there's lots of specialized knowledge to pick up along the way that mostly seems to be taught by screwing up a project at some point, and it's safer to hire somebody who has already screwed it up elsewhere once.
Here's the thing. I don't have a CS degree. I can program financial systems pretty well, but I am not a CPA either. I know enough about these things to have intelligent discussions with accountants and CS experts.
However I engineer frameworks for building accounting systems. I can do this self-employed. Nobody asks me for credentials. People find the software and they come to me for services. I also provide database consulting.
However from time to time I get job offers. During tough times I have inquired about them only to find out that I am "not qualified."
So I am "not qualified" to do a job for which they will pay me less than what folks pay me otherwise, largely because I do not have a piece of paper saying that someone else says I passed some classes. So I don't care, get back to running my own business, and work on growing that.
Excessive credentialism is a problem here. Companies don't know how to recruit, and they expect HR to do the wrong things. Resume-screening by HR is the single biggest problem in employment in the US today.
That's usually the key point. I have a number of friends without college degrees that do just fine. Their usual modus operandi is to meet someone from the company at a conference, consult for them for a while, and then get hired once the company sees how awesome their work is.
I wish this weren't needed, but hiring managers function under conditions of very low information, and they wade through too many resumes of low quality to avoid filtering it on some criteria. Degrees and GPA are the most easily quantifiable filtering criteria, and so that's what makes it into the filtering software.
I think what's ultimately needed is a way to reveal more information about a candidates' abilities in a very short amount of time. Contract-to-hire works for this, but has the problem that many candidates (and in particular, good candidates) don't have time to devote to a project that may lead to a job. So does tokenadult's persistent suggestion of a work-sample test (and HireArt's implementation), but these both have the problem of being able to cut down an employee's daily duties into a small problem that can be given as a short task. Many of the skills that a really experienced employee brings to the table are only evident on long, hard, extremely challenging problems.
People must stop begging for jobs
It’s time for people to stop thinking about jobs, and high time
to start thinking about how — and where — they can create profit.
If I run a company, I’ll hire you to do work that pays off more
than what I pay you to do it. Today, virtually no employer knows
whether hiring a person will pay off. That’s why you need to know
how to walk into a manager’s office and demonstrate, hands down,
how you will contribute profit to the manager’s business. That’s
right: Be smarter than the manager about his own business. Stop
begging for jobs. Start offering profit.
Because if you can’t do that, you have no business applying for
any job, in any company.
I haven't seen too many software development positions in large companies where you can walk into a manager's office and demonstrate you are smarter about the manager's own business than he is. I know more about your specialized domain than you?
I know more about design for your specialized domain
than you or your designers?
I know more about the algorithms developed in your
specialized industry than your engineers?
I know more about database design used in your
proprietary application?
I know more about the customers for your specialized
domain and their needs than you do?
And I'm supposed to be able to claim that for any software development company I interview with regardless of industry?I enjoy working in software, and I think I am pretty good at it, but one aspect I enjoy is that moving from company to company I learn about new domains, new industries, new algorithms, etc.
A-players are not threatened by this. B-players are. I've found that it is generally good for your career to try to work with A-players whenever possible and avoid B/C/D/F-players.
I think he said that HR departments suck at hiring because they outsource to tech companies who use keyword searches.
I could be wrong, but I think the problem is a bit more complex than that.
This. Personally, I completely and absolutely blame the employers for this mess that they have "talent shortage". I am amazed with the whole recruiting ecosystem if there is such thing here. People are the most important assets of a company and giving this responsibility to a third party (read vendors/recruiters/agencies) just does not work. But again, most companies do not really bother about this. Until we stop calling people as "resources" and "head counts", this broken recruiting model will never change.
These "vendor databases" that he is talking about is a major irritation. I still get emails from some random recruiting firm where I might have sent my Resume as a fresh desperate undergrad 10+ years ago. This needs to stop.
...12 months later...
Why do none of our employees have industry standard skills? Lawd, it's so hard to find good people!
Just because you paid for the training, does not entitle you to keep paying someone in perpetuity at their salary before being trained.
Selecting arbitrary numbers to keep things simple, if it costs $1000 to train the employee, and you want a 10% ROE then you expect to earn $100 per year more on that employee, forever. If the employee leaves they take that $100 per month potential away.
This leaves a few paths for employers: 1) Pay less until you have a return of capital, 2) Dont up the salary after the "asset" is upgraded, allowing you to get a much ROE as possible. 3) Dont hire untrained people, so you can capture ROI from others' training.
All of the above ignores the opportunity cost of not hiring. I presume for most profitable and busy companies, the lost opportunity is greater than the cost of training.
That's not what "diaspora" means.
"Job descriptions heavily larded with keywords make it virtually impossible to find good candidates. But every day that an impossible job requisition remains unfilled, the employment system vendors make more money while companies keep advertising for the perfect hires."
... I'm a big believer that the market will shift to "pay for results", not "pay for subscription access to an aggregated database that you have to hire 4 people full-time just to sift through".
"...employers believe they save money when they leave jobs vacant, because their accounting systems track the cost of having workers on the payroll — but cannot track the cost of leaving work undone."
Meh, not really the problem. Every company realizes there is a buyers market (sans Technical) for every position, and can interview 20+ people for a help desk role.
No training is available because, what is the ROI? I know several companies (this is SLC) who don't train even for automated testing. After the testing, the employees find a better job.
Symptom or syndrome? Symptom is employee skills > company re: new job, vs higher position in company (or, in better English, training leads to employees finding better companies, vs staying with a current company and building that company.)
There is no loyalty amongst most companies for training or career development, as the ROI is not there (under utilization, a fallacy of implementation).
Should your company be based on ROI metrics per-project, and per-resource? Do you call your employees resources?
Utah (which has a large influx of Silicon companies trying to find cheap labor (typically they do) at lower cost of living thus for salary (typically they do) can look at 20+ candidates with marginal requirements met (experience/projects), but, it is a buyers market. Its not panacea like Silicon Valley, and SLC is rated very high for business, tangentially, you should be able to find top talent for top dollar.
Talent shortage, there is not, but training / development there is, and no company wants to take that on, because companies realize loyalty exists at a quarter-quarter statement (worse with a PE firm), so how do employee's progress? Change jobs every 2-3 years for a 10k+ raise.
I realize I am ranting, but skill matching to a position is broken, and no automated ATS system will fix a resume/pubic facing publication.
/end: The "problem" at a symptom level is companies holding out for "best of best" when they probably do not need such candidates, and could train for such. Given, a SharePoint admin at $20 / hr (case study), they found it, after I placed them, and they left after six months when they realized their skill set warranted a $20k raise.
Companies can under pay undergrads and mid-level candidates (who are not ivy/target/"rock star guru beer whatever") and do so, only to find a high turn-over rate.
Fix turn-over rate? Or just keep filing the desperate mid-esque level folks who just need work and would fulfill Senior level demands of work fulfillment?
/ranting
But instead they just give no raises, or even insult their high performers with a "generous" 3% and cause resentment and lower morale.
Median(1,2,3,3,3,4,5) = 3
In tech, on the other hand, it can be $70k for a fullfilling job vs $200k for a boring grind in say finance...
But you get useful results if you (a) ask people how happy they are (even if they exaggerate and understate, the ranking is generally accurate), and (b) ask people if they're getting X in the company, and then measure the correlations (and do a bunch of tricky adjustments for factors that are interrelated).
I.e., you don't ask "is a fair boss important for you? are office conditions important for you?" - but, if for example, on average the people who think they have a fair boss are feeling happier than those who think they have an unfair boss; but those who think that the office conditions really suck are just as [un]happy that those who feel that the office is okay - now, that's useful signal.
One former employer, with (guessing) a median employee duration of 15 months, would complain endlessly about how hard it was to hire. It was frustrating to see really good employees already trained on a very complicated internal hadoop variant walk out the door; somehow, the dedicated team of 7-9 recruiters (including managers) costing probably on the order of $1mm/year fully loaded; countless hours of engineering time phone screening and interviewing; and the opportunity cost never made management pay people what they could get elsewhere.
Oh please, no. Anything Congress touches risks dying like a baby between two pit bulls.
Maybe the Pitbulls in Australia are different but I doubt it.
I can't say whether or not there is a genetic component to incidents of mauling involving pitbulls, but people are a large part of the problem too.
Maybe job postings should be bonded. Put up $20k per position and forfeit it if you have not filled the position in X months.
Bonding agents would drive down the cost of binding to a pretty small amount and/or enable bonding requirements to rise so that it is prohibitive to lie about open positions.
Losing a bond of some tens of thousands of dollars is only justifiable for truly high-value positions, and that's what H1-B is supposed to be for, not phalaxes of warm bodies for contract shops.
In one sense the reason we still have unemployment is simple - we never had a classical recovery from the recession, we just had a return to normal growth. If you look at almost any historical recession you'll see a spike in unemployment, a dive into negative GDP growth, and a dive in inflation. Then, during the recovery you'll see a spike in GDP growth, a spike in inflation, and the employment level recovering to what it was pre-crash. This recession didn't have peaks in growth and inflation, just a return to normal. If you just looked at the GDP and inflation charts (or a combined NGDP chart) you'd expect that we'd still be having high but falling unemployment right now.
And I could get into a big, long discussion of why this happened involving IOR, and the Fed relying on indicators that are always months out of date, and zero bounds, and certain coughdallascough Fed regional bank presidents being idiots. But whether or not there are supply side problems contributing to high unemployment in the US now, the demand side indicators show we should be having high unemployment now so there's no need to go "WTF".
A communications gap exists: resumes don't speak to candidates' wants and desires, and job descriptions don't accurately depict a day in the life on the job. Today, recruiters, both internal and external, work to overcome this communications deficit. However, their presence and business models introduce agency problems.
My company, Mighty Spring, is an effort to bridge this communication gap in a scalable way, putting candidates and employers in direct contact. We provide candidates a platform to be transparent about their interests and needs without risk (utilizing anonymity), and help employers communicate the finer points of their jobs better than the walls of text they produce today.
This is Mighty Spring (https://www.mightyspring.com) — the easiest way to find new opportunities with startups.
So, if the people at each level are basically just angling for their own short term self interest, be it a promotion or a raise/bonus/performance incentive, they will do what they must to hit whatever those incentives are, even if they harm the long term health of the business.
In short, instead of investing profits, companies are scaling back to look good and hit their profitability or stock price targets. It's short sighted and will end up hurting a lot of companies in the middle to long term because they are inevitably cutting plenty of good people along with those who are less good at what they do.
I really don't think that the goal of business should be to hire a ton of people for the sake of hiring people. A business exists to make a profit, but sustaining profitability requires great people, great operations, great products, great sales/marketing, and great service. When a company stops investing in those things, they get worse. When entire industries/countries do this, it doesn't take long for some upstart to take the lead.
Give me a break. there are a lot of interesting points and valuable insights. I won't say there isn't a real problem there, but the core message is wrong IMO.
Comfortable people make far too little effort to find work. Talk to job seekers about how far they will go for a job... this is why I will always have one. People seem to think they are somehow entitled to a convenient job on their doorstep.
http://www.youtube.com/watch?v=7UREepszk7I&feature=player_em...
If every employer was using myspace for the same purpose many people would probably think it was great too.