Programming, as a job, is about doing a job, as defined by the job's values.
It sounds like you're a great craftsman but poor at letting go of your values in order to align yourself to what a job needs. (disclaimer - often what a job needs is NOT what anyone would include in their values - no one is a garbage truck driver because they aspired to it).
2 choices - double down or fold. If you double down, you should hold out choosing a job until you find a company that shares your values. If you fold, you should find a job that meets your living standard needs with the least amount of expectations and then seek something outside of work that aligns to your values. You can find that community via Ask HN, looking at open source projects that you respect, going to meetups - a whole host of ways.
I would recommend you write down your programming values so that you know it. For each value, you may want to give some reasons why you value it - this exercise is, at the very least, good for introspection.