People should not do things they believe to be unethical. You do, as an employee, have the autonomy to say no to unethical tasks. You are therefore not blameless when you perform unethical tasks, because you chose not to say no.
I've quit jobs where I believed the project I was asked to work on were unethical, and that I had no other choice at the company. My first job out of university, I was asked to write code to cheat on an industry benchmark. I was 19 years old but I still somehow conjured up the courage to tell my manager that I would not feel comfortable working on that.
But you see senior engineers here with 20 years of experience just shrugging and saying "Well, boss told me to do it so I have no choice!"
The main point I was making is in the first paragraph. I was responding to what was essentially a call for random individuals to be identified and harassed because of their potential connection to some user-hostile software. I politely recommended/requested to not take such actions. I think if you have an opinion or concerns about a software/product/design/practice you should try to turn it into a meaningful contribution and express your thoughts in some way that you deem appropriate and helpful. If your preferred method of expressing your thoughts is shaming and harassing people, or other generally violent and harmful acts then you should keep your thoughts to yourself. The same applies to calling for others to act in such a manner.
> People should not do things they believe to be unethical. You do, as an employee, have the autonomy to say no to unethical tasks. You are therefore not blameless when you perform unethical tasks, because you chose not to say no.
You're not really disagreeing with anything I said (other than in intensity) but I'll respond to this directly.
People generally don't go out of their way to do things they believe to be wrong ("unethical"). People do tend to cross their own boundaries more easily when under pressure.
Different people have different levels of autonomy in life and at work. It's normal to find it difficult to say no to your manager.
Playing a part in some project does assign some responsibility to you. The smaller the part, the smaller the responsibility. Blaming an individual contributor for systemic problems with a project is unfair and a bad way to fix the problems.
Scale and context is important. Many/most things are issues of degrees. Applying your extremely rigid framework to a scenario with the scale of a single employee at Microsoft is bizarre/comedic.