The thrill of coding is rooted in problem solving and building stuff.
I'm not a programmer by degree, so always felt like I snuck into the club, hehe! I love the puzzle solving aspect.
My coding started outside of work, and it continues now that I'm retired.
Mobile apps were something I set my sites on after retiring, and I've got an app (with 1K+ users each) on the both Android and iOS stores. Not a big user base, and takes very little effort to maintain them. Apple makes me jump through hoops that aren't very fun (a far cry from solving a programming puzzle). Not to mention making me pay $99 plus tax for the privilege of giving away my app to all who want it (Android is free).
Also, 16 years ago I "met" some guys on the AVS forum (home theater PC) and I took the "back-end" programming assignment for scheduled recording of TV programs (another guy took the UI bit). Believe it or not, that project is still ongoing after 16 years. The instigator is now trying to repackage the application to go into the Windows App store (and of course needs me to change stuff). If we get this working, my code will be concurrently downloaded by users from Android, Apple, and Microsoft stores, hehehe!
I can't say I "love every minute of it". As mentioned in an early comment in this thread, setting up the development environments are my least happy moments. But like the OP, the "fun" comes when interacting with the other guys on the project on how best to get something done. And finding that secret incantation that will do what you really thought was impossible. Even dealing with the StackOverflow know-it-alls that really just like to denigrate people has it's charm. There's a nice feeling to answering a few questions and having your juju line head upwards.
The only Raspberry Pi work I've done has been strictly "cookbook", which I don't find very satisfying. This is a Kodi instance, which gets OTA TV from my bank of tuners to play on a stand-alone TV. It's frustrating because I spend enough time to get it working, but not enough time to really understand it. Then it does something unexpected and taking the time to understand it and fix it is like fixing someone else's computer...totally NOT what I find satisfying.
But I find that fixing little things that come up with my mobile apps or my TV recording app is quite enjoyable. I engage with people, albeit virtually, but do come together to get stuff done. We like each other. Some day I might even meet them in the real world (they're all over the US).