Are programmers paid fairly?

Thinking out loud about programmer compensation and platform fees. Undated notes; trails off into outline.


Programming is already a highly paid specialty, and programmer earning potential continues to rise. The reason programmers are so valuable is that they are one of the few professions that allow companies to replace labor without capital in an apparently unbounded fashion. Put another way, in big companies it is not all that uncommon to hear of a team that has literally automated itself out of a job, and has had to dissolve or start a new project.

So programmers create a lot of value. They are clearly well paid. But the real question is whether programmers pay is commensurate with the value they create.

How are programmers paid?

Programmers at big tech companies are typically paid a base salary, and then are also paid under a performance compensation plan designed to pay higher performers substantially more. After several years at a company this performance compensation can be some multiple of the programmers already nice base salary.

Yet the mere existence of performance plans does not mean programmers are fairly compensated. That depends entirely on how each individual plan is designed and administered.

Are performance compensation plans working?

Are performance compensation plans fair?

To my knowledge, only a single major Silicon Valley company divulges its exact performance compensation plan during the offer stage. Though employees at these companies may earn a large majority of their income from these performance plans, during the offer stage you rarely know anything about them. And it’s nearly impossible as an individual to evaluate the performance plans of two different companies.

I can think of a few reasons companies don’t detail their plans to prospective employees, where one might hope it is an effective recruiting tool.

  • Most performance plans are not competitive and they don’t want employees to know.
  • Most companies are really bad at measuring the performance of programmers, and so don’t know how to compensate them for performance, and they don’t want you to know.
  • They consider their performance compensation plan a trade secret or competitive advantage. (I have seen no evidence for this one yet, but am throwing it ip here anyway for completeness)
  • Fear of blowback once all the non-programmers learn how much programmers make.
  • By keeping performance compensation information nebulous and impossible to check, the big companies form an effective cartel within which they don’t need to compete as fiercely on pay.
  • Gross incompetence.

Most of the above options do not suggest that it’s likely our programmers are paid fairly.

Gig Economy

Let’s turn this question around and look at things from a gig economy perspective. As a driver for a driving service like Lyft or Uber, you get a fairly clear idea how much value you create, because you know how much money has changed hands, and you know the cut the company takes. This cut is known as a platform fee.

A platform fee is a fee you pay the company for creating the labor market for you to work in.

Lyft and Uber advertise they only charge a 25% fee, but some analyses show the effective numbers to be more like 40%.

One more example - Apple 30%

For a different kind of data point, I recently read an article about the economics of the Bunny Ranch Brothel in Nevada. In gig economy terms, it looks like ranch’s platform fee is nominally a 50% cut of all transactions, but with other costs like room rental it might be more like 60%.

What is the platform fee programmers pay to work at large companies? These numbers are highly proprietary, but I believe the number to be a shockingly high 90-95%, (TODO: Fill this out with estimates from non-proprietary sources.)

Why are platform fees so high for programmers?

Obviously history is the first reason. This is always how it has been done, and measuring individual performance is hard.

The second reason is that these companies have built incredible money-making machines, and there are just not that many of those out there for programmers to choose from, so they can extract a lot of value from workers who have few other options to be paid so well.

Here are a few other reasons:

  • Market access: they come with a captive audience to sell the products of your labor to.
  • They provide you with powerful proprietary tools and infrastructure to enhance your productivity.
  • They shelter you from risk, provide a stable income and excellent benefits.
  • They often need to spend time training you in their systems before you become productive
  • They often make work for you to do, so you don’t have to find it or come up with it.
  • They insulate you from risk.
  • They provide capital.

If you want to know why Silicon Valley companies spend so much money entertaining and pampering their employees, it might simply be because they don’t want the employees to notice they are being screwed.

Inefficiencies in Modern Capitalism

Amazon wins by being efficient, full stop. Mr. Bezos famously says “your margin is my opportunity,” and with this approach he eliminates the biggest efficiency in capitalism: profit.

Amazon has built a money making machine that dominates markets with efficient use of technology to enhance worker productivity.

How is Mr. Bezos rich if his company doesn’t make a profit? This is a simple question but one with an answer that should be emphasized here: Mr. Bezos is the partial owner of a machine that turns programmer hours into value. He can sell shares or simply hold them and watch their value grow over time.

Stepping back a bit, obviously the inability to measure worker performance creates inefficiencies in the system. What other inefficiencies do companies like Amazon contend with?

    • Limited labor pool
  • Difficulty gauging worker productivity
  • Large offices and commuting workers.

Limited labor pool

Amazon and other companies like it can grow only as fast as they can hire programmers.

The major limiting factors on the labor pool are: immigration restrictions, competition for labor, long training time for new workers, inability to utilize less skilled junior workers.

Let’s take each in turn:

Immigration restrictions

Amazon could grow faster if it had more workers, which are available, but they live in the wrong places. With limited immigration available for these workers, companies like Amazon are stuck trying to make tools and processes that worked well for collocated groups work for remote groups too. Few companies manage this gracefully.

Competition for labor

In the competition for scarce domestic programmer labor, companies have worked to hone their performance compensation plans. If companies can pay workers proportionally to the value they create, they can hire away workers from other companies who do not have the same facility to measure—and thus reward—labor.

Training Time

Large companies have well honed tools to make their workers more productive, but often these tools take significant training to master. At many large tech companies, new workers are often expected to struggle to pull their weight for up to a year.

One solution to this is for a company to externalize as much of its toolset and culture as possible. Amazon has been doing this for some time now, and Google clearly recently realized how important this is.

If your workers already know how to use your tools, then you can spend less time training them.

Inability to effectively employ junior workers

Productivity in programmers follows a power law like anything else, and many programmers are extremely low productivity due to inexperience or any other reason. Modern corporations are often simply unable to use these people. It simply costs too much to train them, and they can not train themselves.

Access to labor

Large tech employers seem to be able to productively employ as many high quality workers as they can get their hands on.

Providing the best earning potential for these employees will certainly help them hire, but also the ability to parcel out work more easily to international workers are junior workers would increase their access to labor.

Difficulty accurately compensating employees for value created

Once you account for the other inefficiencies in the system, this becomes basically a measuring problem. How do you measure productivity? There are numerous bad answers and very few good ones.

I believe that the answer lies in efficiently breaking up work into chunks with fixed payouts negotiated before the work begins. Rather than paying an employee a salary, let employees pick their own tasks, take pre priced work or bid on contracts. The reason is it hard to measure performance is because there is no transaction. Uber doesn’t have a problem measuring performance.

Real estate, and commutes

Large companies pay for large offices in central locations. Employees mostly work in large offices, which must be paid for and to which employees must commute.

Power law for compensation.

But more than this they have restricted access to their customer base.

Platform fee revisited

So what platform fee do we propose? We believe it is possible to bring the platform fee down to the low single digits. Though our initial platform fee will be very inconsistent, sometimes even negative, we believe we will have created a system of incentives to optimize this fee downwards.