I think in some narrow domains I can write interesting, and perhaps even mildly novel code. But a huge majority of the time, working for smaller startups, or Google, or myself, the majority of code I’m writing is something that has already been done in another form but I can’t use it for some reason. Maybe it does similar things, but it explicitly doesn’t try to solve my particular version of a problem. Maybe the license doesn’t work. Maybe it’s almost perfect, but it’s buggy or slow. Or hell, maybe I’m being a meme programmer and rewriting perfectly good code in Go or Rust just because I want to have the same thing but integrated with my favorite languages and tools.
The world of open source also changes things. You most likely should not hire someone to write a TLS stack. It’s not worth it. Chances are, a good TLS stack is not a feature that will set you apart, if it differentiates you at all in any positive ways. If you want to do things that existing TLS stacks don’t, it can still make sense to hire an expert, if that’s your thing. But, most of the time, even then, it would probably make the most sense to soft fork or upstream changes to an existing robust TLS library. Because of open source, it makes exceedingly little sense to actually have one entity maintain their own novel bits unless they’re unique and related to how the product differentiates itself. And even then, in some cases, it makes more strategic sense to just open source your bits anyways, and make yourself the standard. Google releasing Kubernetes is a great example; you can probably find many projects in the open source world, like Cockroach, which are basically clones of Google things they only released in a limited form, so the rest of the world went and standardized on non-Google implementations, and the Google versions didn’t benefit from cross-collaboration and the generalization of internal hacks. This also rings true for Facebook and React.
I think most programmers, given enough time and initiative and effort, could build cool and novel software, but the fact is, we don’t need novel software most of the time. We need better boring software. More general, less buggy, faster. If that’s depressing, well, I guess so be it. But there’s also a lot of toilets to clean out there, and someone has to do that, too. I can’t complain if it doesn’t feel like my work is exactly writing my name into history.