Butterfly, Caterpillar, Moth, Insects, and Currants; Jan van Kessel II
Butterfly, Caterpillar, Moth, Insects, and Currants; Jan van Kessel II (source: The J. Paul Getty Museum).

THE WEB IS A MAJOR EMPLOYER for computer programmers and designers. Many people see the web as their big chance at a career that is both lucrative and fulfilling—witness the enormous number of companies that offer courses in various types of web development, and the large numbers of applicants from whom they can choose their student bodies.

The World Wide Web began as an interlinked system for sharing hypertext documents amongst a small community of scientists. Three decades later, the web is everywhere. It’s your desktop browser, your phone, an app on your tablet, a ticketing kiosk at the airport, your television, and even in your car. The web has grown up and it moves incredibly fast.

In its early days, JavaScript was mostly used to glue things together in the browser. Fifteen years later, things are much different. JavaScript is one of the most popular and in-demand programming languages, and HTML5, CSS, and other core technologies making up the modern web have matured with it.

The web also occupies an interesting space in the field of software development as it proves a welcoming entry point for beginning programmers and subsequently a space for advancement and specialization. The speed of change in web development, in terms of favored tooling, techniques, and standards, allows for much innovation in a vibrant ecosystem of developers. It also presents some challenges for those trying to keep up, or those trying to survey the field, for instance.

So what can you earn as a web developer? How does the type of job, the language you use, or your geographic location affect your salary? That’s what this report, based on a survey of more than 2,000 developers, tries to establish.

For the past few years, O’Reilly Media has conducted worldwide salary surveys of people working in the computer field. Following a general survey of all computing positions, we reached out to those doing web work in order to produce this report.

In the survey, respondents shared details about themselves, the companies they work for, and their roles. We asked for specifics regarding age, number of years in the field, job description, number of work hours, etc. One of the most interesting parts of the report, we think, concerns tools, programming languages, and platforms. These have a major impact on salary.

Limitations

OF COURSE, OUR METHODS ARE INEXACT, and you should be aware of several ways in which this report may fail to reflect reality:

  • The sample size may sometimes be inadequate. Although 2,000 is a large number of people and worth drawing conclusions from, the conclusions become less reliable as we break down the respondents into groups that use a particular tool.

  • We had to group people who differ in known ways. For instance, we sometimes lumped together people in different countries to get a sample large enough to be meaningful, and obviously, salaries will vary in different places.

  • The respondents are self-chosen, not a random sample. They are likely to be people who use O’Reilly Media products and resources, and might not reflect the field as a whole.

  • Because we depend on what respondents say about themselves, we have to trust them to be accurate and objective. Some questions are deliberately subjective—for instance, we ask respondents to rate their own ability to negotiate for a higher salary.

  • The data behind this report was collected in March and April of 2016. Technical fields change quickly, and it has been more than six months since the respondents filled out their surveys.

  • Respondents in the web area vary a great deal in both responsibilities and skills. There is also a great deal of churn in the field, and part-timers.

With these caveats in mind, let’s see what our data tells us.

Large-Scale Findings

THE MEDIAN SALARY IS $78,000 (we use US dollars for all money in this report). Naturally, there is a lot of variation, but 75% of respondents had a salary of at least $50,000, and 25% had a salary of at least $109,000. Things are changing fast, though: salaries rise quickly. 17% of respondents reported a salary raise of 20% to 30% over the past three years. The salary raises also form a bell curve around this 17%. For instance, although 5% reported a decrease in salary, 16% reported that their salaries had doubled, or even done better, over three years.

The United States paid the highest salaries, with the average being $98,000. Canada was also pretty high, with a median of $79,000 (in US dollars), and Australia/New Zealand at $74,000. Compensation drops off rapidly after that:

  • UK and Ireland: average of $62,000

  • Rest of Europe: average of $43,000

  • Africa: average of $23,000 (but there was a rather high top quartile of $41,000)

  • Asia: average of $21,000 (with a high top quartile of $47,000)

  • Latin America: average of $21,000 (with a high top quartile of $44,000)

