You always have the ability to just get multiple offers and walk away from the worst.
> If you have the skills you don't even need strong negotiation skills.
If you have absolutely shit negotiating skills, or don't even negotiate, you are going to be paid less than you deserve forever. You might get a few lucky offers where the initial offer is actually close to market, but more often than not you're getting an 80-90% market offer the first time around.
You combine developer pay being as high as it is, the majority of raises and promotions being based off previous salary, and compounding interest, and it's not unreasonable that no or poor negotiation could leave over a million dollars on the table over the course of your lifetime.
You say I've got a better offer from x, and they will have to beat or say no. You keep doing this, eventually you will reach market price regardless of negation skills.