It is also very fun to tackle hard engineering problems.
I enjoy both, and tend to oscillate between wanting to do a lot of one, or a lot of the other. I do recognize that I've been coding for so long that it's much more exciting to be solving "product problems" rather than "engineering problems", I suspect mostly because it's the area I've explored the least (of the two).
And there is a LOT to learn about a domain while you're working on the problem, even without even looking at the code.
I was surprised to realize that some of my friends don't share this sentiment. They take very little pleasure from being product developers, and instead really just enjoy being engineers who work on the code and the architecture. There's absolutely nothing wrong with that, I just found it very surprising. To be honest, I guess perhaps what I found the most surprising is that I am not one of those people?
And when you get your product in the hands of users can finally get that direct feedback line to/from them and can start working on the problems they find and thinking of product (not necessarily engineering) solutions for them? Man, that's so satisfying. It's like falling in love with coding all over again.
I anticipate that people with a builder spirit and strong technical background are going to be able to build awesome things in the future. What the Fabrice Bellard or John Carmack of today will be able to build?
I have a long list of projects that I have thought about but never implemented because of lack of time and energy. LLMs have made that happen.
I like designing programming languages and developing parsers/compilers and virtual machines. But the steps beyond type-checking are so incredibly boring (and I don't like using C or LLVM as targets) that I have done the front end 15-20 times over the last couple of decades and the back end only 3-4 times.
This time, I spent two weeks developing a spec for the VM, including concurrency, exception handling and GC. And I led the AI through each subsystem till I was satisfied with the result. I now have a VM that is within 8x of C in tight loops. Without JIT. It is incredible to be able to allocate arrays of 4B elements and touch each element at random, something that would make python cry.
Working on the compiler now.
If it helps compare, you might have a full desire to manage a tricky server and all the various parts of it. It’d be removing the fun to just put a site on GitHub pages rather than hosting it on a pdp11. But if you want to show off your demo scene work you wouldn’t feel like you’d missed out on the fun just putting things up on a regular site.
(I've not landed on a good solution yet, ollama+opencode kinda works but there are often problems with parsing output and abrupt terminations - I'm sure some of it is the models, some the config, some my pitiful rtx 5090 16gb, and some are just bugs...)
I don't think this is overwhelmingly the reason though - I think many are just all AI, but if the project is technically interesting it might be sufficient to get me to grimace through it.