Hacker News new | past | comments | ask | show | jobs | submit login
Stop complaining and pay programmers more
227 points by wake_up_sticky on July 1, 2010 | hide | past | favorite | 272 comments
It seems like every time I check HN someone is bitching and moaning about how difficult it is to find competent programmers. Newsflash: competent programmers apparently have a skill that is extremely rare. Rare commodities are expensive.

It strikes me as senseless to complain endlessly about how 199 out of 200 candidates who are interviewed for a programming position are literally incompetent. No competent hiring manager should put out more than one ad posting which attracts a horde of unqualified candidates. Why not? Because the second time around he will offer a much more attractive salary.

And that's really the end of it. Enough of this nonsense.




I have a simple theory. Most managers are still educated according to Taylor's Scientific Theory of Management, where the managers are more intelligent than the "factors of production," and their role is to "scientifically" direct their work so that they create additional value (which is multiplied by how many workers they have reporting to them). Their salaries reflect that model, and thus is proportional to the salaries of their direct reports times the number of direct reports they have. This is well-ingrained in the workplace, and in society.

Unfortunately programming is really the first discipline where the primary determinant of the "factor's" productivity is not the manager's skill but actually the intelligence of each individual. There's huge conflicts created, not just about salaries, but job roles, and really the structure of society (which is really built around an educated managerial class overseeing (and living apart from) a less educated working class.

The primary issue with paying programmers more is that they're butting up against those managerial salaries and life roles. Programming doesn't fit Taylor's theory. To change that isn't just about micro changes in business, it's about macro-changes in society.


What the OP is rallying against aren't the typical 'managers' in big companies. The people who complain here (and on their blogs) about how difficult it is are small companies, at the cutting edge of technology, usually startups run by twenty or thirty somethings. The same people who, a couple of years ago, ranted and raved about how programmers aren't cogs etc. just like in your post. Now these people need to make a profit and all of a sudden they find out - "hey, it's not as easy as I thought". So then their strategy switches to 'let's pay people peanuts to work on "interesting problems" so that they can "do the things they love" - with the next step being incessant whining about how they attract only unqualified applicants.


That's silly, physicians, mechanics, lawyers, and many other skilled tradesmen are just like programmers. The problem is that many folks see programmers as somehow different than these folks.


I read a great article in the Harvard Business Review about what defines a profession. Their question: are managers a profession akin to Doctors and Lawyers?

The author defined a professional as someone whose work you have to take on faith. Not being doctors or lawyers ourselves, we're usually unable to evaluate the quality of legal advice or medical care we're receiving. The best we can do is seek another opinion.

The author drew this line because he feels it necessitates the things we expect from a profession: shared ethics and a rigorous certification process. Professions require would-be professionals to jump through a number of hoops to make sure that all who deal with these professionals receive some minimum level of service from someone with a minimum level of competence.

Have software developers arrived at this point? Can someone check the quality of what they receive from a developer without being a developer? If they can't, will this always be true?


Your comment peaked my interest to read the HBR article you mentioned. Thanks. http://hbr.org/2010/07/the-big-idea-no-management-is-not-a-p...


No, it piqued your interest.


Is there a name for that phenomenon, where people hear terms in use but map them to the wrong words? Or the opposite, where people learn words through reading but mispronounce them?


Linguists call them real-word errors. They're very common in writing and spell checkers do nothing to protect against them.

I work on a free browser extension called After the Deadline. It picks a lot of this stuff up. It didn't pick up this particular example, next time I deploy an update to our service it will.

You may want to check it out, it works here on HN too: http://www.afterthedeadline.com

(as a note, I tend to make the same types of errors)


Actually I suspect that spelling checkers have made them more common. I know I see them a lot more often on the Web, and have been seeing them increasingly frequently over the last few years.


There are a few mild forms of dyxleia that cover thoses symptoms. For example, I cannot "sound out" words. I have to hear them before I say them. Makes for some funny times, thank god I have a great memory, or I'd look stupid all the time


I submitted a Wikipedia article on this very subject :-)

http://news.ycombinator.com/item?id=1477763

Apologies in advance for engaging in the clichéd 'submit a Wikipedia page' pattern!


malapropism


or "eggcorn", if the substituted term makes some kind of sense in context.


Malapropism.


Thanks for core wrecking my miss take :p


Using the internet it's possible to verify a doctor's job(assuming access to medical charts and lab results).

I think the thing that separates licensed professions from unlicensed ones , is usually issues of safety,i.e. when the price of an error is just too expensive.

So truck drivers(which is a pretty easy to verify job - are goods delivered ? ) are licensed, and have a conduct code("sleep every X hours" , speed limits ) , and computer maintenance technicians aren't, even thought it's more complex to verify their job(are updates installed ? is the computer secure ? ).


> Can someone check the quality of what they receive from a developer without being a developer?

That's the QA team right there. And the ones I work with are very good at it!


Doctors, dentists, and lawyers have legislated their jobs so that they can maintain monopoly through their guilds and licenses. That's why they can charge such a high rate. If programmers can get non-licensed programmers writing code go to jail, their rate would go up, too.


I am incredibly happy that this will never happen in software development. Elitist, protectionist mechanisms like this would dramatically limit the talent pool, slow down innovation, and restrict thinking to a set of norms agreed upon by a conservative organization intending to maintain the status quo. Programming is more of a meritocracy than in many other fields, and I think we should be proud of this. If people want to earn more then they should practice and learn more. Certifications are codifying yesterdays knowledge. How valuable do you think that is to most organizations, as opposed to keeping up with the latest research or the latest developments in open source? And I don't mean reading the headlines, I mean understanding data structures, algorithms, and architectures. Certificates do things like quiz people on how well they know an API. This is absurd, wasteful, and degrading. These training programs attempt to generate assembly line programmers, but it's like trying to learn history by memorizing dates of past events.


> I am incredibly happy that this will never happen in software development.

Oh I don't know, the idea of programmers being better paid has a certain attraction to me :-)

On a more serious note, the way that lawyers and doctors (and some other tradesmen in some jurisdictions) have managed to illegalise competition is wrong and needs to be stopped. Vets can perform operations for a tenth the cost doctors can -- is this because vets are less competent? On the whole, no.


I don't think that the competition is illegal. I thought that if you are a private practitioner of either you could just set your prices lower. The fact no-one does maybe implies that either there is a shortage of these people or that they really just do it for the money neither of which are true. I'm pretty sure the entrance criteria do not also include "you must charge X for this service". But I think we see similar pricing weirdness with mobile phone plans - way over priced but here in a free market (at least in the UK) we don't see prices that are really that good for what we get.

I'm pretty sure that salary dose play an important part of people wanting to get into these professions so while you have bright people doing them it is not always what they would be best at. So there is a bottle neck when applying for higher education and I think the problem is when you are 18 you have no idea what will make you happy when you actually graduate. By that point your pretty well financially committed to the profession and thereafter you'll be saying t least the money is good.

Also while I don't like monopolies how you break them is important and hard to do.


> I don't think that the competition is illegal.

Yes it is. The whole point is that certain professions have got politicians to pass laws making it illegal for people without the right piece of paper to compete with them.

As Adam Smith said: "People of the same trade seldom meet together, even for merriment and diversion, but the conversation ends in a conspiracy against the public..."


You just described 2 of the ways that the competition is being limited by law and politics: 1. Controlling the number of doctors graduating per year. 2. Making medical training very long and expensive(even when it's not needed - for example when nurses can replace doctors) so that doctors would inevitably charge higher rates in the future.

Since medicine historically was distributed and built by community doctors , the classic competition limiting strategy of using big monopolies didn't fit here.

So the medical profession uses many different strategies for limiting "distributed" competition.


> Elitist, protectionist mechanisms like this

In fairness to lawyers and doctors, they serve needs that have a larger societal impact thus the need to to have more stringent process of instilling the right training and enforcing ethics.

Programmers are perceived to be be neutral in this regard.

People understand this concept as it applied to lawyers and doctors. Most folks frown on ambulance-chasers and boob-jobs plastic surgeons.


Would it really tho'?

I mean, PE (or CEng in the UK) is an "elitist, protectionist mechanism" but it hasn't hurt innovation in aviation or civil engineering, has it?


Very possibly it has - there is no way to know the answer to this kind of what-if, because you either have one or you have the other, you can't let the two alternatives compete with each other over the same time scale and then measure the outcomes. Very similar to the question of whether software patents help or hurt software innovation. There has been innovation in engineering with the PE system in place, and there has been innovation in software with the patent system in place, but there is no way to know if there would have been more or less over the same time period without those controls.


[deleted]


Here's this little secret how the dentist association controls the number of dentists licensed each year - they raise and lower the difficulty of the licensing exams each year. Guess who wrote the exams? The existing dentists, who have incentive to restrict the number of new dentists. They can raise the difficulty with frivolous questions that don't impact the dental competency but weed out a number of qualified candidates.

Same thing with doctors and lawyers.


I think the fact that a group controls its membership qualifications is not really a problem as long as other groups can compete with them to address the same needs. And without special treatment from the government. A level playing field, not subsidies for one model at the expense of other models.

Realtors control their numbers and qualifications too. But you can still be a real estate agent without being a Realtor. Having and protecting a brand is ok. Getting government to put some group in charge of all people addressing a need will raise prices.


We should not seek to emulate doctors or lawyers, but cabinetmakers, watchmakers and joiners.

Programming isn't a profession, it's a craft. The trouble is that traditional crafts are not really valued any more, as their purpose has largely been supplanted by mass production. So, we have no current role models for how to organise ourselves.


Programming is not a craft. A craftsman produces some product, whereas a programmer designs some product that is then produced by a compiler or by copying a file. That the production of software is trivial and fully automated, doesn't mean that there is no distinction between production and design.

We already have mass software production.


Overall, I strongly agree. I agree so strongly, I've been thinking about counter-examples, and I think I've found a few corner cases. ;)

Firstly, obviously, some aspects of programming are crafts-like. When we write conditionals as if(4 == x) instead of if(x==4) (for languages where variable assignment in a conditional is legal but not what you want), that's craftsmanship. Analogously, part of the process of designing a building is drafting, and that is a craft. A common error is to think that drafting is the primary task of architecture (at least, that's a common error about programming).

Less confidently, I would argue that the closer you get to the metal, the more craft aspects appear (without claiming that these aspects dominate), and that when we use a compiler, part of what we're getting is automated crafting. So we see three cases where we take back that crafting aspect into human hands...

First, for a new platform, sometimes some of the work is done by hand.

Second, many programmers _enjoy_ the craft of programming, and so practice it for fun. For example, code golf is craft.

Third, sometimes crafted is more appropriate. We usually prefer a cheap mass-manufactured physical object (high-quality, but not customized), but sometimes we want something handmade for the situation. I think that writing assembly by hand has some parallels with this (not to argue that writing assembler is more craft than design).


So you want programming profession to follow a model which leads to devaluation and replacement by mass production? Think programming is there already.

Outsorucing, Java schools churning out schlubs, seem like mass production analogs to me.


Hmmm, seems like the appropriate role model to take from this may be "mass production". Perhaps that is the right and proper end game for any craft. But I tend to think that computers can't take all our jobs in this society, because once computers are fully capable of programming themselves our society will cease to exist in its present form.


The way I see it, it's both - more like surgery in that regard. How you do it involves a huge amount of craftsmanship. Knowing what to do and why you're doing it is what makes it a profession.


