The biggest mistake is one of omission: They don’t negotiate at all. This is especially true for newer developers who might be getting their first job out of school, or making their first move in a long time. In both cases, the salary their offered can seem like a big jump (in the case of recent grads, jumping from $0 to mid-five figures or higher), and they are so happy for that paycheck that they simply accept instead of negotiating.
A bonus mistake: Disclosing current or desired salary can be a very big mistake. In both cases, the candidate is sharing information that allows the company to make an offer based on what the candidate is likely to accept rather than based on the candidate’s market value for the position. There can often be a large gap between those two numbers, so disclosing current or desired salary can mean leaving a lot of money on the table.
Thanks for the great question!