On the one hand, it was clear that the website wasn't meant to be informative, since it always recommended the client's drug no matter what the questionnaire returned. Clearly that was a bit shady.
On the other hand... as a general rule, I don't really want software developers deciding what to code based on their personal medical opinions. That can cut both ways.
If the author felt it was unethical at the time (and he says it didn't really cross his mind), the best he could have done would have been to quit. Then, of course, someone else would have taken his place. Perhaps his conscience would have been cleaner, but I doubt any girls would have been saved. The stark reality is that ethical quandaries like this call for an all-or-nothing approach; either you're disturbed enough to report their actions to the authorities, or you don't do anything at all. You can quit, but that won't save anyone, so you're not really helping. (Unless you're irreplaceable, of course.)
There's another important element to the author's story: the sketchy questionnaire and the drug's harmful side effects weren't really linked in any way. Marketing is marketing; as the author says, he knew the job of the site was to promote the drug. Shady questionnaire or not, that's not inherently problematic. If the pharma company misled its customers on the side effects or knew the drug wasn't safe, that's an entirely separate issue that the author simply could not have known of. Drugs are complicated business, and they can be helpful, dangerous, important, and abused all at the same time.
The "last line of defense" statement was a powerful one, but not one I feel I can really agree with. It's often said that pharmacists are the last line of defense for prescription drugs, and that's how it should be; they actually have the training to know what they're doing. Software engineers might be a knowledgeable bunch, but they're not so knowledgeable they should be making calls outside their expertise.