But lawyers don't normally work in a management hierarchy, do they? And I'm pretty sure hospital administrators hate physicians just as much as managers hate programmers. (Not all of them do, of course, but I'm guessing it's similar.)


Doctors and lawyers are typically self-employed, or they're employed at institutions that require (often by law) that managers actually have to be doctors or lawyers. So you're correct, they are like programmers, but a solution has been reached already for the problem I describe. I'm not sure skilled tradesman (not to denigrate their work) have the same "productivity is determined by intelligence" issue.


Agree. And all the replies to this post about the specifics of medicine or law seem to me to be missing the point. There are fields other than programming where "workers" have more domain-specific knowledge than "managers". Mikemainguy was responding to the perceived assertion that programming is the only occupation where this is true. He is offering counterexamples to the statement that "programming is really the first discipline where the primary determinant of the "factor's" productivity is not the manager's skill but actually the intelligence of each individual"


Docs, mechanics, skilled tradesmen, lawyers,...hell even accountants have location knowledge and expertise that is location specific.

- You won't drive your car cross country to a cheaper mechanic. - You won't get a lawyer from India to represent you in America. - You don't go to a doctor... well thats changing isn't it? Too bad doc education still costs so damn much in America.

Its about group supply and demand. Don't forget that homes cost and arm and a leg and that a programmer in a particular neighborhood should be able to afford a home in that neighborhood and should charge accordingly.


Programming, especially high-paid programming, tends to be highly domain-specific. Whether oil pipelines, financial models, or various control algorithms for aeronautics, you can't just hop jobs.

I think most programmers, and even non-programmers, don't really understand how much domain specialization affects their value. To me, this is "localized knowledge" just as much as any mechanic, accountant, or lawyer has.


Isn't it even worse? None of those professions have access to copy and paste!

We all know programmers who would be sunk without it.


hmmm ... organ transplants? I suppose that's cut-and-paste though.


Good lawyers use copy and paste all the time. ;-)


Bad ones too, that's how the first draft of our employment contract had a non-compete clause prohibiting staff from working in the child-care industry.

(We do hardware/embedded software)


Amen!


Doctors and lawyers can't engage in their profession since the age of 10 or so, like programmers can. Doctors generally cannot be self-taught like programmers (what practice surgery on a neighbor?). Programmers can literally envision things in their minds, and then make them come to life after putting hands on keyboard -- there's no effective equivalent in medicine and law. (Biology/biochem/chem, sure.) Also doctors and lawyers have to be accredited by a government board at least at the state level, programmers do not. Doctors and lawyers generally have to spend (or go into debt for) 10's to 100's of thousands of US dollars before being officially allowed to practice in their field -- programmers do not. And in general, the cost of mistakes in programming are small, with no lives or fortunes at stake (in the general case.), unlike law and medicine. Lastly, from what I can tell, in the US the average programmer will make anywhere from 1/2 to more likely 1/10 what a lawyer or doctor will make in their respective careers.

There are many differences between the professions of programming, medicine and law. So it's hard to make sweeping generalizations and use that to draw definitive conclusions.

Programming is very different.


The only difference is in the protectionism of the other professions. Most of the barriers you mention are imaginary. Programming errors can have far worse consequences than medicine or law. I've never seen a doctor or lawyer make a rocket ship turn into the ground (Arian V) or oil pipelines explode (buggy versions of pipeline software stolen by Russia) or make airplanes refuse to execute commands ( airbus and apache FCS). They also can't destroy trillions of dollars of wealth (black- sholes and other flawed risk models, high frequency trading)


The examples you gave are edge cases and exceptions -- relatively very rare situations. Most programming work is hum-drum, with errors being no big deal, and easily and cheaply caught and caught early. I was comparing cases "in the main" between these 3 professions. Also, by pointing out the cases that you did, you actually increased the strength of the point I was making: these 3 professions are very different and one cannot reliably draw conclusions based on similarities.

Agree programming has less barriers to entry. But the barriers to entry for doctors and lawyers are not imaginary. They're real. Are they arbitrary and "made up" via government rules? Of course, and perhaps that's what you meant. But they are real. If you willfully ignore or bypass them you will suffer real consequences to your person including fines and imprisonment.


What are you talking about? When you roll a new version of a high volume web app if it has bugs that don't get caught in certain scripts then you can literally cost people hundreds of thousands of dollars before it is fixed.

eg. A trading platform, an advertising platform, etc.

This is not that rare.


Disagree, I think that's rare across the whole spectrum of programming work that's done. The vast majority of websites have perhaps 100's of users at most. The majority of software written has anywhere from 1 user to 10's, sometimes 100's, and more rarely thousands to millions. For every hedge fund trading platform I bet there are 1000's of Bubba's blogs and Joe's file-munging Perl scripts. The latter is the general case, not the former.

Almost every doctor or pharmacist you deal with on a daily basis can say something or do something that, if mistaken, can end up getting you dead or seriously sick -- or at least fail to prevent you from becoming so. A dead website can be fixed and brought back to life. Dead humans cannot. Well, for now anyway! :)


I disagree. Medicine is not that powerful. Doctors don't have that big power over people's lives. And the ones that do have are mostly edge cases, like it is in programming. Most of the doctors just move you around the "system". I can tell you this because I am a doctor myself. And gave up medicine in favor of programming. Medicine is a beauroucratic closed society, that is not willing to accept new members. They have the power and connections to make their profession seem "elite" and "important" and "dangerous". And they impose expensive university education (which is mostly unneeded in order to "do the job"), government regulations and all kinds of other hindrances in order to hide that their profession is just like the rest. From my experience so far, programming is much more difficult (unlike medicine, you need to think all the time), changes much faster, and changes are far more radical. In medicine you don't pick a new speciality every few months/years (like we do with languages). In medicine patients don't get released with new versions (incompatible with former ones), every other month. Doctors' tools (pharmaceuticals) don't change with the speed our tools (libraries, frameworks) change. You don't have to pick different "styles" and "philosophies".

I guess you will now ask me "why the hell did you choose programming then"? Yeah, I could earn more money with less work, with less thinking. But it would be much less enjoyable. And I guess this is the reason why programmers get paid less. We love our job. And we are willing to do it just for the sake of doing (and a little money for living).


Okay, I've just graduated as a vet and I had a bit of a crisis where I was worried: 1) That medical professions remain in their elite positions by using inaccessible language and a closed community 2) That there was a limited range of tools where much clinical work is just remembering someone else's solution to a particular disease and involved little in the way of problem solving and as a consequence something that I thought would be a mentally stimulating career just wasn't. I don't think I would have got into programming had some parts not been fairly dull.

So i finished the course and am looking forward to going into practice. As far as having a closed and (seemingly) elite community goes thats actually not such a big problem. Textbooks are available to anyone. The closed society should just be considered as a quality control. It is possible to get hold of any of the equipment required for medical practice but when you go to a doctor (a member of a profession) you are seeing an individual who has their competence vouched for and is subjective to professional discipline should their service be found to be lacking. I think it is difficult to justify the rates doctors get paid but self regulating professions do at least have quality assurance.

I also agree that there is a lot of university education in terms of what is learnt didactically is unnecessary for most of the day to day job but this totally misses the paint. Even though pharmaceutical tools may be fairly limited our understanding of pathology and epidemiology is continuously expanding fairly rapidly and what it teaches you is to educate yourself rapidly as this information emerges (and particularly in veterinary medicine collate this information sensibly when the information you want is not directly addressed in the literature - something that can only be done with a thorough understanding of physiology, immunology etc). Secondly since this discussion seems to be focusing on edge cases a lot we should not forget emerging diseases since these cannot be properly addressed by someone that is limited to the day to day 'do the job skills'. An excellent example of this is the diagnosis of blue-tongue virus when it first arrived in England.

As for wanting to be in a profession where you have to think all the time, I think it is possible but I think you need some kind of developer spirit. To do this you need to try and get yourself to some kind of cutting edge. This is easier to find with programming because it is a much newer skill set (and with veterinary medicine as compared to human medicine). To this end if you consider specialising and doing clinical research or doing something that involves policy making, or practicing somewhere where resources are fairly limited then I think you can have an intellectually rewarding career. Any career can be as interesting as you make it. If you find yourself bored because you are having to treat the same thing over and over again either change your specialty in medicine (pick a different "style" or "philosophy" [you may see the problems the patient has differently and take a different approach in addressing them]) or go and try address the root cause of the problem. You miss also that what is interesting in programming is that problems that you are faced with also seem to be changing rapidly as do areas of new development. I'm sure new tools would eventually get boring if the problems became static.

I think you're spot on about picking a career that you enjoy. I you've shown as well how important it is to consider where your at regularly and make an effort to keep what yo do interesting. The implication that all programmers love their job is as easy to disprove as other professionals not loving theirs. Providing you have some control on the development of your own skills I think any job can be satisfying. Don't use this love as an excuse for poor pay. Price yourself to show how much your are worth.


I didn't say that I'm not happy with what I get paid. And it wasn't an excuse at all. Just the opposite. I wanted to show why the people saying that "medicine is paid fairly compared to programming" are wrong.

I wanted to debunk the myth saying that medicine is the holy grail of professions. It is not. It's overrated, over-regulated and over-idolized. It's quite like the music industry. And it has to change, but changing it will be much more difficult than changing music industry.


and I don't think everything a doctor or lawyer does is then thoroughly tested.

And if you fail to meet the high barriers to entry for doctors and lawyers, the likelihood that you'll make disastrous errors is pretty high.


For a very long time indeed in America, the majority of medicine was practiced at community clinics by nursing staff. A doctor was consulted only when necessary.

The vast majority of medicine could easily be done by the intelligent layman. Like programming.


The clinic I go to has a staff with two doctors and several nurse practitioners (nurses with special training who are authorized to do some doctor-like things like make diagnoses and prescriptions for low-risk conditions). When I see an NP I am grateful for their presence, as my doctor probably has enough shit to do and can't be bothered by my mild to moderate medical questions.

The proliferation of nurse practitioners and physician assistance may provide something of a release valve to counteract the elitism, scarcity, and costs associated with doctors at least until there is reform within the medical profession itself.


Is it? Or is it something we just believe? Doctors used to think that having paramedics would result in disaster.

I think the vast majority of times one needs to use the services of a doctor could be handled by someone with far less training and certification.


The industry is moving in that direction as well. Nurse practitioners are now the common entry point into the medical system, with doctors reserved for follow-up. Even LPNs are being phased out in favor of medical assistants.


Also non-doctors have a much higher usage rate for expert systems and data entry systems. and their work patterns are usually highly formalized and verified by expert docs.

So in practice , non-doctors might be able to offer better medical treatment , than you average doc.


And if you DO meet the high barriers for entry, the likelihood that you'll make disastrous errors is pretty high. The statistics vary wildly depending on sources, but it is quite possible that iatrogenic and nosocomial diseases cause more deaths per year than auto accidents.


<I>Unfortunately programming is really the first discipline where the primary determinant of the "factor's" productivity is not the manager's skill but actually the intelligence of each individual.</I>

Are you really suggesting that programming is the <b>first</b> profession to arrive on the world-scene in which productivity scales with intelligence? I think that's a bit egocentric. I can think of a few others.


The "first"? I don't think so. Consulting engineers, lawyers, etc. have been around for a while; their productivity was always more a function of the individual than of their managers.

The primary problem is that organizations seem to want to treat developers like other office workers, rather than as professionals.

Oops, just saw someone else said this below. He is correct.


