This document discusses the evolution of ethics in software engineering. It provides examples of some major ethical dilemmas faced by prominent tech companies since the late 1990s. These issues have become more complex as software permeates more areas of society. The document argues that software engineers now have a greater responsibility to consider ethical implications and discuss dilemmas openly. It recommends the new ACM Code of Ethics as well as initiatives like case studies and ethics advising to help navigate complex issues without clear answers.