I think the vast majority of professional software development is collaborative, so it's pretty rare that you create something from scratch. Even in the open-source world, it's far more common in my experience that you modify an existing thing because it doesn't quite do what you want it to do; I have a whole page listing various hacks I worked on 20+ years ago, mostly in C (because that's what most existing software was written in back then), but also a few in x86 assembly language, IBM's REXX, and various Unix shell scripts.
Professionally I mostly do back-end work ("plumbing") on distributed data systems these days. It's mostly interesting because of the scale (thousands of machines in multiple data centers, with multiple server or app instances running on each host, and multiple DBs and partitions hosted or consumed by each of those instances). The recent code I'm most proud of makes debugging problems across all of those data sources and partitions a lot easier, but it's the sort of thing that doesn't sound too exciting unless you've felt the pain of not having it in such a situation. ;-) But back in my corporate research days, I spent a few years doing virtual worlds research, which was very fun and directly led to my personal interest in VRML and later three.js.