I mostly agree, except for the part claiming "programming" to be the first discipline encountering this "issue".

I think this is true for most professions based on knowledge and using mostly mental capabilities: scientists, journalists you name it...

Rating mental work is very hard and still quite a new requirement for our societies, thus we are really missing reliable and acknowledged "frameworks" to handle this.


Every programmer is an executive in the sense that his code actually ends up doing business decisions -- all in a complexity far above the average managers head. I guess they'd be scared shitless if they'd understand it.


Programmers are the managers and computers are the factors of production.


Management = Leadership + Administration + Manipulation


Having tried this approach I can tell you that offering more money results in perhaps a doubling of the number of barely competent programmers, a ten-fold increase in the number of completely clueless, and no apparent increase in the number of people we'd actually want.

My results are not statistically valid, I've only gone through the hiring cycle five times, but my impression from actually trying it is that salary is not what it's about.

Dan Pink said it well:

http://news.ycombinator.com/item?id=782171

http://news.ycombinator.com/item?id=1357390

http://news.ycombinator.com/item?id=1439939

The problem isn't attracting candidates, it's getting the candidates to see your job opening, to understand that it's a great place to work, and then filtering out the clueless.


> The problem isn't attracting candidates, it's getting the candidates to see your job opening, to understand that it's a great place to work, and then filtering out the clueless.

And then offering them enough money so they don't have to worry about it. Because, I'm sorry to say, minimum wage isn't going to cut it.


2ND VIDEO: 4m50s:

"IF YOU DONT PAY PEOPLE ENOUGH, PEOPLE WONT BE MOTIVATED."

"THE BEST USE OF MONEY IS TO PAY PEOPLE ENOUGH TO TAKE THE ISSUE OF MONEY OFF THE TABLE".

"ONCE YOU DO THAT THERE ARE THREE FACTORS THAT LEAD TO BETTER PERFORMANCE..."

Once you do that. Clear? Once you pay people enough to take the issue of money off the table. This is your link dammit.

For me, with a wife, two kids, and a car racing habit, that "enough" is a lot higher than it is for a 20yo student. Its about $130k in fact.

As for your results, as you say: "not statistically valid". That actually means something.


What about those Hacker News members who are looking for jobs? Is there a good resource of tech positions available?

Personally, I'd love to see a nicely-indexed list of jobs. Things like location, work environment, remote working arrangements, languages used, expected number of hours worked, typical responsibilities, schedule flexibility, vacation possibilities, who I'd be working with, degree of autonomy, level of recognition for work, perks and benefits, etc. are all factors that go into liking a job. And that's not even mentioning money.

Personally, I'd love to start a job working remotely at $40/hour for 20 hours a week or so. Once it was determined that I'm a good fit, I'd be willing to relocate to a lot of different places (e.g., Baltimore, Chicago, Denver, Atlanta, New York, pretty much anywhere warm and coastal).

I think the question isn't so much why is it so hard to find the right employee or job. The real questions are:

What are the actual job requirements? I don't mean traditional notions of what a reasonable work week are. I mean what do you truly need? It might be possible to get a rock star developer working for you at a cost of $40K per year, if you can eschew the standard notion of a 2000-2500 hour per year commitment.

If you're a potential employee, what do you really want from the job? Focusing on the money is not the answer. Make sure that what you'll be doing, who you'll be working with, and where and when you're working all fit well with your personality and work habits.

And why is it so hard to match jobs and people up? Is there a decent resource anywhere that I could use to actually narrow down job opening according to a slew of criteria? In a high-demand field, doesn't it make sense for the potential workers to post what they want in a job, and have the jobs bend to that? Maybe I'll make a submission along those lines...


You have to understand: there's more to hiring programmers than paying lots of money. If that were the case, we wouldn't have had a dot-com bust and software companies would be dominated by MBAs.

That's the hard part of hiring programmers. How do you incentivize the good ones to work for you? If you have a solution to that problem, I suspect you'll be a very much in-demand person.


> How do you incentivize the good ones to work for you? If you have a solution to that problem, I suspect you'll be a very much in-demand person.

Bonuses, perks, and congrats on jobs well-done. If I spend 40 hours between Dec 31 and Jan 2 writing up a new wireless barcoding system because the powers that be decided at the last minute to begin the new year with a different process for warehousing, I better get a damn bonus, at least 1.5 x 40 hours of my rate. You know what I got upon successful completion of my last-minute project? "chime, if you had originally developed a flexible enough system to accommodate changing of bin/zone locations, you wouldn't have had to work in the last minute." I resigned from that job.


Bonuses, perks, and congrats on jobs well-done.

Maybe... certainly respect is needed but...

What about a sane work environment??

What about a system which is actually aiming to produce good software??

What about not structuring your system for 80 hours weeks from the get-go???

I don't know how many vile, worthless hoops I've had to jump through in previous job searches.

Still, I've also interviewed for places that made a virtue of their good process to the point of expected people to work for less (I think SAS was their model). That won't fly either because it's not really respect either.


Bonuses, perks, and congrats on jobs well-done.

Speaking only for myself, non of those things would really swing it too much for me. Give me challenging projects in my preferred problem domain, sane working hours and environment, an opportunity to grow and improve my skills and surround me with brilliant colleagues to work with, and I'll happily forgo the perks and bonuses.


> Give me challenging projects in my preferred problem domain

The projects were challenging, that's why I stayed for so long. When you have tons of student loans, mortgage, and hospital bills, you can't forgo the perks and bonuses. I have a family to take care of so what I really want is everything. I want a good work environment, I want good money, and I want fun projects. Why? Because I give them back what they need: stable/reliable, problem-solver, productive etc.


As a programmer bonus and perks are definitely incentives, but a nice steady "I love your work" kind of vibe is a great way to keep me in my job.


> "I love your work"

Nothing says "I love your work" more truthfully than a bonus or a raise.


Where have you been working for the past few years? A bonus you get it twice a year, a boss respecting your work and saying thank you, you have it every single day. If you are paid correctly, you should not even need a bonus but you cannot go long without respect from your boss and peers.

By the way, it is proved by countless experience that once salary is good enough, it is disconnected from happiness at work.

Good pay and respect will bring you way further than good pay, bonus and "you are my slave".


> By the way, it is proved by countless experience that once salary is good enough, it is disconnected from happiness at work

That's not any different then what they OP is saying. The issue people have at finding good programmers is that they aren't paying enough.

Yes, other things matter, but if you start off by offering minimum wage, a "Good job!" doesn't really matter.


Personally, having my boss say thank you doesn't mean much to me. That's not because I don't want appreciation for my work, but because praise carries a more significant meaning when it comes from someone who you hold in high-enough regard.

For me, high-enough regard can mean someone whose work I know of and can appreciate on its merit, or it can mean someone who used my software by choice.

For example, if my boss' actions don't show that he's interested in my happiness at work and he thanks me for making his pet project happen, it means nothing to me. But, if a customer, or someone whose work I admire, tells me they like the software I created, they've just made my day.


I agree. Especially if the employee is actively asking for a bonus or a raise, and being denied.

If an employee says to the boss "Hey, I think I'm worth X more than you're paying me", and after extensive "due process" the answer comes back from management as "No, and you can't have more time off either", that's a clear sign that the decision makers have, at best, limited respect for that employee's work. Verbal claims of respect, at this point, are almost offensive.

That said, on the other hand, piles of cash but nary a kind word is also not very respectful.


That was retard management at its worst.


You have to understand: there's more to hiring programmers than paying lots of money. If that were the case, we wouldn't have had a dot-com bust and software companies would be dominated by MBAs.

That's probably half-true: you're right that there's more to hiring programmers (and many other kinds of professionals) than paying lots of money, but there's also probably a minimum barrier to entry. I doubt you're going to find high-quality programmers to work for $30K per year, even if you buy them an Embody (http://www.hermanmiller.com/Products/Embody-Chairs), give them a window, offer to let them rewrite everything in Scheme, and do whatever else Joel Spolsky has mentioned.

I'm not sure what the minimum really good programmers will go for in most of the country, but I'd be surprised if the answer is less than about $50K, and even that's probably way too low. Until you hit the minimum threshold, the rest of your comment doesn't take effect.


I think there is a large factor of "specific incentives spoil the game for me" in programming. What I'm trying to say is, the moment you put a price on something you diminish its value and decrease motivation. Just pay the folks enough to get the money factor out of their minds and give them great challenging work. The last thing that a passionate and competent programmer actually wants to think about is money. Carrot/stick technology is outdated.


Part of the problem is most managers are totally clueless as to how to identify a good programmer. Many of the worst programmers have the most impressive looking CVs and the best programmers don't have the time to futz over their CV. Besides, they probably never need to look for work - they get poached.

As for incentives, there are lots of posts on HN about incentives that work, like time out for pet projects, like telecommuting, like 2-3 month holidays, like no drone work, like excellent tools, LCDs, chairs, perks.

And ... the best of them all .... NO PHB's !!!


You first have to explain how programmers are different from any other profession, and how the law of supply/demand strangely fails here. Personally, I consider income, working conditions and project type. I'll apply if you offer a Wall St. salary, or let me work remotely, or are working on something I think is super cool. Offering $10K more than my current salary for the same job is not worth my time. What are you offering?

My friend is trying to hire some devs for her big bank. They offer ~$50K more, but the work environment is HELL and the projects are mind-numbingly boring (back office). They can't find any competent devs. He said they hired an ex-MSFT and ex-GOOG once, but both quit within a week.


You make them respect you by understanding what they do and treating them like what they are: the people who create value for your business. You show actual respect for the work they do and give them interesting things to work on.

I think Fog Creek gets it right. You don't treat programmers like second-class drones who make things for you; you treat them like the primary creators of value for you company, and yourself as their support staff (abstracting away the mechanics of running a software company so all they have to think about is coding and typing commit.)


> you treat them like the primary creators of value for you company, and yourself as their support staff

Bingo! The best managers I have had over the years spent far more time getting me what I needed in order to do my job than they did telling me what to do. They also got the most value out of me, and ended up looking the best in front of their bosses.


> How do you incentivize the good ones to work for you?

A good start is not to use words like "incentivize" around reasonably intelligent people :)


Incentive == Money. Incentive !== Money.


Huh?


It makes sense in PHP. (Thinking in PHP is a terrible thing to do to your mind.)

I believe OP is trying to say: Money is an incentive. But it isn't the only incentive.

