Open Source and Engineering Labor Markets

April 25th, 2019


Photo by Carl Heyerdahl on Unsplash

I’ve often wondered why software engineering, amongst the many trades, has not unionized1. I’m going to make the case that open source software improves labor market liquidity for engineers and has lowered the value of forming unions.

The primary purpose of unions are to fix broken labor markets. In the labor market, the buyers are companies and the sellers are engineers. Companies have the advantage when demand outstrips supply. In skilled labor markets, this can often happen and has happened with software engineering. There, labor actually has a lot of negotiating power (as engineering salaries attest). In unskilled labor markets (like factory jobs), supply outstrips demand, as almost anyone can do the job with a few weeks training.

It gets complicated because it’s easier for companies to switch employees than labor to switch employers, especially when a company dominates a local labor market. In the case where employees might need to move cities or countries, it’s easier for an employee to stomach a lower wage. We actually saw this is the “No cold call” agreements between tech companies in the Bay Area. Acting as a trust, they conspired to keep engineering salaries low. Some engineers might have sought higher wages in Seattle or New York City, but only a small fraction would be willing to move. In this moment where tech companies were generating billions in value yet conspiring to keep wages low, why weren’t engineers forming unions to counter these kinds of conspiracy?

A well-functioning market is the best way to optimallly match buyers and sellers and requires an efficient way to determine prices and exchange goods. Unions don’t actually increase value for everyone, but rather, serve as a counter-balance to a buyer monopoly. In fact, a union that represents the entire labor pool would act monopolistically as well, to the detriment of the market. I’d argue that open source has had two effects on the engineering labor market, both which promote a more liquid and therefore fair labor market:

  1. Standardized assessment and “pricing” of engineering labor
  2. Lower barrier for starting new firms

1. Standardized assessment and valuation of engineering skill

Efficient markets allow participants to quickly come to a price. What are my skills “worth”? If I’ve been writing software inside Boeing for 20 years, it is really hard to know, in the span of an interview, whether I could be successful at Uber. Companies can only rely on the idea that you know how to write code and compensate you as such.

Compare that to Airbnb recruiting from Dropbox. Not only do both use similar software, they’ve probably using each other’s open source software! Quite literally, Airbnb could poach an engineer from Dropbox to work on the exact same software. For that engineer, their value (and therefore their negotiated salary) isn’t just “I can write code”, but “I can solve a business need.” Your labor is therefore high differentiated and therefore salary can be high differentiated. The best paid engineers literally make 10x entry level engineers.

2. Lower barrier for starting new firms

Starting companies is hard and getting harder by the day not only from the perspective of building the initial product, but in recruiting a team to work with you. Open source helps with both of these problems.

Open source libraries ensure the only software you’re writing is the code that differentiates you. If you’re Slack, you don’t spend your valuable engineering time writing a UI framework from scratch. Instead, you use React (from Facebook) wrapped by Electron (from GitHub) to build your desktop app.

Secondly, talk to any founder and they’ll tell recruiting is one of the hardest things to do. You’re asking someone to commit years of their life to your cause. And in that pitch, it’s a lot easier to recruit when they know they’re learning “universal” skills instead of custom stack that no other firm uses. In fact, startups often pitch engineers that they’ll be able to learn faster at startups over larger companies because startups generally have more agile development environments. The ability to rapid recruit and onboard engineers also give new startups a shot at beating the incumbents, whose massive engineer workforces might otherwise be turned to crush the competition.

  1. Obviously, the first high profile case of this just happened with Kickstarter. However, this may be the exception that proves the rule, as no other firms have followed suit.