If you’re a programmer, especially just starting your career, please take a moment to consider a word to the wise, based on nearly three decades of professional programming experience…
You are likely to encounter employers that will task you with writing nefarious code, that violates end-user privacy, and/or degrades security, and/or purposely conceals its objectives, and/or refuses to uninstall when the user attempts to remove it. My advice to you: DON’T DO IT! Conscientiously object! Your talents were not meant to be used towards the demise of honest computing, you do have a choice.
Talk to the others on the team about it, then raise the topic with your project manager, asking him/her to explain the ethical purpose underlying the design behavior in question. Carefully consider the response, and if it doesn’t hold water, ask to be reassigned. If they can’t or won’t put you on a project that is not ethically bankrupt, you need to find another job.
Many managers will try to tell you that ethics are none of your concern, you were hired to write code to their specs, and any ethics shortfalls are on them. That is simply bullshit, maintaining your own integrity is your responsibility, that you were told to, as a condition of employment, does not absolve you of wrong doing. The ethics embodied by your actions are not just your concern, they are exclusively your concern, no one else defines them, no one else must live with them — your ethics belong to you! Do not sell them out, no amount of money is worth it in the long run.
A programmer with high ethics and integrity can find a job anywhere. With a work history littered with ethical compromise, you’ll find your opportunities will become increasingly limited to douchy dirt-bag companies. Invariably they will task you to implement reprehensible design goals that will eat at your soul, until one day you bring Mister 9mm to work and blow your tonsils out the back of your head, showering coworkers in adjacent cubicles with brains and blood and little bits of skull (just like in Pulp Fiction.)
Don’t be Marvin! GTF out now, if you really want to be forthright offer to give them 2 weeks notice, but warn them that you won’t be able to do anything that further erodes your moral fiber.
Full disclosure: in these situations you’ll almost never convince an employer that is predisposed to disregard ethics, that you’re in the right. In all likelihood when you assert your position, if you don’t beat them to the punch and quit, you’ll be fired, so have a letter of resignation in hand, and expect to be moving on.
Always take pride in your integrity, and never do anything that would keep you from holding your head high, if and when the topic of ethics arises.