The blog has some good points for resisting the question, and got the first one right (e.g. courtesy to my current employer, don't give it out b/c salaries are considered competitive info.)

It is sad that people go into high-value salary negotiations once every 18-36 months without having read the basic books on negotiation before. Look them up on any MBA syllabus.

Here are some notes based on a book outline I have for a manual on negotiations for STEM grads (that I will probably never write):

First, remember that you are the seller, and it's up to you whether you want to sell to them. You aren't applying for an honor or academic award, or begging for mercy and approval, you are selling valuable skills. Sometimes you are a price maker, sometimes you are a price taker. Know which one you are before choosing your strategy.

Second, always appeal to principle. Real negotiation is a rational process of legitimate price discovery between parties. There is a true price, a kind of superposition, that is acceptable to all parties, and the work is to infer its position. You are engaging in a partnership to discover together if there is a viable deal. Understand the detailed differences between haggling, bullying/ultimatums, and negotiation. A negotiation is a conversation in which you derive principles to agree upon, and those principles shape the outcome (final numbers).

Third, always reiterate your commitment to flexibility and and appeal to their reciprocity of this principle. If they decline both reciprocity and flexibility, especially without a specific number, it's likely there isn't a real deal on the table.

Fourth, add variables (new principles) to soften positions. If they start haggling numbers at you, you can always ask what the principle behind a number is. (what's that number based on? Is it data I can see? What data did you disqualify? Here's one of the data sources I am using..).

Fifth, state you are evaluating "total package value." If they propose a number, you can ask about bonuses, equity, options, commissions, memberships, travel rewards, lifestyle perks, housing allowances, medical, vehicles, benefits, retirement matching, concierge services, wellness, "no red M&M's" etc. Anything they say no to, you can say you will evaluate any offer based on pricing in the value of these other things, whether they are in benefits or cash.

Sixth, know wtf you are talking about. If you don't know what the position pays in that city because you don't know how glassdoor works, and you don't know how much it would cost (gross) to pay a consultant to do the work instead of you, you are flying blind.

Seventh, never, ever, give anyone your current compensation. That's between you and your tax authority. Like many bits of information, it can only ever be used to disadvantage you. They will be extra persistent and act shocked and insulted because some of them are so used to STEM's just rolling over on the question. That's a tactic. Always appeal to principle, in this case, the principle of your employers competitive information. They might walk away, but only because they want a sucker and determined you weren't one.

Eighth, answer recruiters calls and emails and do interviews even if you aren't interested. You need the practice, and you may be surprised at how good a given opportunity turns out to be. Recruiters and HR people are in the business of selling jobs to talent. You are not wasting their time. If they can't close you on selling you a job, they are only wasting their own time.

Ninth, there are only about 4 reasons a principled negotiation fails: 1) one side is not committed to flexibility and reciprocity; 2) there just wasn't a viable deal between those parties on those terms in the first place; 3) one party was bluffing or exaggerating about their ability to deliver on their part of the bargain; 4) parties lack the emotional maturity to have principled discussions about abstract concepts and hypotheticals.

Tenth, if there were the possibility of an advance, I would be willing to have the conversation about what a deal would look like.

;)