Europe's best cities for developers are Zurich, London, Amsterdam and Berlin, ranked by what a senior developer actually keeps after tax and rent rather than by gross salary. This guide uses net monthly pay, rent outside the centre and realistic deposit costs to show where the money survives contact with the local housing market.
Europe's best cities for developers, ranked by what you keep
Europe's best cities for developers are Zurich, London, Amsterdam and Berlin when you rank them by money left after tax and rent rather than by advertised salary. Gross pay misleads because Danish tax can cut an 81,000 euro offer roughly in half, and rent outside the centre eats most of the remainder in Dublin, Paris and Amsterdam.
The ranking below comes from a city-level comparison of junior, mid-level and senior developer pay across European tech hubs. It uses net monthly salary, living costs for one person excluding rent, one-bedroom rent outside the city centre, and the savings that remain. City-level figures matter more than country averages because a national cost of living hides the fact that Lisbon's costs are far above Portugal's.
Ranking the same cities by gross salary instead of net savings would move Dublin up sharply and drop Warsaw, because Ireland's big-tech employers pay well while Polish salaries stay low even against low Polish rents. Savings, not salary, is the number that decides whether a move pays off.
The ranking in detail, ordered by what a senior developer keeps:
| City | Senior annual pay (gross) | Typical monthly surplus | Notes |
|---|---|---|---|
| Zurich | ~130,000 CHF | ~4,000 EUR | Highest pay in Europe, occasional German |
| London | ~80,000-100,000 GBP | ~2,000-3,000 EUR | Deepest job market, English only |
| Amsterdam | ~70,000-90,000 EUR | ~1,500 EUR | Expat tax ruling, English only |
| Berlin | ~70,000-85,000 EUR | ~1,500 EUR | English hiring, tight rental market |
| Copenhagen | ~80,000 EUR (in DKK) | ~1,500 EUR | High tax, few total openings |
| Dublin | ~80,000 EUR | ~1,500 EUR (more at big tech) | Housing costs near 2,000 EUR |
| Madrid | ~40,000-50,000 EUR | under 1,000 EUR | Two-year citizenship route |
| Lisbon | ~38,000 EUR (mid-level) | 200-342 EUR | Housing problem, entry point only |
| Warsaw | low | low | Very low pay, very low costs, cancels out |
After Zurich and London, the rest of the top group sits in a single band. Amsterdam, Berlin, Stockholm, Copenhagen and Helsinki all offer a good salary-to-cost ratio, and Oslo and Vienna are strong on the same measure, but the total number of openings is much smaller. For a developer who wants options, that difference matters more than the ratio.
The numbers behind net pay, tax and rent
A realistic budget starts with net salary, not the figure in the offer email. In Denmark, an 81,000 euro annual salary in Danish krone becomes roughly 4,000 euros a month after tax, meaning close to 32,000 euros a year goes to tax. Copenhagen rent for a studio outside the centre runs near 1,200 euros, and that figure is optimistic.
The Danish case is the cleanest way to see the problem. Gross 81,000 becomes net 4,000 a month, or 48,000 a year. That 48,000 is short of the gross figure by 33,000 once you round. A monthly net of 4,100 euros is the median mid-level figure for the country, and a developer in that bracket saves around 16,600 euros a year in the best case. Treat that as a ceiling, not a plan: travel, furniture and the cost of sustaining a lifestyle worth leaving home for all pull the number down.
Numbers like this are why the comparison ranks cities by mid-level and senior net income rather than headline pay. A developer reading only the gross figure can accept a role that leaves less savings than a smaller offer in a lower-tax city.
Apartment prices carry a second distortion. Advertised averages often reflect contracts signed years ago under rent controls, not what a newcomer can rent this month. Berlin, Paris and Zurich all show this gap: listings look affordable on paper, and the apartments behind them are not available to someone who just landed. In Berlin, the site figures put total monthly cost for one person at 2,000 euros, yet developers who live there report spending 4,000 alone. Finding a 949 euro apartment in Berlin is close to impossible.
Gross salary versus take-home pay in Europe
Gross salary, net salary, rent and monthly savings tell different stories about the same city. The table below compares the cities discussed, using senior-level figures where savings are estimated, and treats every number as an estimate of what a normal person spends rather than a guaranteed outcome.
| City | Senior gross annual | Net monthly | Rent outside centre | Other living costs |
|---|---|---|---|---|
| Zurich | ~130,000 CHF | high (top of range) | 1,500-2,000 CHF | ~1,600 EUR |
| Copenhagen | ~81,000 EUR | ~4,000 EUR | ~1,200 EUR | studios, simple rooms |
| London | ~80,000-100,000 GBP | mid range | rising | mid range |
| Dublin | ~80,000 EUR | mid range | ~2,000 EUR | ~1,000 EUR |
| Lisbon | ~38,000 EUR (mid-level) | low | ~1,000 EUR | ~700 EUR |
| Amsterdam | ~70,000-90,000 EUR | mid range | ~1,600 EUR average, 2,000-2,500 EUR realistic | mid range |
Read the table by column, not by row. The middle two columns are the ones a landlord and a tax office will actually charge you for, and the right two columns are the ones you control.
Moving costs most comparisons leave out
Budget two months of short-term accommodation plus a three-month deposit before your first local lease. In practice, arriving in Zurich or Berlin means paying for temporary housing while you search, then paying a deposit that can total several thousand euros once you sign. Without that cash buffer, the first months cost far more than any monthly average suggests. Landing in Zurich means roughly 3,000 to 4,000 euros a month in short-term housing for the first two months, plus a deposit that can run 4,000 to 10,000 euros.
The rental process itself is a filter. Landlords in Berlin, Paris and Zurich interview applicants, ask for documents and reject people who are not physically in the city, so searching from abroad rarely works. For each city, plan for this sequence:
- Set aside two months of short-term accommodation before you move, at market rates rather than averages.
- Arrive in the city while you search, because almost no landlord will sign with someone who is not already there.
- Prepare documents in advance: payslips, employment contract, references and proof of income.
- Expect interviews for the apartment itself, not just for the job.
- Budget a three-month deposit, then add the first month's rent on top of it.
- Treat any listing well below the local median as unavailable, because the price reflects someone else's old contract.
The worst-case number in this sequence is real. A mid-level developer in Milan, for example, can spend months in temporary housing before finding a lease, and the surplus the salary table promised disappears in the meantime.
Where developer salaries are highest in Europe
Zurich pays the highest developer salaries in Europe by a wide margin. Senior roles reach around 130,000 Swiss francs a year, and a senior developer can plausibly save about 4,000 euros a month after tax and rent. London sits second, with a realistic monthly surplus of roughly 2,000 to 3,000 euros once housing is paid, though stretching to 3,000 takes effort and 2,000 is the more honest planning figure.
The gap between Zurich and everywhere else is large enough that it looks like an error in the data. Monthly rent outside the centre of Zurich runs about 1,500 to 2,000 francs, and even at that level the surplus stays far above the rest of the continent. The trade-off is a smaller absolute number of job openings and occasional German-language requirements.
London has the deepest job market among the top cities, which matters if you want options when switching roles. Amsterdam and Berlin follow on savings and both hire in English, which keeps them practical for developers without a local language.
Amsterdam carries an extra advantage for newcomers: the Netherlands reduces income tax for qualifying expats in the early years, so the first years of take-home pay can be higher than the headline tax rate suggests. Amsterdam also concentrates offices of very large employers, including most of the big tech companies, alongside Booking. That concentration matters because the tax benefit only pays off if you land one of those roles.
Cities where a developer salary barely covers costs
Lisbon, Milan, Madrid and Warsaw rarely justify a move on savings alone. A mid-level developer in Lisbon earning around 38,000 euros gross might keep roughly 200 to 342 euros a month. Milan combines low software salaries with high living costs, and the Italian market adds a harder barrier: many employers require Italian. Warsaw pairs very low salaries with very low costs, which cancels out the advantage, and for a developer from outside the region the cultural adjustment is a further cost that does not show up in any table.
Portugal's housing problem drives the Lisbon figure. A one-bedroom outside the centre runs near 1,000 euros, and other living costs for one person add about 700 euros, so the surplus disappears quickly. Portugal still works as an entry point to Europe for other reasons, but not as a savings strategy. A Brazilian senior developer earning the equivalent of around R$ 20,000 a month at home can often save more than a Lisbon mid-level contract allows, and against a 38,000 euro Lisbon offer that comparison is not close.
Even a stronger Lisbon package does not change the picture much. A senior developer at a company like King in Lisbon on 55,000 euros can spend around 1,000 euros in rent, which leaves roughly 1,000 euros of savings a month. That is a realistic senior outcome, and it is still below what many people save by staying put and working for a foreign employer.
Spain is the exception among the lower-paying markets. Madrid pays somewhat better than Lisbon or Milan, and Spanish citizenship after two years of legal residence makes it the strongest passport route in this group. Italy adds a further barrier because many employers require Italian, and for technology specifically the Italian market is genuinely weak. If the goal is a second passport, Spain wins on almost every count: easier entry, faster citizenship, better pay and lower costs than Portugal or Italy.
Removing cities from your shortlist
Prague, Munich and Paris drop off most shortlists for structural reasons rather than salary alone. Prague had too few openings in the sample to draw conclusions, Munich concentrates less tech hiring than Berlin and often expects German, and Paris has a tight rental market with ageing, small apartments plus frequent French requirements. Munich is a wealthy city, which makes it expensive, though German logistics keep prices lower than that wealth would suggest. For technology specifically, Berlin is the better bet in the same country. Paris remains a good option if you speak French or find an employer that hires in English, but it does not have the most openings in this group.
Language is the deciding factor in several cities. Berlin and Amsterdam hire largely in English. Zurich occasionally requires German. Milan, Munich and much of Paris expect the local language, which narrows the roles available to a new arrival. Berlin is the clearest case: developers work there in English, and the tech scene, from startups to big tech, is concentrated in Berlin rather than Munich.
Helsinki, Copenhagen and Oslo offer strong salary-to-cost ratios but few total openings, and Helsinki in particular has a reputation as one of the most expensive cities in Europe. A good ratio is not useful if the roles you want are not there.
Dublin needs its own warning. Average senior pay of around 80,000 euros is not high by European standards, and tax is high, but the concentration of big tech means a strong candidate can land a much larger package. A net monthly figure of 7,000 to 8,000 euros is possible at that level. If rent is 2,000 to 3,000 euros and living costs add another 1,000, savings of 2,000 to 3,000 remain, which is good. Outside that big-tech case, Dublin is not the best place on the list. Rent outside the centre for a studio runs around 2,000 euros, and 2,000 in the centre buys a room in someone else's house.
One practical filter that has nothing to do with money: cold and darkness. If long dark winters are a dealbreaker, cut Stockholm, and consider whether London is acceptable, because London is milder than it once was. Zurich sits further south and gets more sunlight hours.
Who this comparison is for, and where it breaks
The ranking assumes you are leaving a country where you can already work, that you are moving without a local network, and that you will rent rather than buy. Change any of those and the numbers move. Living with a partner halves the rent line. A remote contract removes the relocation cost entirely. A family changes the whole calculation.
On a single developer salary, supporting a family is difficult in most of these cities, and in Lisbon and Milan it is close to impossible. Living costs for a family rise faster than developer pay in the cheaper markets, so the gap widens precisely where the salary is lowest. Two incomes or a big-tech offer change the calculation, but one salary usually does not.
Nobody in this data saves 5,000 euros a month. Even Zurich sits below that in a normal year, and the reason is that the exact rent being charged right now is hard to find in any average. Search for the average one-bedroom price in Zurich and you will get roughly 1,500 to 2,000 francs outside the centre and 2,000 to 3,000 in it. That is the figure, and finding an apartment at that price is a different exercise.
The final break in the comparison is remote work. For pure savings, living in Brazil and working for a foreign employer beats relocating to Europe in almost every case, because Brazilian living costs are far lower while the salary is paid in a stronger currency. Relocating only makes sense when remote roles are not available to you, or when you want something the money does not buy: a second passport, a specific market, or a career path that needs a big-tech employer on the CV. If you are leaving specifically to accumulate money, the honest test is whether you can find a remote role instead.
Frequently asked questions
Which European city pays developers the most?
Zurich pays the most, with senior developer salaries near 130,000 Swiss francs a year and a realistic monthly surplus around 4,000 euros after tax and rent. London ranks second. Swiss employers sometimes ask for German, which narrows the roles available to English-only candidates.
Is Lisbon still worth moving to as a developer?
Lisbon rarely works as a savings strategy, because a mid-level developer may keep only 200 to 342 euros a month after tax and rent. Portugal's low national cost of living does not apply to Lisbon itself. It can still make sense for other reasons, such as access to Europe.
How much does it cost to move before you find an apartment?
Budget two months of temporary accommodation plus a three-month deposit. In Zurich, temporary housing can run 3,000 to 4,000 euros a month, so the first two months cost several times the normal monthly budget before the deposit is added.
Do you need the local language to work as a developer in Europe?
Berlin and Amsterdam hire largely in English, and London and Dublin operate in English entirely. Zurich occasionally requires German, while Milan, Munich and much of Paris expect Italian, German or French. Language requirements shrink the list of roles you can apply for.
Which city has the best salary to cost ratio?
Copenhagen, Helsinki and Oslo have strong ratios between pay and living costs, and Zurich is the strongest overall. The catch is openings: Copenhagen, Helsinki and Oslo each have far fewer developer roles than London, Amsterdam or Berlin.
Why do advertised apartment averages not match real rents?
Rent-controlled contracts signed years ago pull averages down, especially in Berlin and Zurich. New arrivals cannot get those contracts, so their actual rent is higher than the published average. Treat any listing well below the local median as unavailable.
Can one senior salary support a family in Europe?
In practice it is difficult in most of these cities on a single developer salary, particularly in Lisbon and Milan. Two incomes or a big-tech offer change the calculation. Living costs for families rise faster than developer pay in the cheaper markets.
Is working remotely for a foreign company better than relocating?
For savings, working from Brazil for a foreign employer usually beats relocating to Europe, because Brazilian living costs are lower while the salary is paid in a stronger currency. Relocating mainly makes sense when remote roles are not available to you.
Which cities should a senior developer target first?
Zurich and London first, then Amsterdam and Berlin. Zurich maximizes savings, London maximizes job volume, and Amsterdam and Berlin combine decent savings with English-language hiring. Apply to the others only for a specific reason such as citizenship or family.
What does Dublin pay a senior developer outside big tech?
Around 80,000 euros a year on average, with high tax on top. Rent outside the centre for a studio runs near 2,000 euros and other living costs add roughly 1,000, so the surplus is modest. Dublin only beats its ranking when a big-tech package pushes net pay to 7,000 or 8,000 euros a month.
Sources and further reading
The figures in this article come from a city-level comparison presented by Augusto Galego in the video As Melhores Cidades da Europa Para Se Trabalhar Como Dev, which is the original source for the salary, rent and savings numbers used here. Some parts of that comparison, particularly the job-opening counts, were compiled with AI assistance and are described as approximate.
For readers who want to check cost-of-living inputs against an independent dataset, Numbeo publishes crowd-sourced city-level rent and cost figures, and Eurostat provides official comparative price levels across European countries. The tax treatment of expat income referenced for the Netherlands is documented by the Dutch Tax and Customs Administration.
Developers preparing for the technical side of these interviews can work through Crazystack, where Augusto Galego publishes the Crazystack Typescript track, and a structured Bootcamp do Dev Doido with Gustavo Dev Doido covering the interview process. The broader Passaporte Tec material covers the international job market, and LinkedIn remains the channel recruiters in these cities actually use.
Talking about developer pay, in writing
Pay comparisons like this one travel well in writing, because tables and figures survive being copied, quoted and argued with. A video holding the same numbers does not: the spreadsheet is the useful part, and it disappears into a timeline where nobody can search it or cite it.
The same is true of the relocation lessons here. Which landlord asked for which document, what the deposit actually cost, how long the search really took: none of that survives a video timeline, and all of it is what the next developer needs.
If you have built similar breakdowns, salary comparisons, relocation lessons or interviews on YouTube, the knowledge is already recorded. Skala Blog can take that video, transcribe it and produce a written version you can edit and publish. Paste a YouTube URL at Skala Blog, let the transcript come out, and turn the parts that took you years to learn into an article someone can find and use.
Fork this article
Start a new branch from the same video, shaped your way. You keep the credit; the original keeps the attribution.
A fork in another language is filed as a translation of this article, so the two pages point at each other. You can unlink it later from the editor.
0/240
You are creating
- Format
- For
- Language
- Source
- Your angle
You will be asked to sign in before it is generated.
Buy credits