If the company wants to stop you from working, they should pay your salary for the duration they want to keep you from working, not indefinitely. Already most states won't enforce non-competes lasting more than a year. Obviously companies benefit from non-competes, but they do so at the expense of workers. The fact that a company can fire someone on day 2 and not let them work for a year is absurd, but that is how non-competes are written. Once a company fires someone or lays them off, they shouldn't be able to keep that person from working without compensation, and compensation given while the person is employed doesn't count - that is money given for work. If an employee leaving for a competitor really harmed a company, that company can sign an agreement that isn't at-will employment.