(== in php isn't the equality operator insomuch as the 'kinda like' operator.)


May be he was thinking in the good parts of JavaScript

http://www.jslint.com/lint.html#equal


Yes, good link.


Money is a representation for incentive but not an exact representation. The gap between the two, between the model and the real world, is the interesting part.


> How do you incentivize the good ones to work for you?

Easy. Instead of giving the programmers managers, put the programmers in charge of their own projects and give them administrative assistants to handle all of the non-programming and non-decision-making parts of the job.


t


Assuming you get everything else right, you have to offer more money. It has been suggested that this will cause your inbox to fill up too fast.

How about an online test? A web server that runs sandboxed C? Or maybe a character in Lambda MOO that requires you to complete a "quest" in a time frame that would require a programmed response? (telnet://lambda.moo.mug.org:8888)


Spotify recently ran an online programming competition to find suitable candidates.


How will offering a higher salary deter less qualified people? It seems like it will attract more of all kinds of programmers.


"How will offering a higher salary deter less qualified people?"

You've got it exactly backwards: it's not intended to deter the unqualified, it's meant to attract the qualified.

And yes, high salaries do tend to attract good people. Maybe not exclusively, but it's an important factor. So, if the complaint is that "there are no good programmers" (and we assume that your screening process isn't totally arbitrary), there's a pretty good bet that you're not attracting good programmers from the places where they currently work. High salaries are a good way to do that.


You may attract more qualified people, but the number of unqualified people may increase as well. Put another way, you may get more qualified people in absolute numbers, but the signal-to-noise ratio could go up, too.


One option is to find a qualified technical individual - either someone on staff (such as a systems administrator), or someone from outside the company whose opinion you trust (perhaps a service provider, or perhaps the lead developer at your friend's startup, etc.).

Find someone who doesn't actually want the job, but who has the skills to help you narrow things down. Trim out the people who obviously aren't qualified (or who didn't even read the job application properly). Pay him by the hour (his normal IT wage, $75-150/hr, whatever he's worth) to sift through the resumes you've narrowed it down to. Have him pick out the most qualified or most interesting candidates with little annotations as to why yes or why no. Doesn't have to be complex - notes like 'Only Microsoft experience listed', or 'lots of experience with web app development' or 'he lasted four years at BlahTech; if he weren't awesome they'd have fired him after three months', or 'he wrote half the code on the database system you're using'.

It's something he could probably do in his spare time, lounging at home on the couch with a stack of PDFs. If he spends five hours at $100/hr over the course of a week, that's $500 that went towards not wasting your time in useless interviews, or less risk of hiring the wrong person and wasting far, far more. That could be a dozen first-round phone interviews you've skipped over by narrowing the candidates down. If each interview is an hour long, that's a day and a half of everyone's time saved.

It's pretty easy to find someone with technical skill if you do your research; the hard part is finding someone who's looking for a job, or at least the one you're offering specifically. A 'clueless' manager won't know what to look for in a candidate, but if they can narrow things down and then hire someone else who can, it can save a lot of time and money.


An outside person has no "skin in the game," thereby creating a skewed incentive structure. Paid by the hour, the incentive is to process as few resumes as possible. Paid by the resume, the incentive is to reduce th effor per resume.

Personally, I this kind of work terribly tedious, at best. One would have to pay me at least double my normal rate.

The traditional model might call this role an "in house" conteract recruiter, and I doubt the good ones get paid what a good programmer or sysadmin do, thoug perhaps they should.


"You may attract more qualified people, but the number of unqualified people may increase as well."

...which is why you have a screening process.

When people are complaining that there are no good programmers (and this is a common complaint on HN; it's not just a straw man), there's at least one of two things going on:

1) Their screening process sucks.

2) They aren't attracting good programmers.

High salaries help with #2.


Hopefully higher salaries are also going to help keeping your existing programmers, which will alleviate the need to go and get more programmers.

Also, if you have a stellar programmer in an interview, they tend to stick out more than their non stellar counterparts.


Maybe the interviewing process is different where you are, but around here the salary is normally not mentioned in the posting - you'd normally get asked about your salary expectations once you've been through the interview.


I will not attend a long interview process if the salary is completely unknown. The least I do is to tell the possible employer what my expectations are and check whether this is ok for them.

Of course it would be better to make them define a salary range, but until now I was never able to do this.


The first interview (at the end of which you'd talk about the salary) is only an hour or 2, so I don't think it's that bad.


It's a question of supply and demand. An hour or two for someone who is already working can be quite annoying when it's a dead end. On the other hand, it may lead to future opportunities.

Once you reach senior level development in popular technologies, companies are often eager to come after you. (At least, that's what the recruiters and help want ads seem to indicate about senior level J2EE developers around the Philly area.)


As the parent pointed out, in some areas/countries it's completely uncommon to announce salary ranges in job ads. What are you going to do then? Never apply? Move to another country?


Ask?


I no longer apply to jobs where the salary is not advertised. After turning up to a few interviews in the past where the salary was well below market rate I don't bother wasting my time any more.


I'm trying to bring up an automated screening service at http://codeboff.in/ (self-promo alert) because I think we need way more of these, especially being the sort of people who could make them.

Edit: by 'we' I meant 'we as programmers'.


There is already codechef.com, codility.com, spoj.pl, online-judge.uva.es, ideone.com, turingscraft.com, etc. How is your service going to be different?...


In my experience when someone is looking on the top-end of the salary range, they NEVER post that to a job board. It's done through networks and well established recruiters. I've never seen a $150k+ programming job, my only exposure has been through recruiters contacting me working on filling it.


If the number of qualified applicants increases from zero to more than zero, it will be worth the noise.


You mean the signal-to-noise ratio could go down, right?


I'd imagine the incompetent ones wouldn't bother applying to jobs that are "way out of their league".

If you are "sucky" you might still apply for a $60K job, thinking that you might slide through. But you wouldn't bother applying to a $100K job, thinking that there'd be way more competent people applying so it'd be a waste of time


I'd imagine the incompetent ones wouldn't bother applying to jobs that are "way out of their league".

Never done hiring before, eh?


You'd imagine that, but you'd be wrong - there are a great many technical employees who don't realize they are way out of their league and will apply anyway.


"Hey, I've got 'two years of experience with .NET'! I remember, because it was my birthday last week and on my birthday two years ago I wrote a little digital clock app from a tutorial I found in a magazine. Man, who ever thought ten minutes in Notepad would net me a $100k job! I'm totally going to apply, and when I get this job I'm never working at another Burger King again!"


Haven't been on the hiring side, but in my experience as an applicant years-of-experience requirements are often inflated and represent wishful thinking. I'll usually apply to anything that lists within 50% or so of what I have, and often still get called in for interviews despite my resume clearly showing I don't meet the nominal criteria.


Upvote for satire!


I'm curious about why this was downvoted.

Is "upvote for x" too reddit-y?


You honestly didn't consider that it might be because the comment was entirely pointless?


I actually thought it was better to be specific about why I liked the parent link, because that way the parent would get more upvotes, which I believe it deserved.


This is not a community concerned with upvotes. It is a community concerned with content, and especially with getting good content as quickly and as easily as possible. We upvote to signal good content. We do not comment to signal good content; that is what upvoting is for. We comment to add content; this can be in the form of insight, correction, elaboration, humor, summarizing a long article well, adding a personal anecdote or expert knowledge, answering a question, or any number of other things. Our comments should not be complaints, memes, or other wastes of space and time.

Before clicking the reply button, ask yourself, "Am I really adding something, or should I stop procrastinating and get back to work?"


OK, I appreciate this explanation. By your rules 'upvote for satire' deserves its downvotes. I agree.

I still don't see why the child-post was downvoted. In my view I wasn't whining there, merely asking.

So I'm skeptical that everyone here behaves perfectly rationally in the context of the community rules you've listed. And I don't view this as a waste of time, because I'm trying to figure out how things work here.

Edit: OK, forget it. I'm taking it too personally. You're right, asking 'why the downvotes' is also not good content I'd like to read from other comment'rs.


And on the flip side I've seen a lot of arrogant people on the hiring side who think a given applicant is way out of their league -- but the applicant isn't. It's just that the hiring side folks have preconceived notions, stereotypes and "goggles" distorting their judgment. So, it works both ways.


The ethical policy you're imputing to most 'programmers' in the real world is far from the reality of it.

I regret not having applied to many great opportunities as a younger programmer because I filtered myself out, when many who are worse off never do.

Self-promotion: http://blog.codeboff.in/2010/06/25/good-programmers-are-hard...


You'd imagine wrong, if my past experience is anything to go by.


It should improve the ratio though.


Maybe, maybe not. I think a better way to filter people would be something like Justin.tv or Facebook does where they have applicants write code as part of the application. I don't have any experience with hiring so i don't have any real data, but I'd love to know how effective those are.


Company I work for issues a basic data structures test to be completed in 1 hour for all resumes worth their paper (about 10 to 15 out of 100 candidates). The test boils down to 'fill in these two functions'. About 20% finish both functions correctly in an hour (I still had an infinite recursion at the 1 hour mark and submitted a correct entry 10 minutes later).

In conjunction with a phone interview we typically only have an actual sitdown with 2 to 4 candidates out of the initial pool of 100. We recruit out of college so resumes get handed in like candy, but this process has effectively helped us find candidates that are at least capable of learning the monolithic code base and getting fully up and running in a few months.

Our company still has an absolute terrible code base. It is very feasible to nuke skilled programmers once you have them.


Upvote for being very honest.

Isn't this what happened throughout the industry? (with a very few exceptions).

This is exactly what makes my belief about "great programmers" just went out of the window: no matter how great an individual is, the fact that plenty software houses have terrible code base show something else.

People can blame the businesses, the time-to-market, the deadline or whatnot and I believe you guys.

But at the same time, are you being fair toward your profession at the same time?

If great programmers do exist, I'm expecting them to change these ugly code bases everywhere to the point where 50% of any companies out there would have good code base (and that includes unit-tests)


Unless management has made the decision to invest in a solid-wall backstop of functional tests, then no amount of great programmers can clean up a codebase. I've known and learned from some of the best coders alive, and none of them would wade into a known-good codebase that they didn't have solid experience with or responsibility for and start refactoring. Code that they were on the hook for? Open season. Code that someone else was going to get the call on at 3 a.m.? Wouldn't touch it with a ten-foot pole.

Given that, I wouldn't expect '50% of any companies' to be good. "If it ain't broke..." is really good advice about 95% of the time. If you're 50-100% overbooked, you don't screw with other peoples' code just to try to make things better around the office.


My main point is you can find all the great talent you want, but people, just like everything else, are not silver bullets.


This only works if there's a time-limit. Facebook's doesn't have one, so they make the problems inordinately time-consuming, which has the side-effect of filtering for not just skill, but desire to work at Facebook as opposed to the many alternatives that won't make you spend the equivalent of nearly an entire workday applying. Six months ago when I applied, I spent a day completing a puzzle--and getting their puzzle-bot to accept it... it only runs every few hours, on input which is unbounded so you're not sure how optimized your solution has to be. If your solution doesn't pass, the puzzle-bot does not tell you why. Afterwards they asked me to do another puzzle at which point I voluntarily dropped out of their interview process. Overall I would say the experience was very poor and reflected badly on Facebook in my mind.


Second most important thing after judging whether you could handle being stuck in a hot office with the guy for a month.


The same thing is (and has been) happening with nursing. They complain endlessly about the "nursing shortage" unable to figure out why people might be unwilling to do a hard job for long hours requiring extra education and incurring outsized liabilities for extremely low pay.

The really bad news is its starting to catch up with many doctors as well.


> for extremely low pay

Not sure where you are from, but here in Canada nurses lead very cushy lives. Salaries of 80 to 120K are not uncommon, and that's with 4 weeks of vacation, 1 day in / 3 days out schedule, etc.


As the spouse of a former Canadian nurse, and friend of others, I think you might be stretching the definition of cushy. Average salary for an RN in Canada a couple of years ago was about $32/hour. You probably would clear $80K if you were a full time nurse, because of all the mandatory overtime.

If being an RN was cushy, I think there'd be less of a shortage of working nurses in Canada.


Here's a link to information about base pay for nurses in the US (2006). It actually mentions the nursing "shortage" at the top: http://www.allied-physicians.com/salary-surveys/nursing/


Thanks for the link! Good to see supporting evidence.


2006 and 2010 are a world apart economically


Not like that in the U.K. I think


Do you actually know any nurses, because I doubt it from your description.

My gf is an EMT, and two of my sisters are nurses. Here's the actuality:

Nurses are paid OK. They work long stressful jobs with severe penalties, both moral and civil, for screwing anything up. There is a high chance of serious injury, particularly while trying to move or assist fat or obese patients, of which there are more and more due to the obesity epidemic and diabetes. Working as a nurse or EMT means physical labor involving long periods of standing on your feet; little control over when your shift ends, no matter what the schedule says; having to work very early morning or very late evening shifts to get 100% coverage; and very little flexibility during the day. You know how you can run small errands and do little errands with your computer? They, for the most part, can't.

They also have ongoing education and certification requirements that they most often pay for out of pocket.

Finally, being an EMT, paramedic, or nurse means not only developing an intimate relationship with bodily fluids of all sorts but seeing on a daily basis the worst things that can happen to a human being. From mangled bodies from car accidents to cancer, to diseases (including those that require hazmat suits and offer severe risks if anything goes wrong), to infected wounds, to septic shock or heart failure or stroke, they see all the things that can go wrong with a human.

So yes, they're fairly well paid, but I wouldn't describe their actual jobs as anything like "cushy".


> Do you actually know any nurses

I do. My best friend is an ER nurse.

> I wouldn't describe their actual jobs as anything like "cushy".

Cushy in terms of compensation and benefits. Not in terms of work being easy. Please read the post that I was replying to.


"particularly while trying to move or assist fat or obese patients"

There is a mechanical solution for this. A crane like apparatus for moving a patient. It was used in a revalidation center when i saw it last. Instead of a couple of nurses who move one patient, one nurse uses the device. This one nurse moves the 'cloth' which holds the patients under the patient etc.

A couple of Nurses are faster though.


I wouldn't describe nurses in the UK NHS as being underpaid either:

http://www.nhscareers.nhs.uk/details/Default.aspx?Id=4


The best way to hire good programmers is by tapping into the network of the good programmers you already have. Everyone with a few years of experience has a short list of developers they'd like to work with again.

EDIT: sponsoring hackathons may be another way of finding great programmers. And don't forget the colleges in your area: if you have an interesting piece of technology you can show off, you can present a talk and hopefully get a handful of resumes.


Networking is a good strategy, but you have to temper it with interviewing and portfolios or it can turn into nepotism and a mushroom cloud of bad hires.

Hackathons and design contests like topcoder.com are great for employers but really bad for contestants, most of whom are left with nothing.

http://codeanthem.com might turn into something of an inverted marketplace where employers can compete for the attention of good programmers. (I'm not associated with codeanthem.com)


Yes, and they all, without exception, have well paid, highly rewarding jobs. What would make them risk leaving that job?


I suppose this refers to us (and our Will the real programmers please stand up post). If it doesn't, excuse our self-centeredness and kindly disregard this message.

Our salary structure is designed to select for exactly the type of people we want to attract - the kinds of people that will go through walls to bend the world to their will, for some deeply ingrained reason unknown to anyone but them. For people like that, we pay an incredibly high salary that they're unlikely to find anywhere else (2.25% of everyone's contribution on the high end). If you're the type of person who wants to change the world and have a shot of building a one billion dollar business while doing it, you're unlikely to find a higher compensation anywhere other than choosing to start your own business.

If you're interested in having a stable, $200K job, RethinkDB is not for you. Neither of these choices is better or worse, simply different. It's a question of temperament. We weren't complaining, we were working to recruit great programmers who are driven to change the world. This is exactly what the post accomplished.


"unlikely to find a higher compensation anywhere other than choosing to start your own business."

Which is exactly what I did. Freelance contract programming pays the bills (and is quite enjoyable) and I'm bootstrapping a startup on the side. It's not so much for the compensation as the challenge of something new and the independence to make my own decisions.

So at least in my case, it's not your fault. You can put the most attractive job offer out there and I won't bite. I'm wondering if there are a lot of programmers like me. That would certainly reduce the supply.


waves. Yeah, I literally fell into the consulting business, and here I still am, 2-1/2 years later, slowly transmogrifying from a consultant into a small business. It'd not really about the money: as a family guy flexibility counts for a whole lot more.


..and yet you aren't attracting the people you want.

Hmmmm.


Of course we are. We just need more :)


So you've found all the ones who have low expenses. Well done. I have a family, a mortgage (or high rent), extremely expensive car insurance, and a shit-ton of experience. I love programming no less than I did when I was 10. If you would like to hire me, and people like me, you will need to offer more money. But if your business can handle being understaffed, by all means keep offering the same salary.

$125k to work in Silicon Valley? Will that even cover my rent? I used to work in Palo Alto - shared a 1 bedroom apartment - took turns on the couch. It was fun, when I was straight out of college.


(2.25% of everyone's contribution on the high end)

I'm probably dense, but what does that mean?


They offer stock options.


Which means wall papers if it didn't work out. If the failure rate of startup is to be taken into account. It should be divided by 10X to 50X.


Certainly, but it does mean that. Besides, 2.25% of a company is a meaningful amount, so at least a senior developer would make some actual money if RethinkDB hits it big.


Why don't you pay 200K for the positions and see what happen?


Because it's entirely feasible that they go out of business?


tl;dr: Choose to start your own business.


I feel that good/great programmers ask too little. Because there's order of magnitude of variance in skill sets and productivity, there should be much more variance in salaries.

In Finland, if you leave out top 0.5%, the variance is between 2000€-5000€. And most of it settles around 3000-4000€. Finland is very eqalitarian society when it comes to salaries and thus that has to be taken into account. But still. 2.5 is not much, think how much variance there is in salaries of managers, lawyers, doctors.

How's it in States, what are the typical salaries for good or great programmers vs. below-average progammers? Leave out top 0.5% - i.e. rare individuals with specialized skill sets in e.g. bank security.


Different parts of the US have such large variances in the cost of living that it's hard to give a meaningful answer (i.e. non-skilled labor here has greater variance than that).


How about e.g. in Bay Area? What's a typical range for skilled programmer and what a horrible coder can earn while hiding inside some clueless big co?


The knowledge that there is huge variance in productivity level of programmers is kind of useless, because we mostly lack the ability to reliably measure true productivity. Similar to advertising: "I know I waste half of my advertising dollars...I just wish I knew which half." You can really only pay amazing devs more if you can figure out which devs are the amazing ones.


Let's also address the issue of interviewing. Most people can't tell a good programmer from a bad one (which is sad, really). There are also a ton of people out there that mistake higher percentile technical competence with software development competence. This recently got posted to HN and sums up the overall situation nicely:

http://www.rethinkdb.com/blog/2010/06/will-the-real-programm...

Pay is but one factor, and resume (or job description) plus salary requirements aren't going to communicate what you really need to know. More than 90% of the jobs I've interviewed for had laughable interview processes. I've asked harder questions of my interviewers than they've ever asked of me. Most people just don't get it.

A "competent" developer needs to be hard working, interested in your particular problem set, and like the work environment you've created. You need to dig in and find out what this person is really about. Even if they're competent they may not like your company, idea, or even you. These are things you, and they, need to find out before the hire.

You/They aren't finding competence because you/they aren't looking for it.


I think you have it exactly backwards. The best programmers I know seem to be indifferent to cash. They work on the most interesting project they can find that pays them enough to live. Hiring people like that is really tough.


> The best programmers I know seem to be indifferent to cash.

No, they do care about cash. How do I know?

>They work on the most interesting project they can find that pays them enough to live.

There. That's why. If they weren't making enough money to meet their needs, they'd be looking to trade up. Money isn't the only answer. Everyone likes to talk about how money isn't the solution. I'm pretty sure every one is making a bit more than minimum wage or aren't looking to get compensated in some other way in the future.


Yes, but offering more money to someone who feels like they already make enough is amazingly ineffective. My point is that, in my experience, great programmers place a much higher value on doing interesting work than they put on making more money.


> Yes, but offering more money to someone who feels like they already make enough is amazingly ineffective.

Which is completely besides the point. Listen, I understand that point of view. I agree with it. I live it.

> My point is that, in my experience, great programmers place a much higher value on doing interesting work than they put on making more money.

Only after they have enough money to not have to worry about it.

Offering programmers minimum wage isn't going to entice them from their 6-figure job, even if the work is challenging and fun. Most likely their 6-figure job is already exciting and fun enough.


I completely agree with you here. Lot of comments on this thread say "Money is not a good motivator" vs "Money is the only motivator". But as you said, things are somewhere in-between.


I'm interested to know who they are. I'm dead serious.

If "great programmers" work attitude is based on mood swing, business owner will be in danger hiring "great programmers". Cause what you just said boils down to human's mood to perform. "I'd like to do this because that's what I want to do now, I don't like to do X,Y,Z" where X,Y,Z are usually "testing, documentation, and mentoring".


There are three that come to mind right now, but I don't think it's appropriate for me to name them. Two of the three could literally double their salaries if they took crappier jobs, but they don't because they have great gigs and don't care much about making more money.

Getting people to perform always comes to getting them in the right mindset! The more complex and creative the task, the less money matters in doing that.

If your work is mind-crushingly boring and repetitive, you'll go to the highest bidder. (That seems to be pretty much how investment banking works). But if your work is something you love, involves intricate problem solving and creativity, it will take more money to pull you away from a good job.

And for some reason I don't know, most (but not all) the great programmers I've come across haven't been all that interested in money in general.

The sooner people stop equating money with compensation the better off we'll all be. Money is but one small piece of the the puzzle.

Also, I think you're right - it's not always best to hire a great programmer, regardless of cost. If you can't keep them interested and engaged in the right type of problem, they will underperform under the crushing boredom. Get the right person for the job.


[deleted]


Do people really throw around the words "easily get a high-paying job" that easy?

Anyone who wants to start their own startups and not making money is like having a business not turning profitable. Eventually they want the profit to be bigger than working as an employee.

If there are people who would want to work for free, or work for less money in return they get to do cool stuffs (but hear me: cool stuff including writing clean code base, writing proper documentation and writing unit-tests), let me know, I have several ideas that I'd pitch to them and let them run wild and add their own ideas... as long as I get some profits out of them...


If you've offered them more money to do a less interesting job, certainly. Also, good programmers are often quite loyal, and don't want to leave their team in the lurch. There are plenty of reasons why you failed to recruit said programmers. Given that I enjoy my job, and I'm paid "enough", why would I even bother looking at your offer? Offering me a shit-ton of money because "this job will require an elite programmer" will get my attention. Not offering me more money tells me that either a) the job is no more challenging than my current one or b) you're the usual manager who doesn't want to pay a programmer what he's worth.


I think the problem is we have people who equate money with not being an incentive assuming you are being paid enough. However, they leave out that last part. The reality is, that last part is missing from a lot of job offers. I usually find that condition to be critical.


I work in a pretty unsexy field (MySpace apps), and there's no amount of money I could pay to my researcher friends to drop their computer graphics projects and work for me instead.


Which doesn't contradict what I say at all. Indeed, it only supports my stance.


Exactly.

I was advising a startup recently about what tech stack to use. Their default notion was PHP-centric. I pointed at the advantages of other languages/stacks. I said that while it's generally true you can get the job done in a variety of languages and tech mixes (anything that's Turing complete, eh?) it's still very important to pick the right mix, because it impacts other things. One of the things I mentioned was that it effects not just the quantity of folks you'll find on the market with that skill set, but also the quality and really the kind of person.

For example, if I had to wade through 100 random resumes from strangers for a dev job I had to hire for, I'd get very different kinds of people if it were for say a PHP stack versus if it were a Java stack or a Lisp stack. Very different folks, on average. To be more explicit, I'm confident there would be way more applicants if it were PHP, but way better applicants, on average, if it were Lisp. (I did not literally recommend they go with Lisp (dev scarcity factor still a bit too strong for my tastes right now, though Clojure may change that), but I will say that it was not PHP.)


ah no its not..

Often the case is the hiring manager or firm not being upfront and the potential programmer running from the interview process due to that dishonest behavior

we tend to like upfront honesty and transparency because most of us are realists


I am such a person. However, since I have a wife, two kids, and I track cars, "enough to live" means a LOT more than the genius buying the latest killer card deck. Work hard, play hard. Costs money.


In software development, like most anything else, you really get what you pay for.

Being a non-technical co-founder, I did learn this the hard way a few times.

I totally agree that having a competent, hardworking and passionate programmer is probably the most important part of a startup.


"In looking for people to hire, you look for three qualities: integrity, intelligence, and energy. And if they don't have the first, the other two will kill you." — Warren Buffet CEO, Berkshire Hathaway

My Buffet said it best IMHO... I've worked with some competent, hardworking, and passionate with no integrity who have really caused a lot of problems.


Employers: It's not about pay it's about value.

I agree with the original poster to the extent that I see some employers trying to get a "deal" on a great programmer without compensating the lower pay with great work, meaningful equity, or good work/life balance.

You've seen the job posting by Big Dumb Company that wants a "rock start programmer" but has strict policies that won't let them pay rock start salaries or give more than 2 weeks vacation their first year, telecommute, etc.

Then there are the small guys that want you work for peanuts in exchange for worthless stock options i.e. they want you to take $30K less pay per year and if they ever have a liquidity event your diluted stock would be less than that $30K you per year you gave up. If they fail (and they usually do) you'll get squat.


Money doesn't always attract people to a job. The purpose of good pay is to keep people from leaving! Nothing will destroy a code base like having its original designers leave; there has to be someone who can answer questions quickly.

I've never known the salary for a job at the time I applied. I'm not even sure I had a ballpark. It does come up in interviews, since companies tend to want to know what you're expecting. But why should I care? That's what an offer is: if I don't like the offer, I don't have to accept.

To attract good talent, you have to put your requirements right into your job posting. Ask for proof of work on open-source projects, for example; things that are hard to fake. A candidate that feels daunted by your application won't even make it to the interview.


"But why should I care?"

If you know ahead of time they're only interviewing for a position that tops out at $35k and you don't want anything less than $60k, it's better to not waste everyone's time.


If they're surprised that I expect more than they were planning to offer, they might also ask themselves why the difference would be so drastic. Maybe they compare their experience interviewing me, with others who seemed to want less, and make a connection. Or maybe that's wishful thinking. :)