The top quartile means that 25% of respondents earned more than the amount listed. Of course, countries differ in taxation and the benefits they offer, so salaries have somewhat different meanings in different countries.

Because we got a lot of respondents from the US, we could break them down by region. High salaries in California are no surprise (particularly given the cost of living there), but the high average in Southwest/Mountain states is rather unexpected. (This category does not include California, which has its own category.) Utah, with a large web developer community, as well as Colorado and Arizona all saw high salaries.

  • California: average of $120,000

  • Northeast: average of $105,000

  • Southwest/Mountain: average of $102,000

  • Pacific Northwest: average of $98,000

  • Mid-Atlantic: average of $96,000

  • South: average of $83,000

  • Midwest: average of $80,000

Next let’s drill down into the differences between respondents. The data might affect your career choices.

1617websal 01
Figure 3-1.
1617websal 02
Figure 3-2.

Developers’ Personal Characteristics

WE FOUND THAT EACH YEAR of experience is worth about $1,350. That is, if you have five years of experience, you’re likely to earn $1,350 more than someone who is similar to you but has only four years of experience.

Education makes a big difference in salary—something that may be surprising, given that the web contains a lot of people who are self-taught or who got brief educational experiences at for-profit programs. If you have a doctorate, you can expect to earn on average $10,434 more than someone without one. Strangely enough, possessing a master’s degree is slightly bad for salary: respondents with master’s degrees earned $542 less, all else being equal.

Although older respondents tended to earn more, this was attributable to years of experience. When experience is held constant, respondents in the 26 to 30 and 31 to 35 groups earned the most, with an advantage of $3,932 and $3,347, respectively, over other age groups. Respondents aged 61 to 65 earned $4,526 less than younger respondents with similar experience.

We asked respondents to rate their bargaining skills on a 1- to 5-point scale; 5 meaning they are a very good bargainer. (While this rating is very subjective, the subjectivity is appropriate for this question because so much about bargaining has to do with confidence and being able to assess yourself highly.) For every self-assessed bargaining point, the respondent’s salary estimate goes up by $5,695. So holding everything else constant, someone who gave themselves 5 points will make 4 x $5,695 = $22,780 more than someone with 1 point.

Gender had a predictable influence on salary in the web field. Our analysis showed that everything else being equal, men earned an average of $2,165 more than women.

1617websal 03
Figure 4-1.
1617websal 04
Figure 4-2.
1617websal 05
Figure 4-3.
1617websal 06
Figure 4-4.
1617websal 07
Figure 4-5.

Company Characteristics

THE BEST INDUSTRIES TO WORK FOR, in terms of salary, were search/social networking and banking/finance. If you are in search/social networking, you probably earn a whopping $15,193 more than someone with comparable experience and characteristics in other industries. In banking/finance, you can earn $7,043 more. There are a couple of other advantageous fields:

  • Software (including SaaS, web, mobile): $2,142 better than average

  • Publishing/media: $1,376 better than average

But you will be penalized for working in the following industries:

  • Education: $8,608 worse than average

  • Carriers/telecommunications: $1,547 worse than average

And think twice before becoming a consultant: they earn $8,448 less than average.

Company size had a major impact on salary, but not on a simple linear curve. It looks fairly simple, salary increasing with company size. But when we factor in all the other differences between employees, it looks like the best salaries are given out in firms of 1,001 to 2,500 employees, and the next best size is 101 to 500.

  • 1 (4% of respondents): average salary $57,000

  • 2 to 25 (22% of respondents): average salary $57,000

  • 26 to 100 (17% of respondents): average salary $78,000

  • 101 to 500 (18% of respondents): average salary $82,000

  • 501 to 1,000 (8% of respondents): average salary $87,000

  • 1,001 to 2,500 (8% of respondents): average salary $86,000

  • 2,501 to 10,000 (11% of respondents): average salary $88,000

  • 10,000 or more (12% of respondents): average salary $98,000

If the company is more than 20 years old, we saw a penalty of $2,197 for working there. Perhaps this is because people at such firms stay in one job longer, and don’t experience the salary boost that others get by moving to new firms.

