This gets thrown around HN a lot but I don't think it matches reality. Say I work in machine learning algorithms for show recommendations at Netflix. Amazon hires me to work on their machine learning algorithm recommender on Prime Video. Sure, I might have NDAs to protect what I learned at Netflix, but how does Netflix realistically show whether or not I disseminated that knowledge at Amazon? It's not like they can just ask to see Amazon's code to see if the knowledge has been ported over to there. The only way to really show that I infringed an NDA is for someone to rat me out, which is probably pretty rare. To that end, I understand why companies want non-competes (I'm not saying they should be allowed to have them... I'm just saying that there are reasons that they exist beyond "we don't want employees to leave). In finance, it's very common to get a paid non-compete where you get your full salary for as long as the company wants to enforce the non-compete. Companies aren't paying these high salaries just because "training cost is expensive and it's to limit staff from training at one company and leaving". They are doing it because they actually fear the consequences of the employee's new firm competing with them based on the knowledge that the employee has. For this reason, it's also pretty common for companies in finance to not pay out gardening leave when they aren't worried about the employee's new company directly competing.