I think it's wishful thinking. Most companies (large and small) I've worked at or known about (via friends) have ranges for particular positions. It doesn't really matter what you want if you're vastly outside of what they've been allocated to pay. Yes, occasionally orgs will bend the position to fit you and modify pay accordingly, but it's rare enough to be the 'exception that proves the rule' when it does happen.


My impression is that most programming jobs don't give a salary range in the job description. If they do include one, the Dunning–Kruger effect[1] could make the more qualified people who are humble think they weren't qualified and they could decide to skip on the job.

If Salary.com tells me that the 75th percentile for my general qualifications in my area is 80k, I'm not going to believe that I'm qualified for a job paying 120k. My mind would resolve that discrepancy in favour of the job requiring something I don't have, not just they employer's willingness to pay well. This may even be true if they say why the salary is so high

[1] http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect


I think you can hire good programmers for cheap, but the tricky part is retaining them. Programmers can be hired for relatively low-wages, but then they should raises every few months. Turnover can be really expensive, and it often isn't factored in. Further, maintenance work may not help the programmers develop marketable skills, so they strong incentive to quit.


The same problem happens in grant writing, my family's field, to the point that I wrote a longish blog post on the subject: http://blog.seliger.com/2008/08/08/tilting-at-windmills-why-... . My guess is that it happens in many others too, and people who are smart eventually realize they'll have to pay for quality or accept lower quality.

