It is sad to me when I see people who work in software industry thinking their work is shaping the future, I mean it is in that technology empowers people to do what they want be it good or evil. But what saddens me is that the nice wages earned and free time could be used to make an actual difference instead of hoping your company will do it for you -- essentially transfering responsibility to C-suite managers.
I would prefer if proper legislation and law enforcement worked and much of why it doesn't boils down to money.
I have a responsibility to take care of myself and those closest to me before caring about the collective's future and my career decisions reflecct that. I will work for any company not affiliated with a military force so long as it empowers me as an individual to do as I wish without depending on the company.
The more important ethical factor is in how one lives their "life as a whole". Not just the career, but the entire premise of living well. Does living well mean living large? Does it mean living minimally? Does it mean giving back? Does it mean sacrificing some personal aspirations? These are more encompassing questions than "do or do not work for BadCo" because some people will calculate that they need the extra income to, e.g., raise kids, and others won't - they'll see an option that reduces the amount of money needed, or they willfully forgo having the kids altogether. A really adeptly lived life can find ways through that work well in any ethical framework, and these successes become stories told to the next generation, of "how to be successful". It is reinvented each time, after all.
I'm satisfied with the future I'm creating. Mostly open source software. Like I said I'm not sure what your question is about.
With experience you get some idea about what it takes, how much time, how many ppl will be required, what personality types etc to push groups in different directions. But if you haven't built up that experience then chances are high, you will fail to influence outcomes no matter what you do. So the question becomes - how do you build up that experience?
If I respect/trust the leaders I usually tell them I disagree but will do things their way. Its then their call whether they want me on the team or not. If I don't trust the leaders, but think the group has good people I can learn a lot from, I put off bringing anything up for some fixed time (3 months/6 month etc). If things have gotten worse by then I am ready to bring it up/take what I have learnt and check out if it comes to it.
I am working on a new general-purpose data management system https://didgets.com/ that helps people analyze data quickly and easily.
Do I worry that someone might use it for something destructive? A little, but I don't stop working on it because that might happen.
I think the version of this conversation we have in 10 years might be between our avatars in a virtual cocktail lounge or something.
I find that exciting and satisfying, though I've come to realize a lot of people find it bizzare and annoying.
There is no "global nexus" that is slowly trying to enslave you into some monstrous juggernaut and misuse everything you make.