Let’s talk about software engineering salaries.

You’re an ambitious young flea and you want to be rich, so let’s start at the top and work downwards.

Here is the plain and simple truth:

The absolute top end of salaries for software engineers are found by working in Silicon Valley for one of the major tech giants (FAANG + Microsoft, Nvidia, Stripe etc).

Here are the Silicon Valley annual salary numbers as of 2019:

  • Junior: $200k
  • Mid: $300-$350k
  • Senior: $400-$450k
  • Staff and above: $500k-several million

This number represents total comp and is usually comprised of base + signing bonus + stock options in varying degrees depending on the company.

You might think this is a lot, and you’d be correct, but I can assure you that these numbers are accurate and any engineer working for one of the tech giants in Silicon Valley would corroborate this.

Those engineers probably aren’t any better than you are, technically speaking - they’re simply in the right place working for the right company.

As soon as you venture out of the U.S. (specifically, outside of NYC, Seattle, LA or SF) salaries drop significantly, even if you still work for a FAANG company.

Any company headquartered in Silicon Valley will pay double there than they will anywhere else, and what’s more, all the good projects will go there too. This has a large effect on FAANG salaries in London, which are at nowhere near the same level.

Silicon Valley is a unicorn zone, and unless you can get a H1B, O1 or L1 visa (or marry an American) you’re unlikely to match those salaries elsewhere.

If you don’t live in the U.S. and can’t move to Silicon Valley, you can still hit about half of those salary numbers if you close the right fully remote job for a U.S. based company.

If you live in London, you’re also pretty lucky because tech salaries are relatively high here too (if you play the game correctly).

You can get about 1/2 of the way to top Silicon Valley salaries working as a software engineer in London, albeit slightly less now due to Brexit and the rubbish exchange rate of pounds to dollars.

We will focus on realistic London salaries for the rest of this post.

For your information, I’ve included a few public compilations of real UK software developer salaries below:

There’s a few things to understand about these numbers.

The first thing to understand is that most publicly available software engineering salary numbers are bogus to some degree.

They are almost always skewed too low. This is for a variety of reasons.

Firstly, companies don’t want you to know how much they are paying their top people because it reduces their negotiating power.

This skews the salary numbers to the low end because the highest salaries are never publicly revealed.

Secondly, most software developers are incompetent and paid correspondingly, this drags the average down.

Thirdly, most of the highest paying jobs are never posted anywhere. They are filled informally and trust me, these people are not posting their salary numbers on stack overflow.

Having said that, I’m going to try to outline a typical software developer career track for a web developer in London and what you can expect to get paid at each level.

How do I know these numbers?

Good question :)

I know these numbers because I spend a lot of time talking to recruiters and other software developers.

For my job I have to manage hiring engineers and negotiate their salaries, so you can trust I have my finger on the pulse of this market.

Permie vs. contracting

A quick note on permie vs. contracting.

The London tech market is peculiar in that the pay scale is upside down compared to almost everywhere else.

In the U.S. for example, contractors are generally seen as lower life forms than permanent employees. They have less job security, tend to get paid less and are treated worse.

In London the reverse is often true.

Typically you can expect to take home 20-50% more in real terms as a contractor when compared to doing the exact same job as a permanent employee, even though the only real difference is around the legal technicalities of how you get paid.

I have several hypotheses for why this is the case:

1. Health insurance is not a thing

A major perk of having a permanent job in the U.S. is that it covers your health insurance. This inflates the value of permanent jobs beyond their salary.

Since we have the NHS in the UK, this is much less of a big deal.

2. The tax structure is different

Although the tax situation in the UK for contractors and small businesses has gotten a lot worse in recent years, it is still more tax efficient to be paid as a contractor.

This is true for both the payer and the payee, so net income for an equivalent position tends to be higher when contracting.

3. Stock options in London are laughable

Tech companies in the US tend to have pretty good stock reward schemes. This makes a permanent position more attractive, since you can get upside exposure to the company’s success in a meaningful way.

The same cannot be said of tech companies in London.

Stock options, when given, usually fall somewhere between a token offering and a complete joke. Companies give far too little stock away to their employees and what little there is comes with exploitative vesting schedules.

