These lead to a more fundamental question: the ethics of the programmers who work at these entities, and in a larger sense *all* employees.
What ethical standards should a programmer have? Is it OK to contribute if you're not the one being unethical?
I've included some samples below. Add more if needed.
a) Would you work on weapons, such as missiles and UAVs?
b) Would you work on SPAM generating software?
c) Would you work on telemarketing software?
d) Would you work on [person] tracking software?
e) Would you help data-mining companies?
f) Would you work on malware?
g) Would you have worked on stuxnet?
h) Would you work on software that could be abused due to lack of proper security?
*) Would you quit if you found out that your contributions were enabling unethical actions?