1617websal 08
Figure 5-1.
1617websal 09
Figure 5-2.
1617websal 10
Figure 5-3.
1617websal 11
Figure 5-4.

Job Characteristics

A MANAGER IN WEB DEVELOPMENT earns $11,689 more than other respondents, and upper management earns $15,094 more. (We put a number of self-defined job categories into “upper management:” CEO, president, owner, head of engineering, VP, etc.) The next best career step is to ascend to the rank of an architect, where you can earn $9,760 more. Job titles and company sizes interact in our survey. In small firms, we get responses from a relatively large number of people whose jobs are in “upper management,” but salaries in small companies are generally lower than those in large ones. Correspondingly, people whose job titles say “architect” tend to work for large firms, and benefit from that position.

Other bonuses and penalties added up as follows:

  • Senior engineer/developer: $4,311 better than average

  • Principal/lead: $1,896 better than average

  • System administrator: $2,636 worse than average

  • Engineer/developer/programmer: $3,243 worse than average

And among these job descriptions, consultants again come out the big losers: $6,547 worse than average.

Hours Worked

On the web, workaholics rule. You get an enormous advantage over other employees for working more than 60 hours a week. In general, the more hours you work, the better your salary, but the 60+ bonus of $14,199 stood out. (We did not calculate what people earn by the hour.)

Activities

Writing code for collaborative projects proved to be a good investment. Respondents who reported “minor involvement” in collaborative projects saw a bonus $3,485, while “major involvement” reaped a bonus of $5,093.

We tried to measure the effects of different tasks. Attending meetings is correlated with significant salary increases. This doesn’t mean you should arrange to attend arbitrary meetings. The statistics are probably associated with playing a role of team leader or manager. Interestingly, more meetings are not necessarily better—there’s a limit to the benefit. Here are the correlations:

  • 4 to 8 hours of meetings per week: $3,873 better

  • 9 to 20 hours of meetings per week: $6,961 better

  • More than 20 hours of meetings per week: $2,309 better

Teaching or training others also has a positive effect. All other things being equal, you earn $2,300 more by being involved in teaching.

Performance is a good field to enter: you earn $1,434 more than average for minor involvement in performance and $2,258 more than average for major involvement.

The tasks you do want to avoid are project management and content management systems. Major involvement in project management, oddly enough, brings with it a $3,476 decrease in salary, although minor involvement has no effect. Similarly, you are penalized $1,476 if you have major involvement in communicating with less technical or non-technical departments (but no penalty for minor involvement).

Minor involvement with CMSs costs you $4,647, and major involvement costs you only $3,824. We don’t know why major involvement should be better than minor involvement. The reason may be that CMSs are associated with less technically sophisticated jobs.

Designers get less money than average; they do not measure up to programmers in salary. Minor involvement in design work earns $1,244 less than average, and major involvement earns $1,094 less than average.

1617websal 12
Figure 5-1.
1617websal 13
Figure 5-2.
1617websal 14
Figure 5-3.
1617websal 15
Figure 5-4.

Tools, Languages, and Platforms