Since stock options are relatively worthless, it makes far less sense for an individual to take a smaller salary that would come with a permanent position as compared to that bigger cash payout that comes with contracting.

In my opinion both employees and employers lose out from this lack of incentive alignment.

Employees lose upside exposure and have less intrinsic motivation to work harder since they get paid the same regardless of how well the company performs.

Employers are more likely to lose valuable workers and domain knowledge, since the worker is less invested in the company because they don’t have a meaningful ownership stake.

Tech companies in London would do well to copy their brethren from over the pond and offer more generous stock option schemes in order to attract and keep the best talent.

4. UK middle management can’t stomach the idea of software developers being paid more than them

This I think is the biggest reason for the contract/permie split, and it’s an ugly one.

The average middle management salary in London caps out at around £50-70k.

Most companies are not as progressive as Silicon Valley tech, and they do not value software engineers in the same way1.

Instead of seeing software engineers for what they are - high level business problem solvers who use tech as a lever to do the work of 10s or 100s of unskilled workers - they see them instead as “anomalously high-cost peons who type some mumbo-jumbo into some other mumbo-jumbo”2.

Middle management can’t stand the idea of a lowly “peon” being paid more than them, so permanent salaries end up capped to slightly lower than whatever middle management gets paid.

Unfortunately these management types still need to get actual software developed, and since they can’t find anyone competent at the salaries they are willing to pay, they skirt around the whole issue by hiring contractors instead3.

It doesn’t matter that the contractor gets paid a lot more than them in real terms, since the contractor sits outside of the company hierarchy and therefore “doesn’t count”.

There are many absurd emergent behaviours in big corporations, and I believe this to be one of them.

Sounds like material for a Dilbert cartoon, doesn’t it?

Now you’ve got the background on permie vs. contracting, let’s dive into hard numbers.

Note that what follows are London numbers. Everywhere else in the UK will be at least 20% lower.

Bog-standard non-FAANG, non-finance, big corporate permie

90% of software development falls into this category.

Usually you’ll be working with C#, Java or C++ for some boring megacorp, building and maintaining internal software tools that will never see use outside of the company.

Here are the top end salaries you can expect4:

  • Junior: £30k-50k
  • Mid: £60k
  • Senior: £70k-80k
  • Principal/staff/manager: £90k-110k

NOTE: If you are female or BAME, you’re in luck. Most large companies are putting an aggressive focus on increasing diversity these days. Since there are not many female or BAME software developers, demand is greater than supply and this means two things:

  1. It’s far easier to get hired as a junior if you’re female or BAME
  2. Your starting salary will be much higher if you’re female or BAME (I’ve seen as high as £70k for female developers fresh out of a bootcamp with zero professional experience)

I won’t make any commentary on whether this is fair or not, but you’d be mad not to take advantage of this if you can.

JavaScript/Startup/Unicorn/Web 2.0 non-FAANG, non-finance permie

The range here is wider, but you have the advantage that well-funded startups are flush with VC cash and are typically under a lot of pressure to hire fast. This tends to drive salaries up slightly (classic supply and demand mechanics).

You’re also less likely to be impacted by the phenomenon that I mentioned earlier about megacorp middle management being unwilling to pay developers more than they themselves earn, since most startups haven’t had time to grow an ossified layer of middle managers yet.

If you have some specialised skills, especially around JavaScript/React/web development, or Python/ML this is going to bump your numbers upwards too.

Salary ranges:

  • Junior: £30k-50k
  • Mid: £60k-70k
  • Senior: £80k-90k
  • Principal/staff/manager/CTO: £90k-120k

Finance permie

If you want to make the best money as a software engineer in London, realistically you need to be in finance.

This is not a lifestyle for everyone. While the money is good, you’ll be working long hours and surrounded by high testosterone apes in your day to day. It’s also more competitive and you’ll need to show a demonstrated ability to perform.

Regular web development in finance typically pays the same as big corporate plus a premium of about 20% (presumably as compensation for the crappy lifestyle).