Sometimes bargains can probably be found, but they're probably rare and difficult and don't last very long.

Getting really good grant writers (like us) is going to cost at least $100 an hour, and probably more like $125 – 200. The same is, as far as I can tell, true of web consultants. Good lawyers? $300/hour. Escorts? Probably also $300 in most of the country.

If you don't realize how much things and services costs, you'll end up with sub-par quality, or you'll pay, and/or you'll complain. A lot of people do the latter. I wouldn't expect it to stop.


How exactly does offering a higher salary prevent hordes of unqualified candidates from applying?


Why are you concerned about who applies? Wouldn't you be more concerned that offering a low salary is going to have the same hordes of unqualifieds applying, without the benefit of the actually qualified people applying as well?


It doesn't, that's why you need to have good hiring selection processes in place.

But paying the good programmers you already have a much higher salary and looking after them well will deter them from jumping ship.


If you've been around yc for more than a month, you've doubtless seen a number of links to articles on motivation as it pertains to creative activities like software development. The consensus is pretty clear. Incentives hurt productivity in creative activities.

This seems to have something to do with the relationship between creative effort and intrinsic vs. extrinsic motivation. The prospect of an incentive seems to gum up the creative works.

When you compound that with how difficult it is to recognize, let alone find good talent, especially with an interview process, you have a real conundrum.

Real conundrums are rarely solved by naive one-dimensional solutions like "offer more money." An actual solution would have to solve the dual problems of finding good help and not spoiling it with overt incentives.

Clearly there is a real problem here. Perversely, if you could solve it, you could make a lot of money!


You're looking at the problem in the short term. What offering more money can do is increase the prestige of a profession, and increase the number of intelligent people going into the field.

Right now a large majority of very smart, creative people are going into medicine because they want to be challenged and most likely also want the prestige and security of a well paying job. I know more than a few very bright friends who took some CS classes in college and weren't challenged, they ended up going into physics.

Software Engineering should be a high prestige job, to better attract talent to the field, not necessarily to keep your star programmer working for you.


Hey, you rationalize your pay grade anyway you want buddy, but speak for yourself.

I do what I do because I enjoy it, but I never take my eye off the bottom line - and either should you.


I don't see 1) how I was "rationalizing [my] pay grade," nor 2) what the remark about not taking one's eye off the bottom line has to do with anything.

The idea that the OP put forward was that simply offering more will solve the problem of finding competent programmers. My comment was related to recent and compelling research into motivation in creative work. It seemed related. I'm not sure I mentioned my pay grade.

Having one's eye on the bottom line is different from being subject to an incentive program, and different still from being competent. The latter is the more to the point. Anyone can be greedy. Even the incompetent. In fact, due to the Dunning-Kruger effect, it might even be suspected that the incompetent are likely to feel more entitled to a higher wage than the competent.

I am not your buddy. However, I will offer the following friendly advice: You might enjoy the level of discourse on Reddit or Digg more than that on YC.


Next time you decide to be an asshole you should probably construct a proper English sentence.


