Many of the DevOps themes I write about (monorepos, package managers, WebAssembly, Docker, etc.) have something to do with sharing code.

Programs today are often a Frankenstein combination of different open-source libraries. I've spent a lot of time thinking about how to manage all of the dependencies (see Reflections on 10,000 Hours of Programming). How code gets used and reused should be important for developer productivity optimizers.

Some layers I think about when thinking about sharing code.