Ho sempre risolto questo problema avendo un progetto personale in cui ho messo tutte le mie idee pazze e cose generiche, e poi l'ho licenziato sotto la licenza BSD, che consente alle persone di riutilizzare, modificare, rebrandare, chiudere e addebitare denaro per questo. In questo modo, conservo il copyright, ma posso riutilizzare il codice come preferisco per questo e per quel datore di lavoro, in modo da mantenere il copyright dell'originale, ma il datore di lavoro conserva il copyright dell'istanza riutilizzata. Immagino che se avessero un problema con quello, allora dovrebbero semplicemente pagarmi per riscriverlo sul tempo di lavoro che non ha senso dal loro punto di vista. Inoltre, le aziende usano il codice BSD tutto il tempo, poiché l'idea alla base di BSD è quella di consentire alle persone e alle aziende di fare praticamente tutto ciò che vogliono, incluso il rebranding e la vendita.
Ovviamente, se vengono aggiunte al codice sul posto di lavoro, non posso riutilizzarlo altrove senza riscriverlo nel mio tempo ... il che va bene perché le cose generiche tendono ad essere relativamente piccole, a meno che non sia un'idea che garantisce comunque un considerevole sforzo nel tempo libero.
Scriverlo nel tuo tempo libero e concedere in licenza il codice sotto una licenza in stile BSD dovrebbe permetterti di mantenere una libreria per te che puoi usare praticamente ovunque tu voglia.
Ora, come per i contratti che pretendono di risucchiare il copyright di tutti i tuoi progetti personali ... questo probabilmente differisce radicalmente tra le giurisdizioni, ma in almeno alcune giurisdizioni occidentali è a mia conoscenza che un contratto non può farlo. Il contratto può dire che lo fa, ma non sarebbe applicato in un tribunale perché il copyright deve essere esplicitamente trasferito, al contrario di "tutta la tua base ci appartiene", un accordo che non sarebbe mai rispettato (in la giurisdizione da cui provengo comunque). Ci sono una serie di restrizioni su ciò che può essere sostenuto in un tribunale tramite contratto, motivo per cui di solito (e si spera) vedrà una clausola che dice qualcosa nel senso che se una parte del contratto non funziona legalmente , il resto del contratto è ancora valido.
Ma come sempre, consulta un avvocato prima di interpretarlo come una consulenza legale accurata. Non sono mai stato portato in tribunale, quindi non conosco nessuna di queste cose come fatti a prova di avvocato. :)