Open-Source and Firm-Specific Training
I worked exclusively on open-source code (Kubernetes) at Google. I got paid the same amount as my colleagues working on different proprietary projects. In this post, I'll use some economic theory to explain why this was a great deal and why every engineer should do it if they have the opportunity.
The branch of economics that's important for this problem is personnel economics, which deals with labor economics. One of my late professors at Stanford, Edward Lazear, pioneered the field, and I was lucky enough to take his course on the topic.
There are two types of training that you can get on the job: generalized or firm-specific. Generalized training improves the worker's productivity regardless of what firm the worker is employed - schooling is one example.
Firm-specific training improves the worker's productivity at their own firm but does little to change the productivity at other firms. For engineers, this is learning how to use internal tooling or following internal workflows. For example, knowing how to commit changes at Google will not help you at Microsoft.
Workers must pay for generalized training - otherwise, firms would lose money on the deal. Firms must pay a competitive rate to the worker because they can take their skills somewhere else. Often, the worker bears the cost of the training by accepting lower wages instead of paying directly.
Who should pay for firm-specific training? If the worker pays for the training, the firm can reduce wages in the future, and the worker would still be incentivized to stay because they won't be as productive anywhere else. But, on the other hand, if the firm pays for the training, the worker is still indifferent between firms and can threaten to leave the firm.
Open-source is one of the most generalized types of training you can get. For many projects (like Kubernetes), engineers can move from Amazon to Microsoft to Google and still work on the same projects (I've seen it happen). One of the benefits of open-source for managers is that they can hire engineers that are already up-to-speed on the technologies used internally.
And it's not just for developers. Working in public has serious benefits that can carry over to different firms. We've seen journalists at the New York Times or Wall Street Journal quit and use their audience to start a newsletter. Venture capitalists raise their own funds after having exposure and success at larger funds. Developer advocates can create their own cohort-based courses to monetize their community.
In First Principles, I laid out how I think about acquiring both generalized and firm-specific training. Workers should take advantage of getting generalized training, especially when the company will pay for it.
Two more notes on training: The more firm-specific training you have, the less likely you will leave the company. The thicker the labor markets are for that industry (like the tech industry), the more general the training is.