Earlier quoted context omitted.
I tried to do this out of undergrad (graduated last year). Many companies do both good and bad things to me, some more good than bad. The "best of the best" companies to me require many years of experience and are still competitive. I didn't really want an entry level job at an "evil" company, so I'm going to go do a PhD (in something unrelated to my original interest in operating systems, as I don't want to be a 30k…
Yes. I work at boring companies that are not evil instead. Never went to my local magnate (Comcast), left a company when they off/onshored entire teams to HCL slaves, etc. 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.