Une société marchande ET éthique ?
Le développeur est comme tout salarié, il fait ce qu'on lui demande, ou sinon il va monter sa boîte.
On lui fournit en gros un schéma : telle entrée devra produire telle sortie, l'algorithme ou pseudo-code faisant partie des spécifications.
Donc si l'algorithme est illégal, ou juste discrètement entubatoire (comme l'arrondissement au 1/4 d'heure le plus lucratif), c'est le donneur d'ordre qui est responsable, point barre.
Si je gifle ma belle-mère, c'est moi ( qui donne l'ordre ) qui suis responsable, pas ma main ( qui éxécute )
La solution pour le codeur, c'est de demander que dans son contrat figure une "clause de conscience" ( qui doit pas être évidente à rédiger ), lui donnant le droit de ne pas implémenter un algorithme dont le fonctionnement n'est pas conforme à ses convictions éthiques.
Je vote pour !
Mais en même temps, c'est facile à dire : je suis freelance ...