It is very, very, very hard because you're making it hard by insisting on finding a strong intersection with your set of interests.
Half the jobs I've had aligned well with my interests. They were also in the lower half of jobs I liked. The best jobs I've had were the boring ones. It turns out, there's a lot more to jobs than just what you work on.
The most important thing is to keep a roof over your head. Next is saving for retirement. And then there are things like work environment, the people you work with, team dynamics, the actual technical work, etc.
I've found that the most intellectually fun/challenging work was usually coupled with the most dysfunctional teams. It's likely just a coincidence, but it was a good lesson that other things matter at least as much.
I also think it's not as easy as most people make it. It's not the poor and innocent people that are oppressed by all this evil companies. These companies are just a reflection of the people and the society we live in.
No i won't make 350K as a dev. Yes i will have a paltry middle class existence while we still have a profession called IT.
Finding a balance in that is difficult. I have seen that it might be easier to find a societally good job the less technically deep the job gets. Networking research seems to be both technically interesting and connected to societal impact (eg. because of the ties to censorship, security, net neutrality etc)
It seems hard to continue doing this sort of research after your PhD though, as in both your school name matters immensely (i.e. you're screwed if you didn't go to Berkeley, CMU, Stanford, or MIT) and so does your publishing success to land a research job, which seems like an enormous task.