Skip to main content

Good Java developers deserve better salaries

Posted by felipegaucho on January 5, 2010 at 5:23 AM PST

My mailbox aggregates several Java User Groups and other specialized sources of information about the Java universe, with special guests like CEJUG and the Java EE community. Many of these Java sources are used by consultant companies to hire smart people, and since last year I am reading a desperate growing interest about skilled Java developers. More: few days ago I was having a coffee with some colleagues and a manager confessed he is worried where to hire all resources he needs to allocate in the signed contracts for 2010.

Listening such conversation and watching the raising offerings in the mailing lists I have only one conclusion: Java market is dry, skilled Java developers are becoming scarce. Reasons for that? No idea, but there are some obvious observations about our times:

  • Hype languages and technologies didn't conquered the market as we expected, languages like Scala, Ruby, Grails, etc. Android? You know, perhaps next year. These languages advertised revolutions during the last two or three year, sold out a lot of books and conference speeches but nowadays it is not easy to find good jobs (salaries) for such technologies. Certainly there are good jobs somewhere, but it is nothing compared to the Java is dead speech of three years ago. Simple fact is: Java is still ranking high in the IT market, while all that hype revolutions are still hype promises. And the young developers that followed the hype? Well, they will need to accept that Java job now, frustrated people mostly unable to delivery a quality service anyway.

  • People are becoming lazy and dumb, everyday a bit more. Watch idiocracy and you will get the point. If not convinced, watch MTV for half an hour and you get a live demo :). The iPhone users cannot handle more than one button in any GUI and unsafe-typed languages say that "anything that requires a type declaration is just too complicated to be useful". Nice speech, but what to do with developers convinced that math and domain models are obsolete technologies?

  • What about the salaries and Java carriers? Java platform produces a large chunk of all software running in the Global IT market, supporting business at a scale of billions of dollars every year. Nothing more natural than expect the guys behind this technology monster to have a good life - or at least a profitable life. Well, the reality is a boring overestimation of the management models, leaving to the developers just the extra hours, tendinitis and more learning curves.

How to hire good Java developers?

Just in case you are seriously looking for good Java developers, some hints:

  1. Raise the salary (no excuses).
  2. Offer learning as part of the job benefits (conferences, books, courses, etc).
  3. Allow your developers to take project decisions.
  4. Use modern Java technologies (Still using Java 1.4?)
  5. Give the developers some stability and carrier perspective, and don't try that in a bureaucratic way.
  6. Flexible working time and remote office should be available.
  7. Give the developers more than water and coffee.. how about fruits? cokes and other beverages? How much it costs for you to buy 1 coke per developer a day? If you think it is too much, please leave the market :)
  8. Don't try poor copies of Google and IBM ideas, these companies are just richer than yours. Be creative and honest with your developers.

Good luck :) Java market is dry, good developers are scarce.. it is time for smart managers to raise the salaries and catch the good ones, the rest can be shared by people reading Scrum and Kanban manuals.

Related Topics >>


Why policemen have low salaries?

Nice article, Felipe! In the market economies #1 won't work. In enterprise IT no one just raises salary if there is a way to hire someone else for less money. It's just not in the corporate culture where people are treated as nameless resources. Have you ever wondered why policemen get lower salaries than Java developers even though they risk their lives on daily basis? Because there are many people who want to be and become policemen. Market rules. If no one will want to go to police, their salaries and perks will increase. Today's trend is to move development to India, where potentially 1.2 billion of people can become Java developers. Not all of them will be good Java developers, but they will lower the average salary for sure. Luckily, things are different in small companies and startups where GOOD Java developers are still treated nicely. Yakov Fain

Supply and demand don't always align

Your argument does not always hold true. A lot of people want to be professional football players too, so why are they so highly paid?

The market is full, I said

The market is full, I said FULL, of Java developers, do you really think that someone will raise the salary of Java Developers ? By the way, you should look not the current situation of Java, but the tendency, look the red line in TIOBE index you cited. "Hype languages and technologies didn't conquered the market as we expected" You should take a look at a Hype language Job Board:

I couldn't agree more...

I couldn't agree more Felipe, but the problem is that most companies/managers don't want to spend the $ necessary to attract and retain talented developers. Even though the ROI is favorable, most companies cannot see past the immediate cost. So, rather than spending the money upfront to get good developers and engineers, they bring in contractors (or offshore "consultants") over several years and wind up spending twice as much in the long run. Such is the problem having managers with MBAs and little to no technology background calling the shots.

But how do we know their good?

While I agree that some developers are better than others and threrefore more productive and derserving of higher pay but, how do we know who is who? If you don't have a development process that monitors, measures and documents the apps (Continuous Integration) then your opinions about developers will be just emotional ones. Ironicly, with such a process, I can hire new, young developers and imbue them with good habits from day one. If your 'senior' developers aren't championing the kinds of tools that give you visibility into the work, then they don't deserve to be your senior developers. Java has a very rich set of tools at little or no cost so no matter what your shop size is, you should have them.

You should raise the salaries, no excuses :)

@cmyanko: the market reading is about low salaries everywhere.. the average salary of a Java developer should be higher than what we observe nowadays,,,, it is not an individual issue, but more a general market needs.

Carrier perspective?

Hi Felipe, What do you mean by, "Give the developers some stability and carrier perspective, and don't try that in a bureaucratic way"? Carrier perspective? Kind regards, David

just a typo

I think he means "career perspective", not "carrier perspective." 

yearly expectations

Your developers should know what they can expect for the next few months, they should have positive future plans in terms of learning and carrier growth. From time to time a developer will change to another project, and e deserve a chance to dream with a better project on every cahnge. It will not always happen, but should happens sometimes.. otherwise your developer is digging his own grave.. (like to work with Java 1.4 for the next two years, for example).

It's all about 1.

I make 20% more on my new job in lower management: planning for the scarcity of resources to do any real job, answering customers complaints, talking them into forgetting their problem. Oh, and writing New Year greeting cards. Good use of those engineering studies. Cheers.


So don't hold back, tell us what you really think. Seriously, good for you for speaking up and saying what really needs to be done. There are not many in the world today that will do that. casino online

Good points...

Some extra ideas:

9. The career plan (raises, progressive bonuses or any other system) should be good enough so your top hackers never have to consider stepping to another kind of job (e.g. management, or ivory-tower "architect" that can't code) if they won't like it;

10. Even in outsourcing/contract projects, do not tie (at least senior+) developer pay, 1-to-1, to the per-developer rates you are able to bill your clients. Some developers may have very disproportional share of responsibility for the project's success, and they should be paid accordingly. If some programmer is worth three average programmers, just pay him 3X the average programmer's salary - it's really that simple. If you don't, this top hacker may leave the company, or perhaps he will find some ad-hoc method to restore fairness - like estimating the effort for new tasks "as if I was an average programmer" and then spending 2/3 of his paid time doing some personal stuff, while still meeting the deadlines. (Then we're down to Dilbert hell.)