I don't understand why there's so many people in the comments defending non-competes. They have literally no value to society, or to individual employees. They are a tool of restrictive coercion to stifle an employees freedom of movement in the job market. Trade secrets, IP, secret sauce: covered by NDA and IP assignment agreements Client lists, contract terms, sales strategies, reported metrics, financials: covered…
As a developer pretty much none of these matter or protects anything.
Imagine this scenario; - John has no idea about video encoding but a good developer.
- John joins to a video encoding startup
- This startup encodes videos 3 times faster than the competitor
- After working on the core product for 2 years, John knows a lot about video encoding, because he's been trained. He also knows why they can do faster than anyone else. It's not one thing, bunch of things.
- Then John receives an offer from the competitor with 50% more salary (obviously this is smart thing to do for competing company). He obviously leaves, because 50% more! All the know-how, experience etc. will be just automatically transferred to this competitor. NDA, copyright etc. nothing can prevent it.
So how is this good for anyone but John? If you think this kind of stuff doesn't happen and all this kind of advancements are public domain anyway, you are wrong. There are many niche fields where competing advantage comes from technical excellence and understanding couple of key things better than your competition.
Not to mention John will have inner knowledge of so many other non-technical but important details that can give obvious unfair competitive advantage.
When non-competes are removed companies do need to treat their employees differently. "If I don't trust this employee enough I shouldn't give them the important bit of the source code, shouldn't train them on X know-how that we internally produced" etc. which is pretty bad for everyone.