THE RAW TALLIES OF RESPONDENTS’ ANSWERS furnished a few interesting insights.

  • MacOS is the most popular operating system, used by 64% of respondents, but Linux is also surprisingly popular at 57%. (Respondents obviously use multiple computers, because the shares of operating systems add up to much more than 100%.)

  • Sublime is a surprising favorite for text editors, chosen by 42% of the respondents (although once again, totals added up to more than 100%.

  • Express runs away with the prize for most popular Node framework. It was chosen by 26% of all survey respondents, whereas hapi, Koa, and Sails each got just 1% to 3%.

  • Familiar JavaScript frameworks turned up as favorites, although Backbone came out further down the list:

    • jQuery: 67%

    • Angular: 37%

    • React: 23%

    • Backbone: 13%

    • Knockout: 6%

    • Ember: 4%

    • Polymer: 3%

    • Meteor: 2%

There was no such rush toward any PHP framework; nine different frameworks took less than 10% each of the respondents.

  • SVG is the most popular graphics environment but is still relatively little used at 30%. D3 was even less popular, at 19%.

  • Selenium, at 25%, is the most popular testing tool, as might be expected. However, there were other strong contenders:

    • Mocha: 20%

    • Karma: 19%

    • Protractor: 6%

    • QUnit: 5%

    • PHPUnit: 2%

  • MySQL remains the dominant database behind the web, at 52%. MariaDB, at 9%, has failed to make great inroads among MySQL fans, at least on the web. PostgreSQL and SQL Server come up next, both at 26%, and a plethora of diverse solutions follow:

    • MongoDB: 25%

    • Redis: 21%

    • CouchDB: 5%

    • Oracle: 5%

    • Neo4j: 2%

  • WordPress is the most popular CMS, although Drupal makes a respectable showing:

    • WordPress: 29%

    • Drupal: 12%

    • Joomla!: 4%

    • Magento: 4%

    • Django-cms: 2%

    • Umbraco: 1%

In general, working with libraries or frameworks led to a salary $1,248 more than average.

Because there are so many tools, libraries, and frameworks, we applied some basic machine learning to find clusters of related tools. The principle is that people who use one tool are much more likely to use certain other tools as well. For instance, Windows programmers tend to use ASP.NET for their main framework, Visual Studio as their IDE, and SQL Server for their database. Although one would expect to see that cluster, we found nine other clusters that are much less predictable. We’ll look at each in this section, along with their positive or negative effects on salary.

There are two reasons you will find these clusters interesting:

  • If you want to get a higher salary, you might be able to do so by learning a cluster that has a positive impact (or less of a negative impact) on salary.

  • If you like where you are, you might broaden your skills by learning new tools or frameworks that are clustered with the ones you already know.

Many of the most popular tools and frameworks among our respondents turn up in none of the ten clusters. This is probably because they are so pervasive (jQuery, for instance) that they are used by a wide range of programmers across multiple clusters.

1617websal 16
Figure 7-1.
1617websal 17
Figure 7-2.

Express Cluster

The first cluster surrounds the popular Express framework. It is the most lucrative cluster we found because each tool in it adds an average of $2,068 to salaries. (We found this to be true up to a maximum of eight tools in this cluster—if you keep adding tools, your salary tops out after eight). The cluster includes:

  • Charles debugger

  • Express framework

  • Jade templating framework

  • Mocha test framework

  • MongoDB data storage engine

  • PostMan Chrome extension

  • React framework

  • Swagger web framework

  • Webpack module bundler

It is hard to see a rationale for using these particular tools together. React is a fairly popular framework in its own right, but other tools, such as Jade, are used by relatively few programmers. In any case, our statistics suggest they make a good combo.

Ruby/PostgreSQL Cluster

This cluster includes many well-known tools, but none of them are among the most popular in the survey. However, they tend to be used together, and knowing each one adds an average of $1,442 to salaries (up to a maximum of seven tools):

  • Capistrano continuous integrator

  • Chef configuration manager

  • Haml templating framework

  • JSONView display tool

  • Jekyll continuous integrator

  • PostgreSQL database

  • Redis caching server

  • Ruby language

  • Travis CI continuous integrator

It would make sense for Ruby programmers to rely on Capistrano, which was designed for Ruby. Haml is also Ruby-oriented, with a Ruby on Rails plug-in. Most of the other tools are language agnostic and don’t have obvious interconnections. And as already mentioned, none are among the most popular tools among our respondents.

Free Software Cluster

The tools in this cluster are mostly familiar and are generally used together. Our respondents chose Vim (29%) much less than Sublime (42%) but more than Emacs (5%). The Perl language is used by only 5% of respondents but turned up in this cluster along with Python (22%). This cluster has no effect on average salary.

  • Bash shell command line

  • cURL downloader

  • GitLab source code repository

  • Linux operating system

  • Perl language

  • Python language

  • Unix operating system

  • Vim text editor

GitHub Cluster

In contrast to the previous cluster, which tended to use GitLab, the far more popular GitHub has its own cluster. npm, another tool in this cluster, was the most popular in its category, used by 51% of respondents. But the cluster has no effect on average salary.

  • Atom text editor

  • Backbone JavaScript framework

  • Bitbucket version control

  • Bower package manager

  • Browserify package manager

  • Grunt task manager

  • Gulp task manager

  • Handlebars templating framework

  • npm package manager

  • RequireJS package manager

The connections among these tools make sense. Most are tied in with Node.js, and many depend on npm.

Graphics Cluster

The relationship among these tools is obvious. They are used for designing, creating, and testing user interfaces. This cluster has no effect on average salary.

  • Canvas graphics engine

  • D3 graphics library

  • Sketch user interface design tool

  • SVG graphics engine

  • WebGL graphics API

  • WebPagetest performance tool

Established Tool Cluster

We have tried to choose a neutral name for this cluster, but to many readers, it may smack of “legacy” tools. One can well wonder where Subversion users have been hiding during the past decade’s move to distributed version control, but Subversion still holds the allegiance of 20% of our respondents (more than GitLab at 14%, or Mercurial at a mere 3%). There is no doubt that C++ and Java remain critical parts of the computing infrastructure, although most web developers have abandoned them for slicker and newer languages (and 39% of respondents use PHP as well). Oracle is also going strong. Still, among our respondents, Jenkins CI is the only tool in the following cluster that appears at the top of their choices (31%).

This cluster has no effect on average salary.

  • C/C++ language

  • Eclipse integrated development environment

  • JMeter performance tool

  • Java language

  • Jenkins CI continuous integrator

  • JetBrains IDE integrated development environment

  • Oracle database

  • SoapUI functional test tool

  • Subversion version control system

Test Cluster

Several tools and frameworks for testing appear in this cluster, some of them very popular and some of them used by only a few people. Other tools appear here too, for unclear reasons. This cluster has no effect on average salary.

  • Angular JavaScript framework

  • Jasmine test framework

  • Karma test runner

  • LESS database modeling tool

  • Protractor test framework

  • Selenium test framework

  • WebStorm integrated development environment

Code Development Cluster

The tools and websites in this cluster help JavaScript developers learn, share, and develop code in various ways. Some of the tools may be more popular among newer programmers, although they have broad value. This cluster has no effect on average salary.

  • Brackets text editor

  • CodePen code repository

  • Gist code sharing tool

  • JSBin code repository

  • JSFiddle text editor

  • Sublime text editor

Windows Cluster

Most of the tools in this cluster work only in a Windows environment. None are popular across our respondents overall, but they clearly form an important subculture. However, using each tool in this cluster is shown by our analysis to reduce average salary by $1,129.

  • ASP/ASP.NET framework

  • Fiddler debugger

  • Knockout JavaScript framework

  • Notepad++ editor

  • SQL Server database

  • Visual Studio Code text editor

  • Visual Studio integrated development environment

  • Windows operating system

LAMP Cluster

Most of the tools in this cluster are part of the classic web stack of Linux, Apache, MySQL, and PHP. Composer is a PHP package manager. We don’t know why Photoshop and WordPress turn up here. In any case, these tools impose a penalty, despite their popularity: each one (up to a maximum of seven) decreases average salary by $2,257.

  • Adobe Photoshop graphic manipulation program

  • CodeIgniter PHP framework

  • Composer package manager

  • Drupal content management system

  • Laravel PHP framework

  • MariaDB database

  • MySQL database

  • PHP language

  • Symfony PHP framework

  • WordPress content management system

  • Zend Framework PHP framework

1617websal 18
Figure 7-3.
1617websal 19
Figure 7-4.
1617websal 20
Figure 7-5.
1617websal 21
Figure 7-6.
1617websal 22
Figure 7-7.
1617websal 23
Figure 7-8.
1617websal 24
Figure 7-9.
1617websal 25
Figure 7-10.
1617websal 26
Figure 7-11.
1617websal 27
Figure 7-12.
1617websal 28
Figure 7-13.
1617websal 29
Figure 7-14.
1617websal 30
Figure 7-15.
1617websal 31
Figure 7-16.
1617websal 32
Figure 7-17.
1617websal 33
Figure 7-18.
Article image: Butterfly, Caterpillar, Moth, Insects, and Currants; Jan van Kessel II (source: The J. Paul Getty Museum).