I don't think that's necessarily the case. If you're looking for very talented programming, chances are they'll already have a somewhat decent job. To pull them from that job to yours, you'll have to offer at least as much as they're already making. Sure, 60,000 USD a year may be plenty, but someone making 65k will probably immediately subconsciously ignore the ad (unless of course they're very displeased with their current job and desperate for another, which probably is also rare for very talented programmers).


Well, you'll have to offer them equivalent worth to what they're making. I left a high-paying job at a company that didn't appreciate its geeks to go to a lower-paying job whose entire staff (except for three project managers and the accountant) were geeks. The founder started the company doing websites in Perl in the 90's, and grew it into a small-scale hosting/app dev company. It's still private, it's still owned by the two original partners, and they still work their asses off every day at the company. The result is an environment that is not only geek-friendly, but geek-run.

Did I miss the large paycheques? Sure. Did I miss the stress? Or people breathing down my neck for results, a week after they said they'd get me the information I needed but never did? Or being denied my vacation pay because my previous management-approved sick days (most of which I spent working from home) were suddenly 'excessive'? I didn't miss that at all.

It isn't about offering people a better salary, it's about offering people a better package. If you only offer $60k to someone who's making $70k, but give them 4 weeks paid vacation, let them work from home three days a week, and let them expense their cellphone data plans and home internet, they'll be more interested.

Especially once you interview someone, you can sometimes figure out what kind of perks will most appeal to them. Mac fanboy? Offer to buy them a new iPhone on launch day every time one is released. You've just gone from $60k to $60.7k, but the employee is going to appreciate it a lot more, since he'll never have to budget for it again.

Does he like to travel? Offer up extra paid vacation, and then add to that $3000 of 'travel expenses' per year, for personal use. That's usually enough to fly two people anywhere in the world, return, so he and his girlfriend can take a nice long trip to Europe after you ship version 1.05 and everyone's ready to unwind. The idea that he won't have to budget for it - that he can just suddenly decide to go to Laos or Mumbai or Morocco, even if his bank account is on empty - will be appealing. It's like a 'get out of town free' card.

Tell all your employees you'll pay an accountant to do their taxes for them. It's a huge hassle for most people, and if you take that away tax season gets far less stressful.

So many programming jobs I've seen offer high salaries, but with minimal benefits. You get a stock health package, minimal vacation, and MAYBE you get to expense PART of your phone bill, if you're an admin on call. Take away all the junk that people don't want to worry about and let them focus on being geeks.

It's hard to offer this sort of thing in a job posting, but if you can lure the good people in to an interview, this is how you get them on board.


really, keep your "perks" - it is like giving a gift card. Just give me the cash and I will buy what I want.


Exactly. Perks are a method of control really, to make the employee dependent on the company for their lifestyle, knowing it will be hard to negotiate their salary up to an equivalent level at another company. Reminds me of one company some friends of mine worked for, fantastic perks (like the entire company being flown to NYC for a movie premiere) but the salaries were awful, none of them could have afforded that trip themselves.

My attitude is, look, I have friends, I have a life, I have things I want to do, I don't need the company to fill in these gaps. The only "rewards" I want are cash and time to spend it.


Um, does your cash lower your tax burden? You should look at your marginal tax rate. I'm personally pushing 40% marginally, which means that any "perks" that the company can offer me which don't show up on my final W-2 are worth almost twice as much as if I'd had to pay for them out of pocket. Once you reach a certain salary level, you're wasting money not negotiating down your salary for things you value more.


How are you going to buy more vacation days or ability to work from home?


It may be hard to buy extra vacation, though.


I can't imagine how, since "vacation" just means being paid for not working.

Buying vacation would just mean not being paid for that time.

Here in California, vacation/PTO is treated just like wages for regulatory purposes, including final paycheck.

What I can imagine being hard to buy is company holidays, but I'd rather have the "vacation" (read: cash) instead.


In your experience, is it actually as easy to get unpaid time off as you make it sound? Certainly, not being paid for not working is entirely possible, but it's much less desirable if you lose your job for it...

(My job allows you to "buy" extra time off, so it's not an issue for me; but I figured this was uncommon, especially in the States.)


If I make it sound as easy as taking paid vacation, then yes, but with a small sample size.

The much larger sample size I have for a related question: is it any easier to take vacation at a company which offers 3 weeks instead of 2 weeks annually? To this, I've found the answer is "no."

Both situations have a simple explanation, which is that, except for the smallest companies, the person(s) setting the PTO policy is not the same as the one approving absences. That is, my manager cares about my availability, whereas HR and/or Accounting cares about how much I get paid during such absences.


This just begs the question, though. If you assume that talent chases money and nothing else, then it follows that talent chases money and nothing else.

Particularly your second point about developers ignoring jobs salaried at less than their current pay. Working in a toxic environment, or doing meaningless work, or staying where one's range of expression is limited, all have a cost. You won't know until you get there, but when you do, you will.


"Incentives hurt productivity in creative activities."

Unadulterated nonsense. On the one hand, I recall a cartoon-drawing presentation about school contests and the like. On the other hand, there are these centuries and centuries of evidence that PEOPLE RESPOND TO INCENTIVES, PERIOD.

If you think that a company couldn't assemble a team of OUTSTANDING programmers by offering each $200k a year, you're crazy or stupid or both.


"If you think that a company couldn't assemble a team of OUTSTANDING programmers by offering each $200k a year, you're crazy or stupid or both"

This is simplistic and naive. Money isn't what motivates most programmers. I know this may be hard to understand for many people on HN, but it's true. Many of the best programmers I know are passionate about a specific area or two. Imagine going up to one of the jruby developers and saying "Hey, I think you should stop working on jruby and make an asp.net site with me and I'll pay you $200k". They're polite so they probably wouldn't laugh on the outside.

The second major problem is the assumption that offering a lot of money will some how magically make it easy to identify good talent. It won't.

The third problem is that most good programmers aren't looking for work. Offering more money won't make a difference because they'll never know anyway.


Centuries and centuries of evidence that people respond to incentives is based on prescriptive work. The studies that Dan Pink is referring to concern the more recent advent of creative and cognitive work does not have centuries and centuries of evidence for money as a motivator. That's why it's being studied, and that's partly why the results of the studies are so intriguing.

It's interesting that your gut reaction is that this is all nonsense, and that you dismiss a single presentation as being nonsense purely on your own feelings and reactions. The book that Dan Pink wrote, and the work being done in the field is at odds with your reaction.

I know I won't convince you, and I know that you'll simply dismiss me as crazy, or stupid, or both, but the programmers who work for me often took a pay cut to do so. And they've stayed.

My recent complaints haven't been about being able to find good programmers, they've been about incompetent programmers who claim they're great, and in all probability honestly believe it.

If you're solving any problem at all, it's the wrong one. I don't want more job applicants, I just want applications from better candidates. My experience, and the studies I've read, say that offering more money won't help. I hope you understand that I'll put more stock in them than in your naked and unsupported assertions.


Anyone clever enough to be worth $200K a year in salary will also know that anyone paying £200K a year probably has some very particular expectations - i.e. they have a ROI in mind.

People who are really good tend to have their own ideas of what platforms they want to work on and what kind of problems they find interesting. Anyone paying $200K a year probably doesn't expect to give much leeway.

Note: I know people who get paid that much, I wouldn't want their jobs. I've been approached for positions paying roughly that amount and said "no" purely on the description of the working conditions.


As a meta point the guidelines here request we use italics for emphasis rather than caps (you can do italics by putting a * either side of a section).

(I just noticed you were a new commentor so I hope that comes across ok :))


Thank you. Sorry about that.


I've read the studies you mention and I think you misunderstand the point being made. If you incentivize work such that "Bonus X is dependent on doing Y", you get worse quality creative work. If you pay a person ahead of time such that they don't have to think about any rewards while they're working, they perform better creative work. Offering a higher salary would more likely be the proper motivation for creative work.


Paying more money takes it out of the equation and let you fine tune the other incentives. Companies that can get great creative work out of people pay them such that money is not an issue.


To cut through some of the BS around this: A salary that's sufficient and feels fair is essential for letting your talented coder check off that box and get on with life.

At the most basic level, if your developers aren't earning enough money to easily solve the myriad money-related problems of everyday life, those stresses will seriously affect their work. Money doesn't buy happiness, but lack of money can sure make it hard to find.

The pay also needs to be high enough that your developers don't feel worried that they're being ripped off -- that is, if they notice they you pay below the industry standard for the region, but they know their work is above average (in fact it may be way above average), they'll be forced to dedicate time to figure out if they're being taken advantage of. Not because they need the money, but because we all tend to think people who get tricked out of their money are fools, and they don't want to be seen as fools.

Once you get those two things out of the way, then you can focus on building real, non-monetary incentives for creative work -- interesting and diverse projects, sense of purpose, constant learning without forced massive leaps (good flow), allowing & encouraging mastery, etc..

It's absolutely true that just raising the money won't fix hiring problems once it's "high enough", but if you're simply paying too low, you don't have a chance.


> The consensus is pretty clear. Incentives hurt productivity in creative activities.

I get the impression that the mechanism for that is that anxiety about getting/losing the incentives can starve the creative processing of mental CPU time and maybe lower your risk tolerance below the optimum. A flat salary shouldn't trigger that regardless of how high it is, and conversely a poor environment (antagonistic management, mandatory overtime if you're not meeting some almost-reasonable deadline, ...) ought to be able to trigger it even if money isn't involved at all.


Actually, all the studies talk about incentives in the sense of "additional compensation that is conditional upon performance" not base pay. Here's why more money works: not everyone has the same expenses. Some of the best are married with kids. I don't like to spend time away from my kids or my wife, but knowing that when I take two weeks off its to go visit the wife's family that I'm paying to fly to Hawaii makes my life, and hers, that bit more bearable when she hasn't seen me for days. Yes, a low salary will get you some young qualified programmers, or some older ones with no life. But you will increase your hiring pool by offering more money. No, it doesn't solve the problem of how to tell the good ones from the shit ones, but it does increase the total number of good ones available.


Hiring managers don't list a salary. If they do they're looking to hire really junior engineers who probably can't write a linked list reversal program anyway. In my 13 years working at startups I've never applied for a job that listed a salary range.

Ultimately, within reason, good programmers are worth whatever you have to pay them and bad programmers aren't worth what you pay them. There are way more bad programmers than good programmers and money isn't the way to attract the good ones. You have to attract them with interesting problems and a great work environment. If they're there for the money then they're probably no good anyway.


Different people are attracted by different things. For one it's the money, for others the environment, culture or challenges. But usually it's a combination of all of these factors. You can't just disregard money as an influencing factor in the decision making process of a potential employee. After all, you wouldn't be working for free. Sure, there is always the exception to the rule - the person that isn't interested in money at all. But in general money is a pretty good incentive for doing something.

The salary that a company offers might not be listed in a job offering, but the culture and many other factors are neither. And even though they are not listed you probably heard of companies with a great culture etc. Don't you think the same is true for salaries?


I don't know if it would work, but has anyone tried or heard of a job posting with a "name your price" salary? Similar to the "scariest pricing idea" that was on HN a while ago (http://news.ycombinator.com/item?id=1279660). I'm not sure if this would improve the S/N ratio or make the whole thing more complicated - my idea of what I'm worth is probably quite different to someone else.


Then problem becomes one of differentiating between the people over-value themselves, the people that under-value themselves, and the people that correctly value themselves...


Obviously I worded some things wrong in my original submission. I realize that offering a (much) higher salary won't necessarily (or even probably) prevent a "horde of unqualified candidates" from applying. What I meant was that if a hiring manager places an ad which fails to attract an adequate number of qualified candidates--the ratio between qualified and unqualified candidates being of secondary importance--he would have to be incompetent not to offer a better salary the next time around.

Also, the main point of the submission wasn't that programmers ought to be paid more. It was that I find it offensive when people claim that there are no good programmers out there but don't even seem to consider offering higher salaries. I'm reminded of the woman who is asked out five times a week by reasonably good-looking men of average social status, rejects them all out of hand, and then laments, "There are no men out there!"

Actually, this is worse. The woman may not be able to alter her personality or appearance enough to attract the caliber of man she's interested in; but companies can always offer higher salaries.


But there's a perverse side to this. By offering MORE compensation, it would seem likely that MORE unqualified people will apply. For your logic to work, we'd need to show that making a skill more expensive would automatically cause inept people to stop applying. If that doesn't hold true, you could be throwing away 999 out of 1000 candidates instead of 199 out of 200.


Actually you'd be throwing away <=998 of 1000 instead of 199 out of 200: we're proposing that the net result would be more hires.

We don't have to show that it would make inept people stop applying. We just have to be able to get better at weeding out the rubbish ones - i.e. in less time, lower cost.


That's what I concluded too! If you raise industry standard average pay it's just going to attract even more incompetent people and therefore the flood of applications from non-programmers will increase.


As a highly skilled programmer, what I really want is a fair piece of the pie percentage wise. Even a high salary for the field compares little to the prospect of making exponentially more. Also, nothing motivates like having the product of your work bring you money or prestige directly.

Because I'm currently only a few years out of school, no one would come close to paying me what I really feel I deserve. Even in the best case, the long term for a programmer doesn't look all that great. This is an extremely ageist industry.

For this reason in my off hours I've been working on trying to increase my prestige through writing books, blogging, and speaking at events. Eventually, I hope this helps me either find a startup with excellent prospects or allows me to charge large amounts to existing companies for consulting.

I can't see doing this with a family though. It's a difficult road either way.


Most companies have highly stupid standards and requirements. Most of them prefer older platforms and frameworks just because their customers require older versions. Top notch enterprise solutions are still using IE6 to check compatibility of their products. That gives them all the possible negative Karma. On the other hand, innovative tech giants like Google are using their closed proprietary technologies, which is not doing the world any good. MS actually seems to be the better one here allowing people to use their Visual Studio, making a product out of it. Every language has its weaknesses. A developer proficient in programmer should not stick to a company for his development works and venture off privately. That will create the likes of DuckDuckGo and all the good that is out there changing the way we look at the tech world right now.


"Rare commodities are expensive." I do agree on this one. However, money is not always the primary motivation/reason for people to join you. My friend once told me about how he asked his team, what is the reason for them to join a company. From tens of reasons, they finally come out with two only: FUN and TEAM.


The problem is that when you interview you can't really judge those. At best during interview you meet a few team members for an hour each and maybe another hour during team lunch and everyone (including you) puts their best foot forward. There's no way to tell if they'll be a great team to work with or a daily nightmare.

The same goes for fun: rarely you know exactly what you'll be doing or how interesting it'll be.

The thing about money is that easy to compare. If you have 2 offers from companies that are both startups, both well funded with seemingly great people and interesting problems to solve, it's very compelling to decide based on salary, because all other aspects are hard to compare and judge before you spend a few months working at a company.


"the problem is that when you interview you can't really judge those"

this is a real challenge. I'm trying to get better at judging if a company is good to work for, but so far it still feels like a crapshoot.

Of course, we often cheat and go to places where we already know someone :)


