Been writing for many decades, from BASIC+machine/assembly language, C, COBOL, Pascal, C++, and more modern languages. The field of software development is still maturing and it's exciting to see it progress. The thing I like the most is seeing old great things become mainstream. Like union types in TypeScript and structural typing (in Go too), or F# type inference on .Net, or Clojure, or Racket, or Sorbet in Ruby, Wasm. Advances in tooling or ecosystems, git. Basically all the cool stuff here on HN that's up and coming.
Finding good ways to use all/any of those languages, frameworks, libraries to effectively and creatively solve problems is always an interesting challenge. Getting good at recognizing concepts early, finding the perfect names for everything, and knowing when not to create abstractions are all very rewarding things. Distributed systems. Continuously learning ways of structuring/writing to make it difficult to do the wrong things. It really doesn't end, I love the continuous learning/dopamine hits.
Learning to develop software well, is like learning to play Go (the board game) the skill ceiling seems so very high--and even if you think you might be getting close, there's new tech and hardware enabling-capabilities that extend that farther. You end up learning that there's more that you didn't know there was to learn.