However, if you can develop a highly specialised skillset e.g. quant analysis, high frequency trading etc, the top end here is ridiculous and easily rivals Silicon Valley numbers.

I don’t know enough about the sector to give hard numbers across a range of levels, but I personally know of at least one engineer specialising in high frequency trading who is making £250k/yr + bonus.

I also know that this number is not unusual in his field.

FAANG permie

FAANG in London does not pay as well as FAANG in Silicon Valley.

In fact, a major reason that US tech giants set up shop over here at all is so that they can get access to equivalent talent for half of the price.

With that said, typically you’ll be looking at the same as the startup salaries plus about 30-50%. That is:

  • Junior: £50k
  • Mid: £70-80k
  • Senior: £90k-110k
  • Principal/staff: £120k-150k

To most people this is pretty good money. Besides, having a FAANG company on your CV can open a lot of doors.

Contracting

Contractors get paid a day rate rather than a yearly salary. This makes side-by-side comparisons a bit trickier, and the exact conversion depends on tax rates (which change every year) but there are online tools to help.

Your take-home also depends on whether you fall inside or outside a piece of legislation called IR35. For the purposes of this post, we’ll assume you fall inside it.

Here are some rough conversions as of 2019, assuming a normal number of working days:

£300/day == £53k/yr
£400/day == £72k/yr
£500/day == £90k/yr
£600/day == £108k/yr
£700/day == £127k/yr
£800/day == £145k/yr
£900/day == £163k/yr
£1000/day == £182k/yr

While traditionally the higher pay of contractors was balanced out by less job security, shorter term work and the expectation of more experience, this is not the case in the 2019 London software developer market for reasons I have explained above.

In fact, I’ve seen cases where even juniors are being hired as contractors and then trained up on the job.

Contract rates vary wildly from around £250/day to £1400/day.

A recruiter friend of mine confirmed these numbers and stated “I’ve not seen many long term contracts upwards of 900pd”.

According to YunoJuno, the average day rate for software developers is around £400/day.

In my experience this is highly dependent on your niche and credentials.

A particularly hot niche right now for example is node.js/JavaScript/React. I personally know of at least one React developer who has been billing £1000/day for quite some time.

Assuming he falls inside IR35, that’s the equivalent of £180k/yr.

If he is lucky enough to fall outside IR35 it’s closer to £220k/yr.

He maintains a prominent open source library and is somewhat known in the community, which is why he can charge at the top end like this.

Another solid niche option here is devops/Kubernetes work for banking. I know of several people billing between £650-£800/day for this kind of work.

Of course, the true upper limit here is much, much higher if you can position yourself as an industry expert or thought leader.

I can’t speak to his day rate, but I imagine if you were to hire someone like José Valim for a week to help with your Elixir development you should expect to pay a lot more than any of the numbers mentioned up until this point.

In another example, I personally know of a case where a core node.js maintainer was hired at a rate of £2000+/day to optimise key parts of a node.js application.

Summary

If there’s one takeaway from this article, it’s that so-called “salary levels” get thrown out of the window when you position yourself correctly, and someone with cash to spend desperately needs you to solve a pressing business problem.

So there you have it! That’s everything I know about London software developer salaries and how much you can expect to get paid as a junior, mid-level, senior and beyond.

Are these salaries in line with what you expected?

If you’re a developer, I’d love to hear from you!

Leave a comment below and feel free to share if you think I have got any of these numbers wrong.


Thanks to Ryan Jones, Marcel Cutts and Deividas Karžinauskas for reading drafts of this.


1. More fool them; just look at the relative success of Silicon Valley giants (who place enormous value on competent software engineers and reward them handsomely) to see why this is a dumb move.

2. This phrase stolen shamelessly from Patrick McKenzie’s “Don’t call yourself a programmer”, published way back in 2011.

3. HINT: Another way that software developers can extract more value from these sorts of reluctant middle manager types is to negotiate along an axis other than salary. Work from home days, a four-day-week or more holiday could be a possible option.

4. It’s important to note that these numbers are norms, but many companies won’t hesitate to exploit developers with poor negotiation skills and I have seen plenty of edge cases where developers are paid far less than their abilities should warrant.