What is the best city in the world for a software engineer? San Francisco? New York?
From a salary standpoint, Silicon Valley is the clear winner, boasting an average income of $110,554 per year, according to data from Glassdoor. But even with six-figure salaries, many developers are finding it difficult to afford the sky-high rent in the Bay Area.
But if not the Valley, then where should developers go? It is not enough to only consider nominal income — high living costs can eat away at your earning power.
For a more complete analysis, we compared the real earnings of software engineers in 43 cities across the globe to find where they would have the most purchasing power. Real earnings were calculated as follows:
Real Earnings = Income - Taxes - Social Security - Living Costs - Rent
Seattle is the clear winner, with wages close to those in Silicon Valley but with significantly lower rent costs. Also, cities in the United States ranked higher than international cities across the board, with few exceptions. Interestingly, San Jose (our proxy for Silicon Valley), still ranked 3rd of 21 cities in the U.S., whereas San Francisco is in at 19th, again, due to difference in rent.
On the East Coast, New York and Washington, D.C. fared even worse, taking the last two spots respectively. Phoenix took second, and Austin and Houston rounded out the top 5. Internationally, Tel Aviv, cities in Canada, and Berlin are our recommendations. Our data suggest you avoid London, Singapore, and China, contrary to what one might expect.
Previously, Glassdoor listed the “25 Best Paying Cities for Software Engineers” in the U.S. and calculated a “Real Adjusted Salary” by scaling salary with a cost-of-living factor. Their model ranks San Jose and San Francisco as number 2 and 3 on their list respectively, contrary to anecdotal evidence. It is worth noting that they indicate that San Jose has a higher cost of living than San Francisco, while our data will show you why it’s quite the opposite.
What does "scaling income with cost of living mean?" It is a way to put all cities with different costs of living on equal footing. Here is Glassdoor's formula:
Scaled Income = ((average cost of living)/(actual cost of living)) * Base Income
But scaling income with cost of living is not a very accurate way to compare across cities. People just want to know how much money will be in their pocket at the end of each year.
Instead of scaling income like Glassdoor, we used our real earnings formula to calculate the earnings of an average software engineer living alone in the city, and used that as a ranking metric. This leads to vastly different results.
Real Earnings = Income - Taxes - Social Security - Living Costs - Rent
Since tax takes out a significant portion of each paycheck and varies regionally, we used the same Glassdoor base-salary numbers to calculate the after-tax income for each city, and then subtracted average annual living and rent costs, based on data from Numbeo. You don’t want to move to a city with few job openings, so we chose cities with a large number of job listings, and expanded our scope globally.
Cities in the United States beat out nearly all international cities, and so to simplify things, we separated the two into different rankings. We will refer to non-U.S. cities as “international” cities, from now on.
Most assume that although wages are lower abroad, lower living costs are enough to compensate. With a lower base-salary, your real earnings will be lower, but even as a ratio of living costs, wages abroad typically cannot compete with those in the United States. For more information, see our “Affordability” section below.
Our data confirm the findings of similar reports, suggesting that Seattle is the best place for a software engineer right now. Companies like Amazon and Microsoft raise the average wage to a value close to Silicon Valley’s; however, lower rent means more money in your pocket each month.
Phoenix, Austin, and Houston all seem to be good choices as well, with real earnings above $30,000. These markets are still growing though, nearing the bottom of our list for number of job openings. Raleigh, North Carolina comes in at 6th just below Houston, but again, the job market there is relatively small.
See our mobile, software, and web app developers in Seattle →
From the chart above, you may have noticed the disparity between San Jose, at 3rd, and San Francisco, at 19th. These two cities are often grouped into the same category of “Bay Area”. Why do regions with similar markets and geographic proximity have such different real earnings?
Our data suggest salary and cost of living are nearly identical, but cheaper rent in San Jose makes the difference.
Living costs do not vary dramatically across cities, but rents do. For example, take a look at Phoenix in third with an average rent of $972 per month, whereas San Francisco in nineteenth with an average rent of $3272 per month.
Washington D.C., New York, and Boston have the largest software engineer job markets outside the Bay Area, but sky-high rents push them to the bottom of the list. Washington D.C. has the largest number of job openings in our analysis, but below average salary and high costs make it the worst choice among large U.S. cities.
Beyond the cities in the U.S., we wanted to know more about international cities as well. We chose the cities mentioned in similar reports as either established or “emerging” tech hubs and ran the numbers for them. Keep in mind that nearly all the cities listed below do not outnumber their U.S. counterparts in both real earnings and number of job openings.
Oslo tops the list in terms of earning power, but we did not mention it earlier because the job market is the smallest among the 43 cities we analyzed in this report. Compare its 106 job offerings to 22,554 in New York City.
Your best bet is Tel Aviv. It is a fairly mature tech hub, with the second highest real earnings and a reasonably sized tech market. Furthermore, there are tax breaks available for new immigrants to the country, which are not included in our tax calculation.
Canada makes a good showing as well. Toronto, Montreal, and Vancouver take spots 3, 4, and 5 on our list for real earnings. Also, the job markets for all three cities exceed Tel Aviv. Berlin, often mentioned as a strong European tech hub, is not far behind in 6th.
Bangalore is worth a mention as well. It has one of the most software engineer job openings in the world, exceeding San Francisco and San Jose, and only inferior to New York and Washington D.C. In contrast, it has the lowest average pre-tax income in U.S. dollar terms for all the cities we considered.
In most cases, the living costs internationally are much lower than in the United States, but not so low that they compensate for the drop in salary.
London’s real earnings is below-average internationally, and in turn, much lower than cities in the United States, according to our data. Another city that may surprise you is Beijing. Many people are excited about the technological innovation there, and local startups have preferential access to a huge, yet unique, domestic market. However, our data suggest that, in strictly financial terms, there are better options.
Singapore and Hong Kong’s real earnings values are near zero. Warsaw and Moscow’s are even lower, to the point that we calculate a negative value for real earnings. This means that if you are a software engineer making an average salary in one of these three cities, you cannot afford to rent a single apartment in the city-center.
Lower wages internationally usually means lower earnings, even with lower living costs. Perhaps it is more important to consider income as a ratio to expenses. We calculated an “affordability” ratio for international cities, which is after-tax income divided by expenses, then indexed it to San Francisco. Thus, the “affordability” of San Francisco is defined as 100, and a value of 150 means the city in question is 50% more “affordable” than San Francisco.
Income Multiple = (After-tax Income/Expenses)
Index Value of City A = 100 * (Income Multiple of City A)/(Income Multiple of SF)
For the most part, this gives a similar ranking to real earnings. More interesting is the placement of San Francisco. While San Francisco is not particularly affordable (most U.S. cities have values above 100), about half of international cities have a lower ratio. So even considering income as a ratio to expenses, international cities struggle to compete.
Hire front-end developers in San Francisco with CodementorX
To give some non-financial context for each city, we cite Numbeo’s Quality of Life Index, which is a weighted index based on several factors:
This number is not indexed so it is just a means for comparison. Since there is less of a stark contrast between U.S. and international cities, we included all global cities below except for Baltimore and Detroit, which did not have sufficient data to calculate the index.
Many international cities exceed the largest cities in the U.S. Consider, for example, that 13 of 22 international cities exceed New York. Beside Melbourne, 10 of the top 11 spots are all smaller American cities. Take these results as you will; some have mentioned it might weigh pollution too heavily.
Our model assumes that you are a software engineer living alone in the city with an average software engineer salary. Although your personal “real earnings” may vary widely depending on job role, marital status, and living situation, we find it reasonable to use this as a proxy. For example, we assume that if a software engineer is paid more in New York, then a web developer will also be paid higher in New York. This is simply a way for us to compare “apples to apples” across cities.
Secondly, we are not tax professionals, and it is possible we made a mistake (respect for you accountants out there— international tax code is quite a doozy). We assume you are a resident of the country for the full-tax year. To get the real earnings, we deducted income tax, local social security payments and mandatory insurance contributions. We assume you are not being doubly taxed by your home country if you are not a citizen of the country in question.
Finally, inherent biases may arise from our data sets. Salary and job openings data are from Glassdoor, cost of living and rent is from Numbeo, and tax calculations are from the IRS and KPMG. Notably, there were less salary and job data for international cities, so in some cases, we used other sources. For example, we used Chinese websites to find data for Beijing and Shanghai. Also, it is possible there are less job listings for international cities simply because Glassdoor is based in the United States.
The raw data we used can be found here.
Here, it behooves us to say that there are many other factors for software engineers to consider when choosing a city to live in, but we hope this may be a starting point for your decision. Sometimes the cities perceived to be the most “exciting” or to have the most “opportunity” are in fact the worst choices in terms of real earnings.
From a financial standpoint, it is easier to draw conclusions. Overall, the United States is the best country to live in for a software engineer. Consider Seattle, and avoid New York and D.C. Pick San Jose over San Francisco, and do not forget about Phoenix, Austin, Houston, and Raleigh. If you must go abroad, look at Tel Aviv, Canada, and Berlin, but avoid London, Singapore, and China.
Finally, please let us know what you think in the comments below!
Interested in reading another data-backed post? How about The Worst Programming Languages to Learn in 2018?