So why not work for a smaller company with values and a history that you can respect?
You make it sound like in a capitalist society we have to sell our souls to a big evil company. Software developers (especially ones have the skills to work for facebook) can work literally anywhere. Lots of them start their own companies. There's simply no excuse for contributing to the success of companies whose values and actions you can't personally endorse and stand behind.
Of course I'm not gonna resent some dude working at McDonalds for contributing to the obesity epidemic, but software developers just don't have any excuse.