1 pointby xenator6 hours ago1 comment
  • noduerme6 hours ago
    Okay. I have been through this many times. What you need to tell them is that they own the right to the finished product, that is the research, documentation, source code, and any binaries you give them. But that you will retain the right to reuse any code you find useful for future projects.

    If they reject those terms, don't work for them.

    I once built a project on those terms, and was paid about $120k for it over six months (back in 2008). The startup founder business guys who financed the project sold it to Fox for around $1M. It had gone viral. Fox put a team of 10 coders on it. They had my code but didn't fully understand it, so they wanted to hire me back. My rate was $100/hr at the time and Fox wanted to pay me half of that. I said I would consult with them at my normal rate, even though I don't like their politics.

    They then sent me a contract which said that they would own all copyright to my code, and anything else I did while I was working for them. I told them there was no way I would sign that. If they wanted my help they could have it. Their people told me no.

    I understand that they spent $5M trying to get my code to work on their platform before deciding to shut it down, without making any money from it at all. Too bad for them. It was a victory for me. If they had not been so greedy, they could have had their program and its programmer, too.

    So in short, unless you are becoming a full-time employee of this company and everything you do at work belongs to them, you should never ever sign anything which gives them the exclusive rights to your code. You can give them the right to take it, re-sell it, modify it or whatever. But not the right to prevent you from using it.

    And the most important reason for this is that everything you write will become part of your toolkit that you take forward with yourself to sell to new clients, to make it easier for you the next time you're asked. And reasonably if you are asked to do the same work again, you would write the same code again. So it is unreasonable for anyone to tell you that you cannot re-use your own work.

    • xenator5 hours ago
      Honestly, I couldn't care less about the rights to my code in today's world. What you're describing probably really bothered me a couple of years ago. But today, I'm not even sure what programming language my next project will be in. Everything has changed so much and is changing so rapidly that perhaps in a couple of years, corporations will be worried about their huge and important products.

      What if, in a couple of years, you can create your own Photoshop with video editing capabilities? Maybe that will be possible too.

      • noduerme4 hours ago
        For background, what I mean by my code that I saved by keeping my rights to reuse it, is basically two full front-ends, one a platform for SPAs with all the screens/dropdown/module/component architecture you can imagine (think of React, except a lot cleaner and easier to read) [originally written in AS3 and then completely ported to Typescript around 2018], and another that's a complete page-based CMS for businesses, only better than Wordpress because it has hierarchical permissions over every writable field on pages distributed over franchised businesses. Those, plus custom back-ends [originally in PHP] with auths and modern security to back them; database schema to support those; a full set of hand-written UI components and SCSS; a complete form rendering and validation language in my own DSL that works on both platforms; a NodeJS version of all of this; and lots of other stuff... Since I've written these all for various clients over 25 years and cobbled them together into my own platforms, it makes it very easy for me to spin up a new app or service or site. One that actually works and doesn't have any unknown security holes or garbage code.

        Okay, so I did an experiment with Claude a few weeks ago. I asked it to write one fundamental piece of my SPA framework from scratch, without looking at it. The piece that manages memory, creates and disposes of current screens and their sub-components. I spent about 10 hours coaching Claude until it was able to write something quite similar to the 500 lines of code that I had written that sit at the heart of that system. Questions were like, "hey, don't you think maybe you should create a cleanup function for that component before destroying it?" You know, basic stuff like that.

        Its code was crap.

        Every time I corrected it, it said, "oh, you're right! That's so smart!" But at the end I had to debug the whole thing myself. And this was without even trying to tie anything to a back-end service or API.

        So what if, in a few years, this is unnecessary and anyone who wants Photoshop with video capabilities can just will it into existence by asking an LLM to write it? Maybe that'll happen. I'll still have my proprietary frameworks and, unlike that thing you vibe-coded, they're battle-tested and I know everything they do. That's why the advice I'm giving to the OP is solid.

        Every piece of code you write yourself is something you fully understand and it gives you the power to do more on top of it the next time. Saying that it doesn't matter because LLMs will take over, and no one will need to code, is just some kind of resignation, or laziness, or solipsism, or wanting to watch the world burn, or whatever. But whatever it is, it's not useful work and it won't profit the person who is writing code now and wants to keep their rights and not get screwed.

        When people are sandboxing new vibe-coded copies of Photoshop - and asking an LLM why the colors are all messed up, which it can't see or understand - someone will still be asking for us to come make things and fix things.