A Java developer’s salary depends on a range of factors such as job location, contract type, experience level, and industry sector. Discover the effect of each of these factors to learn what salary to expect in your situation, how you can maximise it, and what other considerations other than salary a Java developer should take into account.
Average Java developer salary across the world
The salary of a Java developer varies dramatically based on where the job is located. The main reason for this is the variation in gross domestic product (GDP) per capita between countries, meaning countries with higher productivity per worker can afford to pay higher wages.
Below are the average Java developer salaries across five different countries. The salaries quoted in this article are for permanent employees, unless stated otherwise. The following countries were chosen based on the most popular location of visitors to this website.
|Country||Local currency annual salary||U.S. dollar equivalent|
Of the countries investigated, the United States pays the most for Java developers. Our research suggests the following reasons for this:
- higher GDP per capita in United States than other countries (56% higher than that of United Kingdom in 2020)
- high demand for developers by tech giants such as Facebook, Amazon, & Google
- less job security & small holiday allowance compared to European countries means companies can afford to pay more
At the other end of the scale is India where a Java developer can expect to be paid 93% less than in the United States. This makes sense considering India’s very low GDP per capita of $1,900. If you’re considering a role as a Java developer in India though, don’t be disheartened because the cost of living is a lot less than other countries. For example, to rent a one bedroom apartment in the city centre costs $152 in India vs. $1,341 in the United States, according to Numbeo.
The same rule applies to the other countries too. The salary should be considered along with the cost of living, and other factors like job satisfaction which we’ll explore later.
Countrywide vs. big city Java developer salary
When comparing Java developer salaries between the average of a whole country and that of a city, you’ll often find the city pays more. One reason for this is that high skilled workers tend to concentrate more in cities.
|Local currency annual salary||U.S. dollar equivalent|
|United States (Washington D.C.)||$93,000||$93,000|
|United States (San Francisco)||$102,000||$102,000|
|United Kingdom (countrywide)||£49,883||$68,641|
|United Kingdom (London)||£55,728||$76,709|
In the United Kingdom this is true of the capital city London, where a Java developer can expect to earn 12% more. Again, the cost of living should be taken into consideration, which is especially high in London. There, a one bedroom apartment costs $2,316 per month, more than double the $1,028 it costs in cities across the country as a whole.
If we make the same comparison in the United States, the capital city of Washington D.C. pays the same salary to Java developers as the country as a whole, so cities don’t always pay more. If we look at San Francisco though, the salary jumps up 10%, reflecting the close proximity to the tech companies of Silicon Valley. Don’t pack your bags just yet though, because the cost of renting a one bedroom apartment in San Francisco is a whopping $2,865, more than double that of cities on average across the United States.
Permanent vs. contract Java developer salary
A Java developer’s earnings vary based on how he engages with the company he’s working for, whether that be as a permanent employee or contractor.
Typically, a permanent employee:
- gets paid on an annual basis after tax
- gets paid holiday and other benefits like a pension
- has a longer notice period
Conversely, a contactor normally:
- gets paid on a daily basis before tax
- gets no paid holiday and no benefits
- has a shorter notice period
For companies this means that contractors are great for short-term projects, and the increased risk for the worker normally translates to higher pay. Here’s the salary comparison, assuming a contractor getting paid on a daily basis works 45 out of 52 weeks per year.
|Local currency annual salary||U.S. dollar equivalent|
|United Kingdom employee||£70,000||$96,399|
|United Kingdom contractor||£129,375 (based on £575/day)||$178,227 (based on $792/day)|
In the United Kingdom contractors get paid a massive 85% more than permanent employees. For Java developers willing to take on the likelihood of having to change roles more frequently, contracting can be a good way to earn more money. There may be an additional administrative overhead of setting up your own company through which to work and hiring an accountant to handle taxes.
ℹ️ Change of datasource
To analyse salaries across different factors, multiple datasources are used. The average Java developer salary in the United Kingdom is higher according to IT Jobs Watch than Glassdoor. The difference may be due to the fact that Glassdoor uses anonymous salary submissions whereas IT Jobs Watch pulls salaries directly from current job adverts.
Whilst the discrepancy is unfortunate, what’s important is how the salary varies within each factor analysed.
Different Java experience levels
Companies are often willing to pay a lot more for senior Java developers and less for those of a mid, junior, or graduate level. The reason is that experienced developers add more value to the company, translating directly to more revenue.
In practice this means the senior Java developer has some or all of these traits:
- knows Java inside out, including features of the latest releases like Java 17’s sealed classes
- knows how to use associated Java frameworks like Spring Boot to effectively create applications
- understands the full software development lifecycle and its tooling, like Gradle or Maven for build automation and Jenkins for continuous integration
- works effectively in a team and organises work through project management methodologies like Scrum and Kanban
- provides technical leadership to colleagues and ensures high code quality
Conversely a junior or graduate level Java developer will likely be less effective at adding value to the business and will need to receive more guidance from other team members.
|Java developer experience level||Local currency annual salary||U.S. dollar equivalent|
The biggest jump between salaries is between mid-level and senior java developers, with a 50% increase. If you’re thinking it’s going to take forever to reach the lofty heights of Senior Java developer, remember that it has nothing to do with age. It’s about understanding the big picture, having exposure to several current relevant technologies, and being confident in your decisions and being able to follow through with impeccable delivery.
While this does come naturally with time, you can fast-track the process by:
- ensuring you’re working in a job with challenging projects
- taking courses to learn specific technologies
- working on your own projects on the side
Becoming a more experienced Java developer requires time and patience, but if you’re in a hurry to increase your salary thankfully you can skew one of the other factors described in this article.
Industry sector Java developer salary
The industry in which a Java developer works can have a big impact on their salary. The industry means the business area of the company in which the developer is working, such as information technology, media, finance, or retail. To be clear, the information technology sector involves creating software or hardware products to be sold to others. That’s different to creating an internal software application that helps a company to achieve some outcome, like creating a website for a media company.
So why the difference in salary for Java developers across industries? Here are some reasons:
- the industry requires more senior developers, so companies are willing to pay more on average
- the industry requires specific domain or Java knowledge, and companies are willing to pay for that e.g. derivatives trading and multi-threading in finance
- the industry has a high-pressure environment or requires additional overtime or support, so companies pay more to compensate
|Industry||Local currency annual salary||U.S. dollar equivalent|
|Average across all industries||£70,000||$96,399|
Our research produced Java developer salaries for just two sub-sectors of the finance industry, but the main point is that the salary varies a lot. If you’re a Java developer working in FinTech, where companies create software to helps others better manage finances, you can expect to earn 35% more than average. Similarly, investment banking pays 32% above average for work that normally involves using mathematics to create complex models for trading equities.
If you’re choosing an industry just because the salary is higher, also consider the long term viability of working in an industry that you’re not interested in. That said, some developers get reward from solving complex problems, and the industry isn’t important to them. A good starting point is to look at some job advertisements for Java developer roles in different industries to see what the day-to-day work involves.
Real life Java developer’s salary over time
To give a real life example, here I’ll share with you my salary across a 17 year career, where I worked as a Java developer in the following industries:
- media (e.g. Sky, BBC)
- retail (e.g. Waitrose supermarkets, lastminute.com)
- gaming (e.g. Electronic Arts)
- information technology (e.g. ThoughtWorks)
The table below shows a new data point for each year when my salary changed, normally due to changing job.
|2007||$44,000||IT||Permanent||First job in London|
|2010||$120,656||Media||Contract||Switched to contracting|
|2011||$75,625||Gaming||Permanent||Switched to permanent to work in gaming|
|2013||$123,750||Retail||Contract||Switched back to contracting|
|2017||$216,563||Retail||Contract||Applying only to high paid jobs|
|2018||$125,469||IT||Permanent||Permanent role with remote working|
As you can see I’ve had quite a few different roles in multiple industries! However, all roles except one were at least one year long.
There key turning points warrant further explanation:
- in 2010 I switched from a permanent employee to a contractor, landing me a 125% pay rise
- in 2011 I wanted to try out the gaming industry so switched back to permanent employment, enduring a 37% pay drop
- from 2013-2015 I increased in seniority and therefore increased my daily contractor rate
- in 2017 I applied only for the highest paid contracts and landed an awesome 27% pay rise. However, the role involved a long commute so I didn’t stay long.
- in 2018 I was looking for a remote working role (I should have waited a couple of years!) and in return suffered a 42% pay drop
An important takeaway from this is that the career of a Java developer doesn’t always involve a consistent rise in pay. The two significant pay drops I endured were chosen deliberately due to a change in personal priorities.
Average salary across all jobs vs. Java developers
The good news for Java developers is that they have a specialist skill meaning they will certainly be paid more than the average worker. To train as a Java developer, even for a junior or graduate level job, requires a significant investment of time and money which acts as a high barrier to entry.
For example, the traditional route into Java development in the United Kingdom is a 3 year degree in Computer Science costing in total $38,202 (£27,750), which is normally taken as a debt to be repaid once the graduate starts earning a salary. Other routes include boot camps, self-study, or knowing the right people, but some companies still require a university degree even for a candidate to be considered.
All this means that Java developers are in relatively short supply, and hence they get paid more as shown below.
|Local currency annual salary||U.S. dollar equivalent|
|United States all workers||$52,801||$52,801|
|United States Java developer||$93,000||$93,000|
|United Kingdom all workers||£27,700||$38,110|
|United Kingdom Java developer||£49,883||$68,764|
In the United States a Java developer can expect a salary 76% higher than average, whereas in the United Kingdom the figure is 80%.
Despite the high barrier to entry to becoming a Java developer, it’s likely worth it in the long run if you consider lifetime income. For example, in the United Kingdom over his lifetime a Java developer may earn $3,094,380 ($68,764 x 45) over a 45 year career, whereas an average worker would earn only $1,714,950. When you take into consideration an additional one million dollars of income, the cost of a university degree becomes insignificant.
Other languages vs. Java developer salary
One common question asked by people considering a career in software development is What programming language should I learn? There’s actually no single right answer, since it depends on the person’s interests and motivations. One important factor to consider though is salary, so here’s a comparison of the salary of software developers of different languages.
|Local currency annual salary||U.S. dollar equivalent|
Java developers’ salaries are in the middle, and they can expect to get paid 13% less than Scala developers but 22% more than C developers. While a full comparison of all these languages is outside the scope of this article, some important factors other than salary should be considered.
- whether the industry you want to work in favours a particular language (e.g. finance relies heavily on Java)
- whether you like working with the language (e.g. Java is a statically typed language, so suits those wanting to work on large resilient applications)
There’s also nothing to prevent you from becoming proficient in multiple languages. In some companies this can even be a job requirement, since they want full-stack developers who can work on front-end and back-end code.
Job satisfaction vs. salary considerations
Whilst this article is focussed mainly on salary, it’s important to paint a clear picture of some other important considerations when choosing a career in software development. Depending on your own preferences, salary might not be the most important factor.
A Java developer working for a company with a legacy application, doing bug fixes and small improvements, might have limited opportunities to learn through the work itself. On the other hand, a small growing company may offer work on greenfield projects, new projects with no specific constraints, allowing the developer to explore new technologies.
Some companies have a training budget to help you learn about technologies relevant to the work you’re doing. For example, if you’re a Java developer deploying software into Amazon Web Services (AWS), then your employer might pay for your AWS Certified Developer certification.
Sociable working environment
For some people a fun team dynamic and busy after-work social calendar are important aspects of a role. For others, the enjoyment comes from the work itself and the challenges it brings.
If you have a family, you may prefer a company that doesn’t ask you to regularly work late. Other possible benefits include flexible working hours and work from home arrangements. On the other hand, some developers enjoy the excitement of big-bang software launches and the inevitable late-night pizza fuelled coding marathons.
Future salary prospects for Java developers
Java was first released in 1996, and has enjoyed a 25+ year lifespan during which it has normally been in the top 2 most popular programming languages. Considering its historic success, it’s reasonable to wonder about the future of the language and more specifically how the salary of Java developers might change in the coming years.
One way to look at the popularity of programming languages is using the TIOBE Programming Community Index, which ranks a language based on how many searches it receives in popular search engines. The graph below shows the popularity of three languages, including Java, over the last 20 years.
As you can see, Java and C have held the top spot for almost the whole period, but recently something changed. Consider the TIOBE index rating figures from October 2021:
- Python 11.27%
- C 11.16%
- Java 10.46%
Python, released all the way back in 1991, has gained a big following, becoming more popular than both Java and C. This is largely due to Python’s intuitive nature which makes it suitable for beginners, and its popularity in machine learning applications.
Also consider that Java is constantly improving to stay competitive with other languages. With its 6 months release cycle, new features get shipped a lot more regularly than used to be the case. This should ensure a strong demand for the skills of a Java developer in the coming years.