I expect that a fair portion of "We can't find qualified people!" is actually "We can't find qualified people for what we're willing to pay."
Beyond that, I wouldn't say that it isn't hard to hire, but it certainly seems popular to make hiring as hard or perhaps more accurately - to make passing as easy as possible whether it's via veto, "culture fit" or something else.
I was hoping that the vote of confidence in "behavioral interviews" [0] from Google over the summer would help things a bit - I guess not.
0: http://www.nytimes.com/2013/06/20/business/in-head-hunting-b...
(Of course it's possible they are implicitly or explicitly cutting all the people who cost too much money, leaving them with very few useful candidates.)
Not too surprising this strategy doesn't work out too well.
Sure, but isn't that implied, since all companies have financial constraints? If you can somehow pay 10 million dollars a year for a software engineer, I'm sure you'll have a lot less trouble finding a great engineer.
Oh an that was direct from school I didn't even get any A levels :-)
In my anecdotal experience, companies put far too much emphasis on finding unicorns that can solve problems on a whiteboard than they do on finding above-average developers that have a strong work ethic, can learn fast, and have shipped something.
As it stands, it seems the only people these companies hire are notable SV personalities, or people that excel at the formal interview format.
As a result, they are missing out on a lot of good talent.
Don't even get me started on working remote.
Also code complete is ancient, sure much of it is still relevant, I don't think it is the be all and end all though for the modern programmer.
Remote is a non-starter for 99% of start-ups... and a lot of companies that are selling pants online are searching for PhD-level engineering talent to run their shopping cart.
Winner winner, chicken dinner.
Ask a company that is hiring "is X important?", where X is one of {open-source coding, algorithm design, Ivy league degree, master's degree, MIT degree, Facebook alum, Google alum, presence in Silicon Valley, under 25 years old, over 25 years old, has a github, has a blog}, and you will get a "yes" for each X that the founder has.
Our salaries aren't that uncompetitive, either. I think it's just that pants are un-sexy.
At the very least I'm trying to sex things up a bit by moving us to a semi-modern stack so we match the desires of the more ambitious talent in the marketplace...
(As much as I'd prefer to hire bright people who can learn on-the-job (a category from which I emerged), our current delivery schedule means we don't have the bandwidth. The reasons behind this are beyond the scope of this comment :( )
I understand your main point, but I just think many companies hold fast to that position far too long, when the alternatives might be better than they think.
Yet.
Is there any good strategy to finding remote workers in a specific geographic location? Yes, that's kind of antithetical to remote working, but the state offers tax advantages to employing people from the state... and looking through the entire state of Minnesota should find someone who's fine working from a home office... right? Or do those types of people really primarily live in the SV area?
People, especially educated and intelligent people, typically don't want to live in a place that values tourism, guns, and private religious school vouchers over parks, playgrounds, and public schools, and that also pay average (at best) industry wages.
We've been really low on unemployment for a number of years... the cost of living compared to dev wages (usually >= 80% of NYC/SF wages) is really great, that I would be hard pressed to consider moving to SF, Seattle or NYC. That said, it's a bit hard to find talent, but then I don't do it for a living... Also, I don't think the business people doing HR really "get" the mindset of a software developer in terms of actually recruiting.
Most projects are not that difficult and uber-tech as founders like to think. Reliable average programmer that generates maintainable code in predictable speed might end up as useful and less annoying then bored genius.
That was annoying thing company I knew did. Candidates were selected for their love of algorithms and detailed knowledge of frameworks etc. Anyone else was labeled "weak".
It just so happened that the work required only surface knowledge. What they really needed was someone willing to do "boring" programming work responsibly and without supervision.
So, hired geniuses were running away faster then you can say bye and those who stayed half assed work.
This requires a certain amount of intellectual humility; as founders would have to acknowledge that it is likely they are not changing the world (they're coloring by number using last week's cool framework), and they don't need the best engineers.
It's gotten to the point where anyone who proclaims to be an expert in something is immediately suspect to me. The smartest guys I know never have to say it, and truly never brandish their skillset like some kind of gaudy prize. That kind of attitude makes it very easy to be undermined.
a) The smartest guys you know? b) The average guys you know? c) The average guys you know, but tell everyone how great they are? d) The below average guys you know? e) Other?
People who are great, do so not by telling other people they're great (although sometimes you need to have a little PR), but by demonstrating their great:
1. You want to work with them 2. Work diligently to make the team, product, and company better 3. Are smart 4. Are productive
A perfect blend of: talent, hardwork, and ambition.
I've noticed a trend of acceptable mediocrity here on HN. Any mention of wanting to work with people that are exceptional, results in near universally negative feedback.
As a startup, your first hires are CRITICAL. They set the tone of your company, and will carry a lot of the burden alongside the founders. You can't just settle for "good enough to get the job done." You're not just hiring for today, but for the next 2-5 years.
Seed your company with great people, and keep raising the bar.
Myself personally, I'm not great, so I want to work with people who are better than I am, not worse.
You can be great as an above average developer, and you can be less than great as an excellent developer.
I'd prefer to measure the complete package.
I have never found it difficult to hire for my dev shop in San Jose and I don't pay anywhere near what I'm told the "market" rate is. I hire engineers fresh out of no-name colleges, self-taught programmers, former freelancers who decided they wanted the stability of a salary and people over the age of 35.
Basically I will hire the people who won't get the time of day from a lot of the big tech companies and rocketship startups and who wouldn't make it through the interview process there if they get through the front door. And you know what? Most of my hires turn out to be entirely adequate and the duds are not nearly as difficult to deal with as everyone says they will be.
Granted my company is not building database engines or running social networks with a billion users but we do enterprise web apps for good clients and we are profitable. This idea that you have to give every employee 10% of the company and 130k a year to get people who can get the job done is a terrible, terrible myth and posts like this perpetuate it.
First off, while I appreciate your attempt at criticising the type of apps we build for clients who collectively generate billions of dollars in revenue per year I must point out that most web apps could be called pedestrian. Go through a list of the latest batch of YCombinator startups and I think you'd have a hard time finding many whose apps couldn't be called pedestrian too. An app doesn't have to be complex to be incredibly useful and/or profitable and by the way a lot of the work done at companies like Google and Facebook is pretty pedestrian too. So what's your point?
As for paying my employees less than I should, that's quite a statement given that you don't know how much I pay them. All of my engineers make $65-95k a year. At the lowest end is a recent community college grad who is really talented but didn't have the grades or money to go to a 4 year school because he was taking care of his sick father. I was literally the only company he applied to that gave him the time of day.
I constantly hear (from people like you) that my wages are too low and that I'm going to find it hard to hire good engineers but I have yet to experience this. I can't pay $110k to a new college grad or $140k to an engineer with 3 years of experience but from what I see the number of those jobs is far lower than the number of engineers in SV. Should the engineers who aren't going to even get an interview at Google remain unemployed?
I mentioned on another thread that I have one employee who I know is unhappy with his salary. He has about 4 years of experience and makes close to $90k a year but apparently he got it in his mind that the streets of Mountain View are lined with 6 figure jobs. He's a decent engineer who writes adequate code but he's not the type of guy who is going to pass a white board algorithm test. I know he has been looking and interviewing for the past 8 months and he's still here. If I'm taking advantage of him please explain why apparently no other company has offered him the 6 figure salary he (and you!) thinks engineers are entitled to.
By the way when I started in this industry in the 90s my salary as a programmer was the equivalent of about $38k today. I didn't feel taken advantage of or desperate then and thankfully to this day never got a big enough head to feel entitled to a significant income just because I can write some code.
My point wasn't that you won't be able to hire developers adequate to the tasks you require. It was that your target labor pool doesn't intersect with the labor pool target of companies building "database engines" or scaling up to "billions" of users, and so to compare your compensation packages to companies who are looking for engineers capable of building those things is a bit daft.
By the way I know plenty of people at startups who tell me they can't find decent engineers when they're offering 30-50% more in salary than I do. And 99% of these startups are NOT building database engines or running massive social networks. Most of them actually have web apps that are on par with the web apps we build for our clients if they are even that sophisticated.
The problem as I see it is that a lot of the management at these startups are deluded about the skill set they need and they lack the intellectual honesty to admit that their startup is not Google (yet). They can't find candidates because they are so in love with the idea of talent, too picky and don't want to invest in employee development. I mean it's not the end of the world if a candidate doesn't have experience with Git or unit testing. This stuff isn't that hard to learn and if your employees have nothing to learn from you they will probably be bored very quickly.
On the flip side all these ads for 6 figure positions and talk about salaries and talent shortages has given a lot of below average, average and good but not great engineers (which make up 99% of the labor pool by the way) the mistaken impression that anybody with a few years experience who can build a crud rails app can make a couple of phone calls and land in a 120k a year job. It's nothing but a mirage. For every 1 engineer who can get one of the $$$ jobs there are 50 who could do a dozen interviews and get no offers.
Those startups should be hiring your developers at the rates they offer, and you should be paying those rates. But because the startups you mention think they need the CS equivalent of Einstein and Feynman to run their CRUD stack, your developers are ones they pass on (and then whine about a talent shortage), and allow you to pay the below-market rates you get away with, because in your segment of the market there is, apparently, an excess of labor available. Your description, in other words, isn't a counter to my point.
The bay area is expensive but I am proud that I can provide salaries substantially above the median household income in the US with decent benefits. How many people do you provide $65-95k a year jobs to? When was the last time you hired people who had been rejected by every other company they applied to because nobody was willing to look at their potential and take a chance? What percentage of community college graduates do you think make $65k a year to start? Heck what percentage of 21 year olds you even think make $50k a year? It's easy to criticize me and tell people who don't have 6 figure jobs that they're selling themselves short but hey talk is real cheap.
By the way a ton of the startups offering those 6 figure salaries don't earn enough profit to pay those salaries. Their investors are paying those salaries. What do you think is going to happen when the money runs out and there are no more sinking ships to jump to? Will you suggest that the unemployed engineers cling to their tulips?
I interviewed at a place and turned them down (located in SF) for this very reason. I could immediately tell that one of the owners did not like me. After wrapping up my entire interview process one of the owners thanked me and told me that they would reach out to me with more information. I went to thank and shake the hand of the other owner (he had wandered off).
(They brought me in on a friday and they had a very open layout, engineers wandering about, beers in hand...etc)
I opened with a thank you and, "I spoke with XYZ and he said you guys would be following up with more information, i look forward to speaking with you again!"
He looked at me and said, in a very short and harsh tone, "Oh - I guess we will then..hm"
I was extended a job offer the next day and immediately began receiving terse calls that I needed to forward more information and get it to them NOW (from the one who was quite brash with me earlier).
I thanked them and turned down the offer.
1) Incorporate in SF for culture reasons or to allow founders to optimize their commute.
2) Find out it's extremely hard to find people in SF as anybody who lives there pretty much has to stay employed to justify the rent.
3) Find out people from Peninsula / South Bay / East Bay are not as excited about 45-60 minute one way commute as you thought they'd be.
4) Complain about engineer crunch.
More helpful responses can accidentally open you up to discrimination suits, and given the option of (A) bulletproofing every helpful response to make sure it won't come back to bite you and (B) just giving a generic and safe response every time, you can see why they'd choose the latter.
Even those who actually want feedback are often unprepared to hear it. Thinking back, some of the biggest things I struggled with were things that were invisible to me. If I try to imagine explaining some thing to my younger self, my options are a) explain it politely but in a way that I wouldn't get, or b) being so blunt that I get upset or defensive. E.g., what I once saw as being passionate about getting at the truth is something I now see as me acting like an arrogant, argumentative, know-it-all jerk.
Plus, feedback is much harder when it isn't interactive. When I do give feedback, it's always at the interviewee's request, it's always right after the interview, and it's always in person. Then it's pretty easy to gauge their emotional state, give them the feedback that's useful to them, and refer to specific examples that are fresh in our minds. Doing that a couple weeks later in print would be a nightmare.
[1] http://whatever.scalzi.com/2007/01/23/what-to-know-before-yo...
Is weird. I have more than +17 years on this job, and when I have apply to some oportunities (online) for the kind of things I could be good some companies expect to hire me testing for the things that are not related to the job itself!. Like testing algorithmic stuff instead of database (I'm a database/crud/backend guy).
I could understand the use of some general test, but the weird thing is that nothing at all related to the job is used.
I remember from some big internet recruitment agency that use a lot of time with me, but at the end I fail at them because they use the final testing unrelated to all the things hours and hours before we talked about.
Is like hire a mechanic, and ask only algebra stuff.
Hiring people you don't know opens you up to opportunities to expand your horizons and go in new directions. If a good culture fit means people you already know then you are incredibly narrow minded about culture.
If this were true, then engineer salaries would not be rising so much. The demand for good engineers vastly outstrips supply.
Also, any explanation that requires you to posit mass irrationality is usually a bad one.
Then: is it an extraordinary claim to suggest that the hiring processes used by most tech companies are doing a bad job of selecting candidates? Are engineers hired through these processes but then fired within the first 6-9 months a rarity? Is turnover generally low? Is hiring so risky that companies working in the middle of a "talent crunch" are demanding that candidates take temporary contracting roles so they can evaluate performance? Is the typical startup engineering team staffed by engineers uniformly capable of production? Are tech company hiring practices carefully designed and executed, or is it more the norm that they're delivered by whatever engineers happen to be available for candidates when they show up? If the latter is the case, isn't it instead an extraordinary claim to suggest that these processes could work at all, given that they're essentially stochastic?
Heh. Somebody had to say this. I don't know what the difficulty is all about. In the SV I have been more to more than 1 interview where I solved all the questions(in a day long interview) and didn't get the job.
Not sure what the high bar is all about.
From where I am standing engineering salaries have stagnated for the last 5 years, possibly even 10.
(http://www.computerworld.com/s/article/9237985/IT_gets_its_g...)
In a lot of places there might be extra, hard-to-satisfy demand because their processes for sifting through the supply of developers is poor or not working.
I think the crunch is at least somewhat real. We've hired a couple great people we met through Hacker News -- I couldn't have imagined them working out any better. And recently I've been trying to hire more people at my startup and, frankly, it's tough to find good people.
We've worked hard to make our interview process quick, insightful, fun, and accurate. Do we do pair programming? Sure. Do we ask about data structures? Absolutely; any programmer worth anything knows something about data structures. Do we do whiteboarding? Yep. Programmers at our company, it turns out, need to be good at communicating with humans as well as with computers. Do we give people answers immediately, and tell them why we are rejecting them? Yes, we do. We are more humane and reasonable than so many other places.
(It drives me crazy how many bad interviewers there are out there. Some of my friends recently interviewed for entry-level positions and some shall-not-be-named companies in SF and were treated terribly: given the run-around by the recruiters, brought back in the office 4 separate times for interviews, and ultimately rejected by at least two companies when they decided they didn't want to sponsor H1Bs after all. Insane. In a war for talent, you'd think practices like this would cease.)
Anyway: this is all to say, I'd love to meet your friends or anyone else out there who's looking for a programming job. My colleagues and I are not awful people. We like to brew beer and write code and help make the world a better place. We have a book club and eat good food. Oh, and we pay well and sponsor visas and are generally, you know, warm and friendly folks.
Can you qualify this a little bit? I haven't used data structures since university. What are you expecting programmers to know and why?
I find that I need to have a strong working knowledge of data structures every day. Hashes, lists, trees, and so on. Knowing how to apply data structures in production code matters a lot: the difference between a hash lookup and a linear scan, for example, can mean the difference between a reasonable response time for an application and an absolutely terrible response time.
In interviews, I have found that good understanding of these data structures (and the algorithms one uses to manipulate them) correlates strongly with ability to solve larger and more complex problems.
Well, I guess it's possible, but I find it hard to imagine.
Guess I wasn't writing software for a living. Plenty of SV companies sure got that impression.
[1] http://www.amazon.com/Radar-Handbook-Edition-Merrill-Skolnik...
However, when people around here refer to "data structures" they mean a whole lot more than those two. All of the data structures listed in the post I was replying to are widely considered "standard" data structures that are used all the time. I was pointing out that I worked in a significant, operational codebase of >150,000 lines total that used only the most basic of data structures, and used those sparingly.
Whenever someone uses the term "data structures" I think about the inner workings of different types of B-tree's. And since I don't know the inner workings of the more advanced data structures, I would probably disqualify myself.
http://www.joelonsoftware.com/articles/fog0000000073.html grep for "no hire"
The things in that article that are today considered vastly out-of-fashion (probably too much, the same way they were too in-fashion in 2000) are numerous, but this "
Happens one time, you think it was chance. Happens couple of times, you think you think there might not have been a cultural fit.
But you can't help but start questioning your skills as a developer sometimes. Times like those I could really use a reason why I am not a good fit. That includes "We don't think you are a good developer" because knowing the problem, I could try and fix it.
How can I get in touch with you? My email is in my profile page.
does this ever actually happen? it would never fly during any of the interview processes I've helped conduct.
3 out of 4, there's something legitimate there. It's possible to be coached through some of the objective parts of many interview processes, ours included. That's readily true for an internal referral (and could be innocuous rather than malicious), and even someone using glassdoor to prep could maybe skate by a couple questions, but someone will usually sniff it out subjectively.
1 out of 4 it's a "personality clash" which could be code for being threatened by someone's technical superiority, rather than simply being annoyed by someone's superior PITA-ness
If the same employee is constantly on the personality clash side of things, it's easy enough to remove them from future loops (and possibly the company, if their inferiority complex is rooted in actual inferiority).
I tried one of the more expensive LinkedIn accounts awhile back, contacted about 10 people that all had mobile experience (my company makes an iOS and Android app for higher education), and only got 1 response to my message.
I assume part of it is that my message was read by these people, but they looked at it as "spammy," even though I wrote it individually to each person and tailored the message for each person. I've gotten messages from random people on LinkedIn, and it's easy to feel messages on there to be spammy.
So having my time on LinkedIn essentially feel like a huge waste made me question LinkedIn. Is it that I used their email system, and I should have instead setup a phone call?
Perhaps I am communicating a job that is not particularly interesting? I think an iOS and Android app with web backend, using the tech we are using (native languages for the native apps, and NodeJS for web), would be fairly attractive to a variety of developers though.
[1] Note: I am not actively looking and do not have this indication set on my profile. All contacts I am referencing are purely passive pings.
----
LOL...it's a scam to depress wages. Immigration always was a scam by the upper class.
I have friends who are extremely good engineers (i.e., a mix of: contributors to major open source projects used by a lot of SV startups, have given talks at large conferences, published papers at ACM conferences, great portfolio of side/student projects, have worked at great companies previously, frequently write high quality tech articles on their blog, have high reputations on sites like Stack Overflow, etc.) and who have been rejected at interviews from those same companies who say that they can't find talent. (it also certainly doesn't help that the standard answer is "we're sorry, we feel like there isn't a match right now" rather than something constructive. "No match" can mean anything on the spectrum that starts at "you're a terrible engineer and we don't want you" and ends at "one of our interviewers felt threatened by you because you're more knowledgeable so he veto'd you").
Seriously, if you're really desperate for engineering talent, I can give you contact info for a dozen or so of friends who are ready to work for you RIGHT NOW (provided your startup isn't an awful place with awful people, of course) and probably another dozen or two who would work for you given enough convincing.
I'm honestly starting to believe that it isn't hard to hire, but that there's some psychological effect at play that leads companies to make it harder on themselves out of misplaced pride or sense of elitism.
Unless everyone wants to hire Guido Van Rossum or Donald Knuth, but then a) statistically speaking, you're just setting yourself up for failure and b) you need to realize that those kind of people wouldn't want to do the glorified web dev/sys admin'ing that a lot of SV jobs are.