It depends on how you operate as a person. It seems like you're already good at programming if you have 12 YOE.
The important question to ask yourself is: Do I enjoy the _process_ of working on something or do I enjoy the _product_ of working on something?
For me, I've found time and time again that it doesn't matter what I work on, I care most about the outcome. I will suffer through extremely difficult problems because I just really want the outcome. But others (probably most people) enjoy the process of work. However, tons of programmers tend to hate tedium and like the product of their work. But if you really enjoy the process you might like a "meditative" task like data cleaning or saddle stitching leather or something.
The next question to ask yourself is: what do I want? I've only ever made money from making things and doing things I specifically want, not something I'm trying to make for other people.
Importantly as a programmer, you don't necessarily need to make some app that does something you want. When I was in college I wanted a cool domain name. Was too expensive. I contacted the registrar selling the domain and asked how to get it cheaper. They had an affiliate marketing program where you could get $20 for everyone who signed up for the free domain name promo (seriously I don't know what they were thinking). I posted on /r/efreebies a few times and made over $1,200 in a few days just posting a link. I wanted a domain name, I tried a bunch of ways to get the domain name, I stumbled upon a way to make money, I got the domain name.
Another important thing is to just try out a bunch of different things you might be interested in. Think generative art is cool? Try it. Think Census Data is cool? Visualize it. Think USB drivers are cool? Write one.
The only thing that really works is the tedious, frustrating task of trial and error with your curiosities. Once you really find something you're interested in you can expand it into a career and get a job doing what you want.