Automating Software Engineering
Automation has always helped us write code. Throughout software engineering history, the path has been to automate and abstract away more and more of the complexities of interfacing between machine language and human language. We don't write machine code anymore; we moved from assembly to C to Rust. Each provides new ergonomic abstractions that make them a little easier to deal with (depending on the situation). We use these languages to automate things. And as those problems and solutions are encoded in easily replicable code, once we solve a problem, we rarely need to reinvent the wheel. That means most problems you face will be new and unique.
We might build little automations for our most pressing problems and share them with the world, either for free or for profit. But there is one thing we can't automate with AI: solving new, unique problems that we humans face every day. If it could do that, then we would find ourselves in a utopia... with absolutely nothing to do but smash everything to pieces just so we would have something to do. Or maybe we will get to express our creativity without the need for it to financially support us. Either way, I think we are a long way off from living in a utopia.