When I was fresh out of school, at the tail end of the dot-com boom, negotiation seemed very much central. Employers (and the third-party recruiters working for them) always wanted me to throw out the first number, or wanted to know what I was making at my last job. Then once I was at the new company for awhile, people would gossip... and I'd always discover that I'd low-balled myself. So I would leave, using the apparent market rate as my baseline in the next search. And I simply stopped disclosing what I was making at the previous job.
I learned that the difference between a $70k candidate and a $90k candidate is basically just that the latter declares himself to be a $90k candidate.
However, once I crossed over the $120k line (at least in my local market) it seemed that things plateaued and changed a bit. It's not as easy to just "declare" that you're a $180k candidate rather than a $140k candidate. At that level, you often start to find that you're interviewing for managerial positions rather an individual contributor technical role.
At this stage of my career, I pretty much tell the recruiter my target (which happens to be about 5-10% more than my current salary), and then I'm not even wasting my time interviewing with companies that won't go that high.
Ten or fifteen years ago, I was apparently selling myself short. Today, I don't talk about salary IRL, because I'm making significantly higher than what I hear through gossip or see on Glassdoor.
Is this common for other experienced devs out there? Or am I selling myself short, and probably should be making $750k for a non-managerial job outside of the Bay Area by now? (haha)