When you are implementing a new technology, please take some time to actively consider all of the potential consequences you can think of. Maybe your new tech just needs simple safety-considerations similar to power tools (dangerous, if misused). Maybe your new tech will disrupt existing structures that many people rely on; do you have a plan to handle that? Can someone easily use your new tech to undermine civil rights or basic freedoms?
Obviously we can't foresee everything, but we can at least try to consider the potential consequences to the world, society, and people outside of tech. I know it's hard to walk away from a cool idea. It's even harder to do the right thing when it risks your salary - or your safety. For better or worse, this kind of question needs to be part of the new-tech development process. As Dan Geer said[4][5] in a recent keynote, "You have not picked a career. You have picked a crusade."
[1] I strongly encourage everyone to watch this 30c3 talk[2] by Quinn Norton and Eleanor Saitta (or read the transcript[3]).
[2] https://media.ccc.de/v/30C3_-_5491_-_en_-_saal_1_-_201312272...
[3] http://opentranscripts.org/transcript/no-neutral-ground-burn...
Walk away from a cool idea for ethical reasons? Risk their salary or their safety? I'm sure such engineers must exist, but they're not among any I've ever known.
Unfortunately, I am rather pessimistic. We're in this Orwellian/Huxlean dystopia for a reason.
I imagine many of us would _not_ want to work at a multi-level marketing outfit, considering how they mostly all work through exploitation. By having these discussions we can make sure that companies with dubious ethics will have an even harder time recruiting.
There was a story a couple years back about a guy who wanted to form a "white supremacist village" in the countryside, and couldn't get anybody to join him. You talk enough about something, and it does have effects eventually (even if only temporary).
You just met one. In the mid 90s, when I was writing firmware and drivers for HIPPI[1] networking equipment, the Malaysian government bought a bunch of out hardware (indirectly), as part of a big system that was supposed to receive a bunch of TV channels from satellite, buffer it for a couple minutes on disk, and then re-broadcast the streams on local TV channels. The buffer, of course, allowed for the "live" TV streams to be censored on the fly.
This was before flash was cheap an ubiquitous, so the firmware for the FPGAs was on a socketed EEPROM. Changing the firmware required removing the chip and a computer with PROM programmer hardware. Bugs happened[2], and my boss decided I needed to make "our biggest customer" happy by flying to Malaysia with an --undeclared-- bag of EEPROMs with better firmware and personally updating their hardware.
It was my first "real" job, but I was still 3 more years of classes away from my bachelors, so I was getting crap intern wages of $11/hr. When I started to suggest I didn't really want to smuggle chips into an notoriously authoritarian state to help them censor their TV, my boss immediately offered me a 6-figure salary and a $60,000 cash bonus. I was seriously tempted. Instead, I gave them my 2-weeks notice the next day...
(side note: a few years earlier, the NSA offered me a full 4-year scholarship (inc. housing and cash stipend), but the "you just need to work for us for 150% time (6-years) after you graduate" price tag made that offer a lot easier to turn down)
[1] https://hsi.web.cern.ch/HSI/hippi/procintf/pcihippi/pcihipde...
[2] actually, it turns out our PCI interface chip was faulty[3]
Also, this was a rush fix. Flying me on the next flight was supposedly faster than the usual shipping/courier services? At least that's what the boss believed? I never got the full explanation, but I suspect that the Canadian company was ~30-50 hours away from losing the entire deal, which was supposed to be our main (only?) source of revenue until we could ship an important new product[4] a few months later. With the benefit of hindsight, instead of a rational, sound plan, the whole situation smells more like a panic about losing VC funding.
[4] We had re-purposed 8 & 16 port crossbar switches where each port could be (mix-n-match): HIPPI, FC, ATM, 2xFDDI, 2xSCSI3 (!), 1000BASE-T, or 8x(100BASE-TX/FX) with arbitrary layer-3 routing and arbitrary tunneling. Two switches with SCSI and ATM ports did something similar to FCoE/iSCSI... in 1996. RAID 1 over 10km of fiber was awesome. Except it never shipped, because everyone was focused on our broken NIC. --sigh--
I don't know - I've always made the call myself, and informed my employees so I've never had an employee come to me with concerns about working with a particular client or on a particular project?
Thank you!
> a line employee who has to make rent every week
Some sort of software development guild or professional association could help. Like a PE's duty to disobey their boss when a project isn't safe, explicitly defined external obligations can give the employee some power (and organizational support).
Think of all the engineering effort to create dark patterns or make it easier for people to buy stuff. I won't work on ads, but a lot of other engineers are okay with it, especially if the money is good.
Why do software developers have a presumed sense of moral superiority? Because some guy named Linus distributed an operating system for free? We're for hire just like everybody else.
[1]: https://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootk...