I take the "extreme" (but IMO correct) view that all proprietary dev work is immoral. This seems clear to me because whatever you build will some day need to be rebuilt in a libre way.
That might not be true if you work at some exceptions, like Mozilla or Open Whisper Systems or FSF, but for 99% of jobs, you're doing a bad thing that's making the world a worse place.
With that understanding, I recognize that I'm pretty much a slave until I can achieve financial independence. If that ever happens, then I can work on things that matter.
So I don't choose my work domain based on what I like or dislike, I choose it based on pay and living conditions. Right now I'm remote and have pretty good pay, so this is ok for now, but I know everything I'm doing is contributing to a great evil. I hope it won't be that way forever.
Selling ads is about equivalent to me as working on surveillance systems or malware. I don't want to do any of those things, but I'll do whatever is legal and pays the best, so that I can someday get back to the business of making computing better for humanity.
You might appreciate this: https://medium.com/thrive-global/ikigai-the-japanese-secret-...
Not everyone can meet all of that criteria, and that's okay. But if you slowly work towards ikigai, your life will become happier for it.
1. What do I love? Software!
2. What am I good at? Software!
3. What can I be paid for now — or something that could transform into my future hustle? Software!
4. What does the world need? Software!
I absolutely hate being a commercial software developer.
For me, most of what I hate about being a dev is the culture and who I'm working with. Though I hate getting stuck on a problem I can't figure out too.
By being able to identify what I like and what I dislike about a thing, diving into the gritty details, I am better able to steer myself towards a better future.
Writing free software doesn't pay very well, on account of it being free.
Maybe I should work for FSF or Mozilla, but I'd really like to make enough in industry to be comfortable far into the future before I forfeit the chance to retire.
Keep increasing your awareness by responding to your answers by asking questions, breaking it down further and further.
For example, I patched Squid and Apache on the job, and those are "free" software. Out of everything I've done on the software engineer side, I hated that one the most, because the code bases were difficult to navigate for me at the time.