Recruiting: There is no such thing as a developer shortage
sarajchipps.com
sarajchipps.com
Or, as this article states, you can offer interesting work in a good environment - that's worth something (have you tried offering a 4-day week?), but really, your core problem is probably building something very boring with very high maintainability and reliability.
So just offer more money, and advertise as such. It's really really simple.
And my, who are the (even non-technical) executives who have this much time to devote to seducing their developers with loving care? Just offer them money; you have a business to run.
To quote: "Moreso, find out what is important to them besides coding and perks. Do they have a family? Find a way for them to bring their kids in a few times a week, or have a family meal on Fridays. Do they like to travel? Invent a travel bonus, where they get to go where they want one week every three months. Do they want to speak at conferences? Become their agent, allow them time to commit to open source."
Absolutely. "Walk in the park, go to a movie, meet their spouse"? Don't waste my time with that, I really don't care about socializing with my future boss. Offer me 50% more money than I'm making now and you'll have my attention.
Hiring contract shops, and letting them handle the actual recruiting (you're building "foursquare for trunk sales", what do you know about finding good developers?) is the other route.
I was contacted by Google last summer for a potential job. I was shocked at how mediocre their recruiting staff were - unfocused, intentionally vague/evasive, rambling, didn't answer my questions, didn't followup when they said they would. Perhaps Google can't convince some people to uproot their lives and move across country because they're not doing a very convincing job in their initial outreach?
The economics of a free market says that salaries should be at the point where supply meets demand. If there's a shortage of labor, it implies that salaries are not high enough. And there's nothing in economic theory that precludes a developer from being paid more than a CEO, if that's the price it takes to hire a developer.
Unfortunately, we know that the big Silicon Valley companies don't believe in a free market for labor since they were busted for conspiring to keep salaries down by not recruiting each others' employees (while simultaneously lobbying the government to allocate more H1-B visas).
> The economics of a free market says that salaries should
> be at the point where supply meets demand. If there's a
> shortage of labor, it implies that salaries are not high
> enough.
This is only true if supply is easily increased. The percentage of the population willing and able to be trained as software developers appears to be strongly inelastic. > lobbying the government to allocate more H1-B visas
If a company is willing to pay above market rates to import a developer from another country, doesn't that imply that there is indeed a lack of local talent?If the salaries of software developers go up relative to the salaries of Wall Street analysts or neurosurgeons, more smart young people will quickly start going into CS. Conversely, if word gets out that tech companies are doing everything they can to hold salaries down while making their employees work long hours, fewer people will major in CS. The number of people willing to enter a field is a function of the job prospects in that field. Also, people in other fields who already write code as part of their jobs (e.g., scientists using NumPy) wouldn't be that hard to train as software developers. I've known some excellent software developers who used to be scientists.
"If a company is willing to pay above market rates to import a developer from another country, doesn't that imply that there is indeed a lack of local talent?"
If a company has been caught illegally colluding with other companies to artificially hold down the salaries of local employees, wouldn't you be somewhat suspicious that its goal in importing more workers (increasing the supply of workers and thus the competition among workers for jobs) might also be to keep down the price of labor?
An alternative would be to offer higher salaries, at which point they'd have a much better chance of recruiting developers from other parts of the U.S. to move to Silicon Valley, which is one of the most expensive places in the country to live. If a Silicon Valley company offered me 50% more than what I'm making now, my standard of living would probably decline, especially due to the quality of housing I could afford within easy commuting distance of work.
Instead of going into it with the mindset of "Well, I want to hire a software developer for $80k because that's what they should make" the thinking should be more based on "how much value will be added to the company/product/etc if this particular software developer we are seeking is hired, and what number can we afford to offer him or her based on that?"
People can argue until they are blue in the face if the best developers are 2x, 5x, 10x or 100x better than the worst, but whatever it is, there is certainly a wide variation in productivity and overall talent. Assuming that there should be a nearly fixed salary number based on years of experience is as ridiculous as assuming that all NBA players should make some flat rate based on years in the league or whatever else.
The software industry pays a lot of lip service to "meritocracy" but then they often throw the idea out the window when it comes to compensation of non-founders, which is goofy.
If a fresh grad is making $80k, then a junior developer (say 2-3 years experience) will probably be making $160k (x2), a senior developer might pull $400k (x5) or more, and beyond that you start to get into the world-famous engineers who receive whatever they ask for.
According to Google's financials at http://investor.google.com/financial/tables.html, they have approximately $220k of unallocated profit per employee. Even if they were to take all of that and convert it into salary, it would likely only bump the fresh grad's compensation to around $100k because the junior and senior developers will demand percentage-equivalent increases in their own pay.
> Assuming that there should be a nearly fixed salary
> number based on years of experience is as ridiculous
> as assuming that all NBA players should make some flat
> rate based on years in the league or whatever else.
Years of experience is useful as a rough approximation of value, because someone who is not constantly improving their skillset is unlikely to be promoted and will eventually leave their position for greener pastures.I doubt you'll get that from anyone, too many variables to set a minimum, IMO.
"If a fresh grad is making $80k, then a junior developer (say 2-3 years experience) will probably be making $160k (x2), a senior developer might pull $400k (x5) or more, and beyond that you start to get into the world-famous engineers who receive whatever they ask for."
It doesn't really work like that. I mean, sure there are articles about how Google pays $3 million or whatever to keep a top developer, but if you read past the headline you see it isn't salary, mostly one-time RSUs or such and the person is actually more of a project manager or even executive rather than a developer. The industry's issues with compensation extend up into the higher end too where there's somewhat of a loose glass ceiling at around $150k-175k or so (which can vary quite a bit based on region/cost of living, but the general idea of a glass cap is pretty universal) beyond which it is very difficult to go without being a Linus-level name brand, or going into management or founding your own company and hitting the startup lottery. Of course there are exceptions to this that prove the rule, like people doing HFT/financial software can make quite a bit more because they are compensated like financial sector workers instead of like software industry workers.
"Years of experience is useful as a rough approximation of value, because someone who is not constantly improving their skillset is unlikely to be promoted and will eventually leave their position for greener pastures."
As someone who is 40 and still an active non-managerial software developer, I should find this somewhat flattering, but I've seen plenty of evidence that suggests you are simply incredibly optimistic about the efficiency of the industry at weeding out those who aren't productive or talented.
Maybe the spread is bigger in Silicon Valley? If so, I wonder why. Doubling your salary based on 2-3 years of experience doesn't happen here, and 5x for senior engineers would require a very narrow definition of senior.
The free market works for buyers and sellers of labor too, not just of goods. (Within certain limits, of course--labor isn't fungible like books.)
For comparison, the average male high school graduate who has experience under his belt in this same region will will earn $52K per year. $10K above that average is not exactly what I would expect a shortage to look like for a supposedly rare skill that is in high demand.
Maybe you could argue that it is only a Valley shortage, but it makes you wonder why the Valley isn't attracting some of these people outside of that region? Perhaps $80K (or even $120K) isn't interesting enough for them to give up their current life to make the move?
Cost of living must be a big one. I released that with different tax rates I would need to add around 50% extra onto my Spanish salary to make a move to Germany worthwhile.
That might work out somewhere like Texas.
When I graduated UT quite a few years ago, friends were getting offers of between 75 and 85K. Granted, they were really, really good and were already consulting on the side.
San Antonio might be a bit cheaper.
You /might/ be able to find a decent Texas State grad for 60K. Maybe.
if you want to have 2 kids, you're staring at a $600k+ condo, or a $1mm+ house; 2 cars; and daycare so you can both work. Plus 9% CA income tax. Oh, and if you ever want to retire, you're going to pay the state $1200/mo of rent just to be allowed to continue to live in the home you fully own (ps: don't take this the wrong way, I understand the state needs money, but $20k+ a year between property tax, insurance, utilities, and a handful of repairs is hard to budget into retirement.)
A couple I'm friends with just left to move back to MI. One was a developer with a masters from a top 10, making $140k. The partner was an account manager and made $90k, for a total of $230. The engineer took a paycut to $105 and the partner took a paycut to $60, for a total of $165. However, you can buy a pretty nice home for $350k; they live near family to help with daycare (saying $400/week for infant childcare); and taxes are lower. It's a much better deal for them. And again, to own a home, they need $100k+ as a downpayment and still have a housing/income ratio of 600/230 for a condo and 1100/230 = 4.8 for a detached house. Compare to MI where they have a housing/income ratio of 350/165 of 2.1. That makes an enormous difference in your financial lives, particularly as you think about savings, retirement, paying for college, etc.
So there is no "should" here. It's what do people need to be paid to live in an insane housing market with a busted ass public transport system, when there are far cheaper deals available elsewhere.
And it's not like there's a static pool, either. Hire enough developers at a high enough salary and people will be drawn to the profession. You'd be surprised how many spreadsheet jockeys are basically doing programming already, albeit in a roundabout fashion and a sketchy language/environment, and can be converted into "real" developers in relatively short order.
EDIT:
Here's an idea: take a group of actuaries (ie, people with quantitative skills, pre-screened IQ and diligence, and exposure to some sort of programming environment) and offer them jobs if they teach themselves Python on their own time. They'll even take a pretty rigorous test at the end if you ask them to; they're used to it. Their salary data is here: http://www.dwsimpson.com/2013_Actuarial_Salary_Survey.pdf
Do you think you might be able to hire developers for those kinds of salaries? I'd think so.
I don't think it's that easy.
There are a good deal of early stage startups in the Bay Area offering very competitive salaries. But for most of them a cursory look at what they've raised and the traction they have in the marketplace raises questions about how long they'll be able to sustain their burn.
As a developer I don't just care about how much you're paying me. I also care about how long you're going to be able to pay me.
If you make $80k/year in a stable job, but a company could be reasonably expected you'll crash and burn in 6 months maybe that company will have to offer $120k to account for the 3 months the dev is looking for work after you crash unexpectedly.
It might not be your cup of tea to take jobs like that, that's fine someone will. And if you don't find anyone at 120k maybe it needs to be 130, or 140 to make up for that mean time to failure.
I always said, there is only one thing I require of my job: to be afforded the respect that any stranger off the street would be. Doesn't seem like much, but believe me, it is. If most companies can't even afford that, the rest of the perks are really meaningless. (As a side note, it's really hard to truly disrespect me remotely).
It creates a nice 'event boundry' so I can switch gears. The office also has fewer distractions while at the same time allowing me to just chat with people about what is going on business wise. Not to mention the ease of grabbing someone for lunch.
It is nice, however, to have the option of working offsite when it is more convenient for whatever reason.
The just chatting part is more difficult.
Depends on the subfield.
If you want to hire 1,000 ARM JIT superhackers, those people just don't exist in the entire world. There are just not 1,000 people total that know ARM, know JITing on ARM, and are strong hackers.
You could advertise double the usual salaries for those positions, and still those people would not show up, because they don't exist. So your only hope if you need 1,000 of them is to train them, which takes time and has risk.
For something like web development on the other hand, sure, I do think the market is far more flexible and if you double salaries, more developers will show up fairly quickly.
Because throwing money at a problem is always the best way to solve it, right? Why would anyone consider hiring the type of developer they actually need?
Here's the inconvenient truth about startups in the Bay Area... lots of them have basic CRUD apps with little to no traffic that a self-taught programmer out of high school could build. They don't need "engineers" with CS degrees from top schools who are Google or Facebook material.
What's hilarious is they love to throw CS interview questions at you. There should be some sort of term for it; delusions of grander[sic] engineering?
Let me make it obvious: technologists don't want to write CRUD apps.
I was with you up until the point where you said that your only hope is to TRAIN them. The developers that I have met are almost all really interested in technology and constantly learning new things. Few developers wait to be trained if there is a useful new technology out there that could solve problems that they would like to solve.
So there is a 3rd way, and that is to identify the developers who are into constantly learning new things. It is not hard since you just have to weed out the 10-15% of developers who have given up on learning for one reason or another.
If you need developers, just hire a few people who have done some kind of development before, are at least vaguely familiar with the tools and problems that you have, and are willing to work for a graduated salary where they start around 10% lower than normal and work their way up to the full salary in 3 months or so. You will still have to lose a few before three months is up, but the upside is that you will never again have trouble finding people.
I used the word normal up there instead of a particular salary number because numbers vary by country and region. The right number for you is probably somewhere above the average salary for your region because if you are weeding out 10-15% of field, then you are by definition hiring above average people.
Sure you may miss one or two really great people who demand a high salary or they won't leave their employer. But can you honestly say that you KNOW that these people are good if they are not willing to go through a short trial by fire? You could even rig the graduated salary so that the final yearly total earned is exactly the same as if they had been given a normal salary offer from the beginning.
There are lots of smart and skilled people who can learn a new language and a new platform in FAR LESS TIME THAN IT TAKED TO LEARN YOUR CODEBASE AND YOUR BUSINESS. And don't tell me that you only hire people who already know your code and your business, because if you are not churning out mindless Wordpress sites, then I don't believe you.
A lot of good developers (or testers or whatever) will see no appeal in that sort of thing, and it doesn't mean that they're bad developers or unpleasant to work with. Maybe they're busy. Maybe parties make them uncomfortable. Maybe they're perfectly sociable but prefer to spend their free time with people of more diverse backgrounds and interests than other developers.
Specially when you have a good amount of subculture involving "star" in the name ..... Nothing against those ones, but the amount of time a reference is totally lost on me is staggering.
In my recent experience working for startups in the SF Bay Area I saw this pattern repeatedly, and it shocked me. Otherwise intelligent and competent people are, in effect, setting their money on fire and wasting lots of time and energy playing at having a real company.
For some reason people think they can start and run a "web startup" without the most basic understanding of what they're attempting to do (technically.) At one point I said to a developer co-worker, "These folks have only ever seen the Internet from the outside." He agreed.
It seems to me that part of the issue stems from the invisible nature of the machinery we build. If it were cars, or houses, I don't think folks would be quite so ready to blindly charge into business.
But part of it is just weird.
I'm actually looking for work right now but, because I no longer wish to work as a carpenter on the Winchester Mystery House (look it up) I'm having a hard time finding a job I can feel good about. More pay doesn't tempt me, nor the prospect of warm fuzzy social interaction with co-workers. I want to work with people who know what they're doing.
Usually they're setting someone else's money on fire...
Burning VC money is practically criminal when you think of the "opportunity cost" of what might have been achieved with it.
The saddest was overhearing a (retired) doctor I worked for attempting to mortgage his house.
Some observers are confused by the very large population of non-developers who apply for development jobs. These people do not know how to write software[1], and so should not be counted as developers for the purposes of this discussion any more than someone who can't use a multimeter would be called an electrician. One of the earliest blog posts I remember about this phenomena is from Joel Spolsky circa 2005[2], in which he observes that the top 0.5% of applicants is likely to include 99% of the applicants who are developers.
[1] FizzBuzz is still the gold standard "can write software" test.
Because the rest of the world doesn't work like that, where the rest of the world equals London, New York and Australia. In those places perfectly good developers are found by job ads, word of mouth, former colleagues, recruiters and nepotism.
Throw a fucking party, what a tedious idea.
There is certainly some truth here. I don't consider myself a particularly great developer, but I didn't apply for either my current job or for the previous one; I was contacted by management or the founder. At my previous job, we filled multiple development positions by contacting people we knew and convinced them to join us.
...but "the developers you want to hire are never applying to job listings", "good developers can pick and choose the companies they want to work for", and then the author starts suggesting that you need creative things like parties and potlucks just to find and attract developers?
Um... sorry, but that's a shortage. If there weren't a shortage, then the developers you want to hire would be applying to your job listings, and you wouldn't have to be writing this blog post about all these special things you have to do to find developers.
The article doesn't really address the alleged developer shortage referenced in the title. Even if every company did these things, and did them well, would they still all be able to meet their hiring needs?
Developers are people. To hire them you have to establish a relationship with them. If you try to shortcut that, you're gonna have a bad time. It's a long-term game. Yes, you can get some attention with parties and other stunts. That is no guarantee of quality or retention and it isn't sustainable. pastProlog nails it elsewhere on this page.
To me, the whole interview process is about companies achieving social dominance over you. No matter how desperate they are, they still need you to be crawling to them, not vice versa.
Sometimes an outside headhunter calls me and asks if I want to talk to a company. I call and talk to someone at the company, and before I've even met anyone they want three references from me, preferably (or absolutely) former bosses. So before I even meet anyone, I'm supposed to call three former bosses and ask them all for a favor.
It might happen a little farther down the process, but still. What it really means for me is I don't do "one off" interviews. Every few years or so I decide to get a new job, I fix my resume etc., ask my former bosses if they'd give me a recommendation, and then start interviewing at lots of companies. What this means is I'm only available for several weeks every few years. It wouldn't be a big thing for me to check out some new company half-way into my employment somewhere, but I'm not going to bother my old bosses every few months for one-off interviews. And why bother going and stammering in front of some officious HR person or manager about how you don't feel comfortable giving out recommendations so early on. Their expectations already turn the interview sour, "what am I hiding"?
Then interviewers also expect you to work on their schedule. I have a job, things aren't going well there, yet they expect me to come in the middle of a work day and spend some hours there. I might even take the day off and the interviewer might call and cancel. Then should I wear a suit (I'm not in the Bay Area)? I used to drop my suit off in a friend's office, go to work, go to my friend's office, get in the suit, interview, go back to my friend's office, change, go back to work, then go to my friend's office, get the suit and go home.
Or the interviewer asks very officiously why I want to work at the company. The answer I usually want to give is that I don't necessarily want to, someone called and asked if I was interested so I'm checking it out. But if an outside headhunter asked me to, it sounds kind of hollow. Blog posts with tips on interviewing say I should have a set BS answer for this but why should I? I want to work there for a fucking paycheck, why do you think I want to work there?
Then other bullshit. Obviously I wouldn't badmouth people at my current or former employers. But if they ask me about the process at my current job and I'm honest about how fucked up it is it becomes my fault. Let's say I said we have no revision control, no staging servers, everything goes straight into production, no code reviews, no integration tests etc. Or maybe not that bad, but whatever. Or the company won't spend money to hire the amount of personnel they need, the machines they need, the software they need, whatever. Then they say why not? I say I've asked management and management said no. It becomes my fault when I'm honest and say I couldn't shake the pennies from management to set up a proper system. Even if I'm just a lowly developer and not even a team lead or something.
Then there's the requirements. BSCS from a good school required. A few classes short and lots of experience? Tough luck. Or super-specific requirements for a number of technologies, all at a high level and for many years. Often for a crappy company, a crappy position that doesn't need anywhere near that kind of experience. Sometimes there will be a posting on some tech forum where people are laughing about a Craigslist posting asking for "9 years of experience with iPhone apps". It kind of drives home the point. Nowadays I usually don't even have the experience problem, but it's ridiculous when a requirement is for their version control system or something. I mean, how long would it really take me to learn perforce if I know subversion, git etc., as well as all the other job listing requirements?
Companies make the interview process unpleasant, throw up all kinds of barriers and then wonder why they can't find good candidates.
They also wonder why person to person recruiting is so effective, people bringing in people they know. The reason is because the inside person usually tells me "the job is yours if you want it". Most of my jobs have been gotten this way, I've only worked at two companies where I went in cold via a headhunter. It's just too unpleasant.
The cold interview process is easily as unpleasant as getting a root canal or doing my own taxes.
I literally started a company so I wouldn't have to go through that rigmarole anymore.
The good news is I finally have an employer who did not treat me like a junior and allowed me to grow in to my current role. This employer always finds people to come to work for there organisation. I have noticed that most of the recent hire did not meet all the technology requirements but they all had a passion for technology and getting the job done with whatever they were bringing in there tool box. If more employers would recruit like that, we would not always hear them complained that they can never find good candidates.
I agree, corporate recruitment is broken and I hate when I feel I need to beg for a job in an interview. Hopefully, in the future companies who make it are the ones who finally figured out that they are the one needing resources not the way around.
> Developers can smell a non-technical founder from miles away. It tells them that you have zero respect for what they do, and you think they are just tools. The Twitter book by Nick Bilton mentioned no developers. Somehow that company was built with no developers. Your developers don’t want that to happen to them, and if you don’t care enough about what your company produces to learn how it works that’s the message you’re sending.
Funny. The most attractive and profitable opportunities I have ever been presented with involved non-technical individuals with domain expertise and strong relationships in their market. They didn't unnecessarily pretend that they were something they weren't (read: a techie), and they didn't act like I was a god just because I knew how to code.
They had spotted an interesting, potentially lucrative opportunity that required a website/web application and they were looking for a qualified partner who could help them exploit it.
What boggles my mind is the number of "startups", most of them consumer focused, with:
1. A basic CRUD app.
2. A track record of "pre-traction" (read: modest usage/traffic at best).
3. Too many developers on staff using way too many [programming languages/frameworks/technologies]. You know, because it's cool to overengineer and prematurely optimize real-time distributed architectures, and stuff.
4. Compensation packages and office space that look great assuming you don't perform the burn rate math, which doesn't really matter. Unless you want to know how long your salary will last and your key to the office will work. And who wants to know that?
5. The mistaken belief that their employees don't have a social life of their own. You know, because everyone knows the best developers don't have friends.
6. The delusion that their use of AWS makes them a "technology company." You know, because that's more fashionable than calling your web-based staffing agency for animal trainers a staffing agency.
The OP is right. There is no shortage of developers. But she's wrong about why so many companies can't seem to recruit them. These companies are not looking for developers. They're looking for developers who have more experience and skill than their "businesses" require and who also happen to be suckers. And there just aren't that many of these people out there.
Hordes of companies swarming in, eager to hire 'top' engineers who continually fight with yesterdayshotness.js (as seen on HN!) and who spend their whole lives at the office fixing problems few people ultimately have while burning loads of VC cash.
I used to beat myself up that I wasn't in SF. Recently, I realized I am incredibly lucky for not being there; and that includes the massive burnout I had 3 years ago. The typical SV startup abuses people for little pay.
In the current market a competent developer who want a job, has a job. If you want to be taken seriously start with a serious number.
Because programmers are very social creatures that would jump on the opportunity to go to a party thrown by some random recruiter. Especially the ones that already work 8-10 hours a day. But you're not looking for programmers, you're looking for brogrammers, aren't you? Carry on then.