As a consultant I've chosen not to work on projects because I thought they violated my own, personal ethics. However that is very hard to do with a day job. You can talk to senior management and lobby for your cause, but if you have a career tied up in a company it's very difficult to severe ties because they want to splash advertising on the dashboard every time you start your car. The justification is that It's annoying, rather than illegal, and only violates your own personal standards, not the standards of society which seem to be incredibly tolerant. Heck, look how popular Facebook is.
Talk about a balancing act. You raise many legitimate issues in terms of a software developer's responsibility to the end result of what his or her code ends up doing. But the reality is that in today's world, everything you do triggers some sort of data collection activity that is then put to use for something--whether to convince you buy something else or to give a manufacturer better intelligence on how their product is used.
That seems to be where the world is heading thanks to technology advances like infinite cloud processing power, social media, and big-data analytics. So how does a lone software engineer buck the tide of global innovation (that's what some would call it). Isn't that a mere recipe for losing a job?
Fifty-six-year-old Pasquale Russo has been doing metalwork for more than 30 years in a tiny southern Italy village. Many craftsmen like him brought with them fabrication skills when they came from the Old World to America.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.