well, it applies to everywhere I guess, you just gamble it. I myself still in quest to find 'good' one (but I'm not a job hopper :))


I am tired of being offered $120k for a 3month contract without things like parking, vacation, and health benefits. I am lucky to be employed full time currently. I always ignore recruiter calls of that kind because what it really means is $30k for 3 months, which creates a "mercenary" job environment out of what should really be a more full time/stable developer job environment. I can do that by marketing my own skills. Employers need to end the short-term hiring practices, they're artificially boosting the economic outlook and creating shoddy work that is a piecemeal result of several developers that work on DEV projects temporarily.


Money is obviously part of it, but now the whole picture. The difficulty in finding programmers that are gifted is not that you are competing with other companies, it's that you are competing with the programmer taking his ability and resulting wares directly to the consumer. Between startups and lifestyle businesses the lone programmer has a lot of options that other professions don't necessarily have (nurses, for example).

You have to keep in mind that you are competing with the excitement and potential earnings of running your own show.


My theory on this is that it is a market for lemons.

http://en.wikipedia.org/wiki/The_Market_for_Lemons

Solve that problem to solve this one.


Extend the idea of "lemon laws" to hiring. Every new hire has a 3 month try-out period (as a contractor?) where they will be fired if it doesn't work out. If you make this point forcefully during the interview, some low-quality applicants will seek safety elsewhere rather than risk losing their job, while high quality applicants won't be deterred.


How many job postings even mention salary beyond "salary commensurate with experience"? We must be seeing different types of postings.


Job postings have salary ranges. If I have 80 years of experience and ask for $500k/yr salary, I'm not going to get it.


The whole "years of experience in X" thing is horribly broken and ridiculous. Because there isn't a uniform way of measuring it. It's apples-to-oranges with any one else's way of measuring it, even if you yourself were consistent within your own system. Plus every job is different. Plus, in software you can be programming for many years in a language but never at a day job -- only on home projects or (more recently) open source projects, and yet this experience wouldn't count in some people's eyes. Plus there's the whole multi-variable thing where someone with say 2 years of Ruby preceded by 6 years of Java is generally going to be a more experienced/senior programmer than someone who has 4 years of Ruby ONLY (nothing before that) -- but each person is "farther along" experience-wise depending on your particular crazy-ass assumptions about measuring experience. It's an utter joke.


It's not a joke — they're just using it for a completely different purpose.

It's illegal to filter applicants based on age, but you can require '15 years experience with enterprise java'


I think it's just an easy way to justify hiring -- if the hire turns out to be awful, you can say, "hey, he/she had 10 years of experience!"


Looking at a lot of the posts on here, it seems that the bar to finding good programming staff is (1) finding good programmers and allowing them to find you and (2) weeding out the chaff.

Furthermore, it seems that weeding out the chaff is something probably everybody could agree on - that is, what would be nice is some kind of informal certification process or standard test. Nothing like an AMA board certification or the attorney's bar in terms of formality and obligatory nature, but perhaps some kind of hoops to jump through.

Perhaps some kind of list of programming tests and a way to administer them?


There are a bunch of certifications already. They are either too simple or too narrow to be particularly useful for hiring purposes (imho).

The best way I've seen to evaluate the ability of a programmer and their* fit at your company is to:

1) Ask them to program something simple in the language you expect them to use.

2) Present them with a problem your team recently faced and ask them to talk through how they would approach finding a solution.

3) Ask them about things that relate to your startup/corporate culture (eg. if you're a bunch of practical jokers, ask them about practical jokes they've done or been victim to)

4) Ask them what part of your product sucks the worst. What specific thing would they do to improve it? Why would that be an improvement?

5) Have all your short-list people meet and spend some time together. In a followup interview, ask each about their opinions of the others.

* I hate to use "they" and "their" as a gender-neutral, singular pronoun but haven't really found anything better :-(


There are 2 problems with your proposed solution.

a) Salary is rarely disclosed in a job posting. Salary negotiations usually happen after a candidate was interviewed and deemed worth hiring.

b) Even if you were to disclose a salary in a job post, an unusually high salary might make it easier to find a qualified programmer (because more people will apply) but it is not likely to increase an average quality of submitted resume, so you'll still have to look at 200 resumes to find 1 good candidate.


I believe Rethinkdb did post their salary range and stock option at one point.


Yes, at http://rethinkdb.com/jobs/. It's quite public.


Well how about the other side...how do employers take mediocre to crappy programmers and teach them to shine?


This never happens. 1. Employers do not have the incentive and time to educate employees in the first place. 2. Employees, most of the mediocre ones, do not want to learn more, do more or work more. Because, the process is always about practicing and working.


A relative of mine works as a database administrator making $120k/year and lacks fluency in HTML/CSS. By contrast, Google regularly comes under fire for underpaying their employees, and their average employees are more talented than those of perhaps any other large corporation in the world.

It's not about money.


I'd take DBA if that would be the last job I ever had (leading to retirement). Otherwise it might be a career killer.

I'd take Google job if I'm fresh out of college for the sake of experience so I can get better position, salary, and wide-range of opportunities in the future.

But check this out: if there's a better place than Google and they pay better, do you not expecting Google's employees to jump ship? (for example, Facebook pays more or Facebook has a good potential to make yourself to become a millionaire)

These 3 examples are strategy to position yourself for a better future. A better future usually involves better position and/or compensation. Sometime it's not about money, but it's about power. Power to tell fellow developers that they're not that good so they have to do TDD, code-review, and help QA to test their own shit.

Yes, it's not _entirely_ about money, but at the end of the day, mostly it is about money, especially for people who can accept other negatives.


Branding has value, which is factored into the total compensation.


When it comes to wall street bankers, there seems to be a consensus that money is the only thing that's going to bring in good talent.

When it comes to programmers, the consensus seems to be the opposite. I mean, they ought to be motivated by having a refrigerator full of Red Bull or being able to bring their dogs to work -- I mean, the Linux kernel got developed by people who work for free... Why do we need to pay people anything at all to develop applications for our intranet?

Although you'll find programmers with very different stories, I think that we'd see a healthier IT ecosystem if software people got more pay and respect (a friend of mine and myself both got offered a particular job... for him this was a big step up in pay and benefits, and for me it would have been a step down -- I've seen the compensation of programming jobs where people do comparable work vary by more than a factor of two.)

I think the "equity culture" is often part of the problem. There are startups in my town that pay $10 /hour, no benefits + equity (which might be worth something, otherwise not.) I also interviewed at a place where people were starting a new job shop; they seemed like a nice bunch of folks, they had all the trappings of "good management" (the CEO was a freshly minted MBA from an Ivy League school) but the biz plan didn't make a lot of sense to be and they were talking low base pay + some equity... This is a frickin' job shop... The kind of place where you might get $50,000 worth of equity and really be able to cash it out for $40,000 if you're insanely lucky.

That said, the interview question they asked me was the best interview question I'd ever been asked. They asked me to estimate a project they'd done for a client. I was smart enough to ask questions rather than blurt out a quick answer ...

I estimated about 160 hours for the project, and they told me it really took 200. That's not far off for a "seat of the pants" estimate, but driving home I thought... These guys probably charge $150/hr to clients; their client spend $30k for a really crappy intranet app that tortures end users... they "need" it for regulatory compliance, but there's no way that this app creates $30k worth of value.

For christsake they wasted 40 hours dealing with a deadbeat D.B.A.!

So that got me thinking about where my career was going and about software economics. For instance, if you want to get paid $150k a year, that money has to come from somewhere. Unfortunately, the shortest path to that is to get in a position where you can collect that as a rent, but assuming you're (i) the average unlucky joe, and (ii) somebody who wants to make a contribution, you need to be in a place where you're (a) creating > $150k a year in value and (b) in a position (politically) to get a good chunk of that pie.

Marx will tell you to work on (b) and that makes some sense, but I'll tell you from experience that it's a much better life to make $X for your boss and get paid $X/2 and it is to make $X for your boss and get paid $2X.

Practically, Job Shop work tends to be pretty marginal; the usual business model is to underquote work, lose money, but make it up in volume. It can be a nice biz if you've got sugar daddy customers who do stuff on a T&M basis, but otherwise job shops that look really profitable and productive today are frequently gone in a decade.

Now, you can make a lot more for your employer, potentially, if you're making a software product [or developing a SaaS-y service these days] but it's not at all unusual to put a man-decade into a product, spend $100K trying to sell it, and end up with $20K of revenue.

"Getting paid more" is therefore a matter of (a) making more value, and (b) getting a bigger piece of the pie. (a) interests me more these days -- I find it disturbing how much it costs to create business software and how bad the quality is usually is.


Managers assume that because one good programmer will do the job for $100k that all good programmers will. Many here point out that good programmers will generally find a job that challenges them, and that pays them enough to live. They then conclude that if $100k fills one seat, then $100k is the right price.

This is totally wrong, and the key is "enough to live". I love programming as much as I did when I was 10. My expenses, however, are now somewhat higher than when I was 10. I have a wife, two kids, will not live in a small house, have very expensive car insurance, and I road-race big cars, hard on tires. If you want to hire me, it will cost a lot more than $100k.

Then there is the issue of mobility. Programmers tend to be loyal. They tend to be realists. If I make X here, and I know here to be fun, why would I risk moving for 1.1X, or even 1.5X?

What you have a reversible reaction in equilibrium. You want to bind seats to programmers. Programmers will bind to a seat for a while. But not all programmers will bind for the same price. Sure you can fill a seat for $100k. You might be able to fill a seat for $20k - but you'll have to wait a loooong time. If you want to fill all your seats, you're going to have to appeal to the largest possible pool of good programmers, and some of us need more money.

Even if you ignore the fact that those of us with higher expenses have more experience, the simple math of the equilibrium reaction tells you that if you want to fill more seats, you have to have a bigger pool. Even if we are of no more value than the 20 year old, the question is: Are 5 programmers better than 4 for your business?

Whether or not that makes economic sense for your business is up to you.

So yes RethinkDB, $125k for an Engineer III will get you some hires, but are you going to insist that this is the right price, even if it means that you have empty seats? What is your opportunity cost? It may be the right decision. But it may not.


They have $1.2 million dollars, they can't pay more. $125K is a huge pre series-a salary.


This is another one of those nonsense excuses. If they can't pay the proper price, they won't be able to get the best people. Period. I'd like to drive a Lamborghini Gallardo yet I'm stuck with a crappy Citroen. Do I go out and bitch on a blog about how I can't find Lamborghini's (with the implicit assumption that I can only afford 1/10 of the normal market price)? No I accept that I can't afford it and make due with what I have.


They're also offering stock of course, and it actually looks interesting :-) Plus they may not be so time sensitive: 4 programmers for 10 months vs 5 programmers for 8 months (yes I know). But if its $125k vs $150k will that $25k break the bank? Maybe. Maybe not.


I used to recruit and hire people and have been working with early stage companies for over a decade. The two companies I've worked with who tried this sort of hiring scheme blew through all their cash within 18 months, and they had a lot more money to burn.


I worked at a company that paid us fuck-all and still managed to burn thru $300 million. Are you in a position to tell us that the companies you worked with blew their cash on salaries, or are you just drawing making two causally unrelated statements in the same sentence?


Yes, they blew all the cash on salaries.


The real question is will two $150k programmers produce more than three $100k programmers. In Silicon Valley, my experience is yes.

The same ratio probably applies anywhere, but the relative scale changes.


Ah, but programmers don't come with these labels, do they?

And of course the $100K programmers are happy to accept an offer at $150K as well (though they won't be any more productive), in which case you've actually just chopped out a third of your productivity.


The $150k programmers don't answer job ads. They get all of their work through referrals.


Why would you offer the $100K programmers $150K?

Ah, you are saying that because programmers don't come with labels, you are unable to tell the two apart. I would suggest that you don't be involved in recruiting then.


That was solved years ago. Just consider how a professional soccer team (including the double) are managed and paid. ^_^

hint: it is not just a performance and productivity, its also morale, influence and starness factors. And it works.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: