Ask Slashdot: What To Do When Another Dev Steals Your Work and Adds Their Name?
An anonymous reader writes "I have had an interesting situation arise where I built some web apps for a client about 2 years ago. I have no longer been working with the client and a new developer has taken over purely for maintenance work. Currently I have been looking for new work and have used the said apps as part of my portfolio. During one interview I was informed that I not telling the truth about building the apps and I was then shown the source of a few JS files. It seems the new developer had put a copyright header on them, removed my name as the author and put his own. Now this is grey territory as it the client who owns the source, not the contracting developer. It put me on my back foot and I had to start explaining to interviewers that the developer stole the work and branded it. I feel it makes me look like a fool, having to defend my position in an interview with a possible client and I feel I had lost the chance of directing the outcome of the interview. I have cut the apps from my portfolio, however they are some of my best work and a real testament to my skills. I decided to cut my loss and move on, I am not looking for a fight or any unnecessary heartache. So what you do in my situation?"
They shall all drown in lakes of blood. Now they will know why they are afraid of the dark. Now they will learn why they fear the night.
the sco trial is over man. you just had a bad dream, that's all.
summarizing the work you did, and identifying you as the original author of the code.
This isn't hard. Yahoo career advice stuff.
will not help with changing what already happened, but for the future put your work on github or some other similar service, keep the project private, then you can use that to prove precedence.
That sounds like a shitty situation, my condolences :(
I suspect the lawyer route is probably a bad idea, but I'd be really curious what a lawyer would have to say on the subject (at least here in Canada we have "moral" rights that dictate among other things an authors ownership of his work (even when it's "work for hire").
...and inform them of the unethical behavior of the new developer, the situation it put you in and how shocked you were to find that they had deprived you of the opportunity to take credit for your work. Somebody at that company hired you and knows what truly happened. Hopefully that person is in a position to put the situation right and give you the credit you are due.
That said, relying on your code being still accessible after you have left it for a while is not a situation you want to be in. Your former clients can take that code down and replace it any time they want, with anything they want. You should have checked to see the status of that code yourself shortly before you tried to present it as an example of your work.
If the original client won't cooperate, perhaps you could send a DMCA takedown notice asserting your ownership of the copyright for the original digital content.
Sometimes the "writing on the wall" is blood spatter...
Get a referral from the company.
If the copyright message is pointing to the maintainer rather than the company, you may want to point it out to the company since the new developer may be trying to claim ownership of the code (or may simply be naive).
Assuming it's work for hire / a client.. it would seem unreasonable to make the work public unless the client specifically allowed it?
Most of the people here don't give a rats about intellectual property unless they are ranting about how Hollywood and proprietary software's model is broken. When it's one of our own though, it's pitchforks and torches.
Have you considered that the people who argue the former aren't always the people who are upset by things such as this?
Smart move. Because that doesn't look like an admission of guilt at all.
Seriously, how difficult is it to prove that you were there before him?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Inform them of what's happened. Get them to send you a written & signed confirmation that you are the original author.
How would that work? Your new prospective clients have no way of knowing you didn't just download somebody else's work and put your name on it. To show precedence, you would need client-verifiable dates on the files.
Have you seen the movie "Flash of Genius"? Seems like you are in that same situation. The real inventor of the code can explain every nook and crannies of the code, why they did what, and the circumstances that made them program something in a certain way rather than another. The fake programmer will say he/she has amnesia. They won't be explain the thing from ground up or the particulars (exciting moments) of the programming adventure.
Pull the logs and other supporting information including client notes, change orders, SOWs, source code revision history, etc. and present it. . You can explain that it's a matter of principle that you're doing it because you value your good name. I think it's unlikely that you'll be retained by that company, but clearing it up may give the thief a bit of heat.
It has happened to me while working at UPS. One of the admins there stole my training guides and put his name on them.
1) Write to the client and to the developer explaining that it's pretty shitty to remove the original author's name (and in some cases, in some places, illegal) from a work. Explain that you'd appreciate it if your name was put back as the original author.
2) Keep the project in your profile, and if you get a negative or no response from the client and other dev, include a note saying that the other dev removed your name. And because you kept all the development files (you did, didn't you?), you can write in your profile that that in an interview you can show the progression of this project from start to end.
In the future:
* Always keep copies of files you have worked on (in a version control setup). (Especially useful if you keep the copyright. Reuse.)
* Never sign over copyright if you can help it (give clients a license instead, make it BSD-like and they can still do whatever they want, except remove your name).
* Include a clause in your contract (and you do have a contract before commencing work, don't you?) saying that the work can be included in your profile, along with a comment (praise or whatever) from the client. Link this comment to the client's website or contact details.
* And in the rare situation that the client wants you to both hand over copyright, and not retain any of the code, then demand triple or more of your usual rate. Explain that this is to offset future loses from not being able to demonstrate your awesomeness. If they don't blink, you should have asked for ten times or more.
HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
The code you developed for your client was most likely never yours to begin with. Despite well-meaning suggestions made here, you really have no right to go back to the client and demand anything. Present the code as your own to prospective clients, explain the situation, and leave it at that.
We all have fantasies of getting back at assholes like the one you described, but in the real world, you just need to take the high road and let it go. From the description you gave, it sounds like you're new to the game. Focus your creative energies on your work, not on vengeance. Your integrity and professionalism will remain intact, which is much more important than striking back at some perceived slight.
Yeah, because when I download a movie, I replace all of the credits with my name and try to pass off to potential employers that I was wholly responsible for the film. Unless it's an Abrams film... he can keep those.
you have commit dates, if the change copyright on your file is newer, there is your proof
you also have the commit history, better proof than anything, unless they suspect you faked hundreds of commits and bug fixes
I cannot remember anyone claiming that artist should not be credited. There have been arguments that you should be allowed to copy their stuff for free, but I've never ever seen anyone claiming that you should be allowed to claim you had written that stuff if you haven't.
Or in short: There's a difference between copying and plagiarism.
What the submitter complains about is plagiarism, not copying. From his submission, there's no indication about how he thinks about copying.
The Tao of math: The numbers you can count are not the real numbers.
I just read about this case yesterday. Funny.
One of the undercurrents in this whole thread is that we have no idea whether OP is telling the truth or not. There's a signficant chance s/he's jerking everyone around so s/he can forward this link to a hiring employer. How can we tell the difference? I think OP, if he's telling the truth, has to figure out what can prove they were the real author, besides the obvious of calling the client they did the work for (Duh!). That's something that can't be thought of from a one (long) paragraph summary.
It is what it is. You developed it.
The software was that good that the company you worked for then finds your work good enough to continue developing it.
You could ask that company for a testimonial to add to your resume.
Privacy is terrorism.
you have commit dates, if the change copyright on your file is newer, there is your proof
you also have the commit history, better proof than anything, unless they suspect you faked hundreds of commits and bug fixes
That would work, but it would be unethical for a developer to commit his code to a publicly-accessible server without client permission to do so.
Normally belongs to the company you work for, not the person who wrote it. It's not grey territory at all. If you find the author has been changed then the reason for change could be as simple as providing a means to get in touch with the person who is now maintaining it. If I'm amending code produced by someone else I normally add myself to any authors in the documentation, but occasionally the previous dev has not put any documentation in the code, so my boilerplate documentation may not mention the previous developer if I'm in a hurry.
A lot of companies are increasingly unwilling to produce references beyond "so and so worked here". Nowadays, I try to get a technical reference letter before I leave a company detailing the work I did, in a form that does not give away any company secrets.
Some tracing can be achieved without much compromise to company security by having Subversion or whatever version control system you're using send emails to you whenever you update code. That way you have a personal audit trail of work you've done.
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
You spelled "Uwe Boll" wrong...
Don't put it in a public repo, that's likely to seriously piss off the client. Instead, do the work in a local git repo on your machine (committing from there to your client's repo, if they use one) so you can show the whole development process. When the project is complete, burn a copy of the repo to cd and get it notarised, or maybe use a CA's time-stamping service on the repo file.
Via say the wayback machine or if the client allows it key elements on a owned server. Otherwise the site will move on from what you developed.
Wow, I should not post when knackered.
The main retort is to challenge the assertion and offer to answer low-level detailed questions about the design and the code. His main defense will be to claim the software is "confidential" so he doesn't have to talk about it in-depth. It is up to the interviewer to decide who s/he is more comfortable hiring. I once had the pure luxury of reading a resume from a contractor whom I had worked with briefly at a previous company. His resume took credit for MY WORK. Because the code is at the old place there was no way to check the source. I showed that resume to my coworkers, many of whom worked with me previously on that same project, and they all agreed emphatically that this guy totally lied. The result was his resume got a giant DO NOT HIRE mark, he was never interviewed, and of course he never worked with us again. But I'm sure subsequent places very likely hired him on the basis of MY WORK. Getting back to my point, there is absolutely no way he could have described my work in the same detail that I could, so though I can't prevent him from using my work to get contract gigs, if it ever comes up I can certainly go into extremely low level gory detail on every aspect, enough I think to convince anybody that this guy is a poser and I'm not. The reality is in the contracting world though that this guy will live and die by his reputation. I guarantee if I ever see him again I will remember his deceit, and will make every effort to block him from being hired. And will be happy to tell anyone calling for an outside reference what to look for on the resume, and if it's there, refute its accuracy. At that point the hiring manager can decide if anything else is true, and decide accordingly. After all, maybe what their team really needs is a good liar, who knows.
Information, when copied at one's own cost, does not take that information away from the original owner. Credit, when taken, is taken away from the original owner. Your notion of intellectual property falls on its ass when you try to to equate it to material goods. Credit, however, maintains the same basic rules as physical property: Claiming it for yourself, even at your own cost, does take it away from the original owner.
Mind the frickin' laser...
In the context of an interview the fact that the source was presented could be a perfect opportunity to demonstrate your knowledge of the code by offering to explain its operation and the design decisions that came about during development. Your skills are better proven in how you articulate your knowledge and ideas rather than just pointing to a name on a comment banner. A major lesson learned would be to expect this and to keep cool and not look flustered when someone tries to call you out on it. If you had an amicable relationship with this former employer you might even touch base with them ahead of time to ask if you can list them as a reference so they can corroborate your authorship.
Account -> Discussions -> Disable Sigs
The server itself is still public and it isn't your code to commit. You are being paid, generally, to create code for someone else; thus it is their code. This means that you are putting the code on an outside host of unknown security, and is still wrong.
You are assuming github security is 100% reliable. I don't know how exactly they have it set up, but it seems likely that github employees at least would have unfettered access, plus anyone who successfully gained illegitimate access, or who happened upon it while there was a mis-configured server.
--- Most topics have many sides worth arguing, allow me to take one opposite you.
When you work for someone else as a contractor, you can't just do this. You should spell it out in your contract or whatever before you work for them that you will be archiving your work for reference material for the purposes of demonstrating it to future clients.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Agree: this is more about credit than about copyright.
If you had built a bridge for your city, you should be able to list that as one of your accomplishments. It does not mean that you can walk off with the bridge. At the same time, you'd be perfectly justified in getting pissed off if someone else said that it was they, not you, who had built it.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
Even then: there is a difference between "ownership" or "intellectual property" (what many here dismiss) and getting credit where it is due (this case).
It's like in science: scientists (many /. posters among them btw) don't care about who copies their work, as long as their name is in the history books. Most free/open source software: the same story.
Simply putting up a copyright, and a name of the current maintainer, _corporate employee_ who is responsible for maintaining the software, is not a large offense where I work. If you did not sign it at all, it could even be unsurprising that a newer developer would do so, to provide a contact point for users of the software, especially if hte copyright is a corporate copyright and not a personal one. They may even think they modified it enough to deserve a new copyright (which can be very easy to do), even if some of the best core components are essentially unchanged.
So there seems no need to start out heavy handed. Also, you're showing off in your interview that was done as a work for hire? Did you get permission from your former employer to display or share that work? Then you may be violating _their_ copyrights. So be safe: contact them, especially your old manager if you can find them, and ask for permission to show your old work, and see if you can cite them as a reference for doing that work.
If the new developer is actually plagiarizing your work and re-copyrighting it for themselves personally, your old employer is the one being hurt by this. Then you may need to show some traceable source control or software backups to enforce the claim. And you may be able to get cooperation from supervisors or HR at your old workplace. It could be awfully hard to sue for damages in a situation like this,, especially if you don't have good evidence. But someone who is plagiarizing your work will probably plagiarize other work, and a good manager will appreciate a heads up from the original author. This has happened to me and my colleagues before, and will again. It may be too late for you to follow good source code control practices, but those can be invaluable not only to locate who write the code, but who _broke_ the code later.
If you've got your evidence lined up, you might even be able to contact this developer directly and give them the opportunity to fix the situation. If they can provide a letter that says "this work was originally developed for Company A by _fill in your name_, and we're delighted with its performance.", I think you'd be in very good shape for the questions you w4ere asked.
wtf is this? fair use? we're not talking a copyright of a book, we're talking somebody's property. do I have fair-use rights to use your house for educational purposes?
The submitter probably doesn't have access to their version control.
However, if they can show their work remotely, they could easily find an archive.org link to an older version. I believe javascript files are archived just like everything else. This could possibly be useful if the submitter decides to take legal action -- I think they have some grounds to do so.
Charisma is the measure of someone's ability to lie with a straight face.
do I have fair-use rights to use your house for educational purposes?
What a great comparison! Monopolies over ideas are definitely the same as physical objects that belong to people.
Interviewer - "We checked the source code cited, and your name isn't on it?"
You - "Thanks for checking the source code, that was work for hire, so it's owned by the company I wrote it for, so while I'm disappointed my name was removed from the source, they own it so they decide, I can cover some of the features if that would help?'
The above shows that you clearly understand work for hire is owned by the entity that hired you. You expressed your personal opinion while remaining professional about what happened, and providing a reasonable way to prove you at least understand the code.
If they go so far as to say you lied, then do you honestly, really, want to work for them? Do you want to be dealing with them when you submit your bill?
If they approached this more professionally and said something like 'Oh we could see how that could happen, maybe you can describe the challenges in that software and the solution' then you should be able to convince any reasonable person that you at least grok the problem, and explain your solution.
They can then follow up with another question, and you've avoided the pain.
We've all had interviews where the interviewer was just an incredible jack-ass. They may be intimidated by you, they may be just an incredibly insecure person or having a terrible day and acting poorly. The best way to act if at all possible is always to be professional. Give your answers, they can take them or leave them.
Remember this part if you remember anything. You are interviewing them just as much as they are interviewing you. Yes you have to pay your bills, and feed yourself (and possibly your family), but don't go into this from a position of weakness. You are a valuable commodity, and it's their job to convince you to decide to spend the finite allotment of time we have during your lifetime working for them just as much as you may want the job.
Many technology professions and engineers are uncomfortable with negotiating. Don't be. If everyone in IT could learn that one lesson, that being hired whether it's contract or full-time is a negotiation goes a long way.
If you are dealing with a less tech-savy more 'business' orientated person you will win points (even if grudging) that "Damn this technology person can actually negotiate and isn't a nerd who would work for star-trek lunchtime showings"
If you are dealing with a more tech-savy person they probably won't be focused at all on the business side of things and you can discuss shop talk - discuss honestly some 'pain' (without dissing any company or individual) and often you can throw in a small amount of humor. When interviewing for a technology position it's a big plus to meet a candidate who can admit things that were tried that were disasters that they worked through.
If the interviewer has any scar-tissue at all they will understand you have been in the trenches and had things go wrong, and you can explain how you worked around it. The solution may not have been pretty or elegant but it got you and the company you were working with through the problem.
Someone who can think of their feet, evaluate what's going on, make a decision and adapt to save the ship is worth a ton. There are so many people in technology who search for silver bullets and are so enamored with X, whether it's hardware or software architecture that showing this helps hugely.
I don't think it's unethical at all. While you can't use the code, you have fair-use rights to it for educational purposes. the purpose of educating prospective employers what you can do.
hahahaa.
yeah. sure. when it's quite easy to end up on projects that you're not allowed to even fucking put on the cv then yeah SUUURE you can keep the source for purposes of getting hired on your next gig.
just think about it for a moment there. you would be copying business secrets of your old company and showing them to your next company. . hell, just the commit dates and how fast the sw was produced is technically a secret.
world was created 5 seconds before this post as it is.
This is defined in your contract with the client. It is common for the developer to retain ownership of the code, but to grant an unlimited license to the client. This is common practice, since it prevents a client from suing you when you use similar code or techniques in a future project (perhaps on of their competitors). If a potential client wants me to actually hand over ownership, then they get a different price.
why not do the easy thing and politely inform the client? I am sure if you have a good working relationship with them it wouldn't be a problem to credit you.
me fail english? thats unpossible
Won't help your current situation, but in the future consider routinely dropping some standard personal easter eggs into your code. You need to invent your own obscure bag of tricks, but some silly examples would be that stringing together the 3rd letter of each of the first 10 variable names spells your name, or trivially encrypted words in numeric constants or variable names. It's been done in literature for years, for example http://www.wired.com/culture/culturereviews/magazine/17-05/pl_print
Yeah, I know you can supposedly hear "Paul is dead" if you play a certain Beatles track backwards. This isn't the kind of "proof" that would send someone to prison, but being able to demonstrate a few such little flourishes should be plenty enough to buy you the benefit of the doubt and likely constitute probable cause for an investigation.
Most importantly, SHUT UP and don't tell ANYBODY what your secrets are unless you're up against the wall. Even then, don't spill all of 'em. This is security by obscurity -- not an opportunity to show your friends how clever your little treasures are. People talk.
Much more useful than seeing code with someone's name on it is hearing that person describe the code. If someone calls you on it, offer to explain the design of the code, the decisions and tradeoffs made along the way, and what you'd improve next, or how you left the code in a state to be more easily maintained (by you or others) in the future. That would feel *much* more useful than seeing your name on it, and would take you a fraction of the time invested to get it done.
Produce it, along with the specification and the invoice for the work, with irrelevant details redacted (like how much you were paid).
The fact that you have specific project documentation should be ample evidence that you are the original author. All that needs to be done for verification is to have the new client phone the old client and ask if they had indeed contracted with you for a piece of work. No other specifics.
You could have even phoned the old client from the new client's place of business and asked the old client to verify it right there, as long as you have good reason to expect the old client to tell the truth.
-SS "Teach the ignorant, care for the dumb, and punish the stupid."
where you cannot loose your authorship rights.
A name is just a name. The code doesn't belong to either you nor the new developer (most cases). It belongs to the client. If they wanted to change the name or the new developer (agent owner) wanted to; it is completely fine and legal cause they own the work. If you wrote something and you owned it, it is your right to put your sons or wife's name on it.
Having said that, it has nothing to do with proving you wrote it in an interview. If someone said that you didn't write something, cause another persons name is on it. MOVE ON. Get your head out of your ethical ass and simply say they clearly did a lot of updates and the current version belongs to the new dev but you wrote the original. If the interviewee says you didn't create it, simply tell them you can answer any question about it's early development. Have them prove you didn't do it. If you are that uncomfortable about answering such questions, then don't have it on your résumé. Just your depth of detail in answering any questions will show people that you have intimate knowledge of the program. Let them come to their own conclusions about their developer. Don't be the dumb ass attacking their company by throwing out or implying accusations (however valid) in an interview.
Remember you DO NOT own the code, but that doesn't mean you can't take credit for your hard work. Two completely separate things.
The Berne convention (which the USA is a signatory) explicit states the existence of moral rights:
"Independent of the author's economic rights, and even after the transfer of the said rights, the author shall have the right to claim authorship of the work and to object to any distortion, modification of, or other derogatory action in relation to the said work, which would be prejudicial to the author's honor or reputation"
This is not well known, because these rights cannot be licensed or sold in exchange of money, but that does not mean they do not exist.
In short, a programmer is, in an inalienable manner, the author of all the programs s/he wrote, whatever the contract or terms used to write them. Modifying the author name is a violation of these rights. Also, IANAL.
Yeah, because when I download a movie, I replace all of the credits with my name and try to pass off to potential employers that I was wholly responsible for the film. Unless it's an Abrams film... he can keep those.
Abrams movies might be good if you are applying to a less than lethal weapons company. Getting blinded from that lens flare probably works better than getting tasered.
The only thing necessary for evil to triumph is for it to be pitted against a slightly greater evil
Others have correctly pointed out that you were most likely in a situation of work-for-hire and do not have a copyright claim to the work. However you may have a claim under Author's Rights (also referred to as Moral Rights). Author's Rights are separate and distinct from Copyright, and cannot be transferred. It doesn't grant you that much, but (amongst other things) it does grant you the right to be named as author (or co-author) in a work.
Your best course of action to to write the client a friendly letter or email (I'd lean towards letter in a situation like this), relay your situation to them, and inform them that you wish to be named as author (or co-author) in the work. Be clear you are not claiming any kind of copyright! You also may wish to point out that the other developer is incorrectly claiming copyright, when that belongs to the client. Just be careful of not making this an attack on the other developer. You just want some way of having your work recognised. If you do send a letter, be sure to get a notarized copy before you send it, in case you have to escalate things.
If you do need to take it further, then I'd suggest to just cut your losses and walk away. The other developer claiming your work as theirs is Libel: it has already harmed your reputation. It will be expensive, and chances are you wouldn't get enough to cover your expenses (not to mention the damage it would do to your reputation even if you are right).
Basically he's like the architect and builder of a beautiful building, and was bragging about it to a prospective employer, to suddenly find out some asshat that got hired to do maintenance after he left changed the dedication plaque and blueprints to have his name instead.
There are decades of case law on fair use. In a field where clearly satisfying even two criteria has been enough to establish fair use, OP's suggested use nails every criterion. it's a work only valuable as part of an ongoing enterprise, not being put to anything remotely similar to that use, depriving no one of any legal valuable interest, using only enough of it to establish actual authorship, in private, to someone with no interest at all in the work itself, who furthermore does not retain a copy. I doubt it's possible to even imagine stronger case.
The notion that copyright is some sort of "property" was only recently insinuated into the public consciousness, when the rent-seekers finally managed to snooker a body new enough and naive enough not to reject it as centuries of actual governments have done, viz. the United Nations. That success has been leveraged shamelessly.
As always, all IMO. Insert "I think" everywhere grammatically possible.
As far as I can tell, one major difference between (what I mean by) "credit" and "copyright" is that copyright can be bought or otherwise transacted for money. For example, after you create a work (let's say a book), you can sell the copyright so that someone else (say the publisher) holds the right to receive remuneration for reproducing the work. But that does not take away your ability to say, "You know, I'm the one who did that." See also the comment from the sibling poster amaurea.
If by "credit" you mean "remuneration", then I would agree with your statement that "Copyright is how you secure credit for something you created". But that's not what I'm talking about, nor the OP. Of course there may be circumstances where, due to other contractual obligations, you are not allowed to take credit (undercover ops, ghost writing, etc.), but that's not related to the current situation.
If by "DENSE" you mean "solid; robustly built; able to withstand attacks" then I thank you for the compliment.
404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
[GPG key in journal]
This is probably common. I have had a similar thing happen - I wrote a system for a major bank in Java/JSP, and they ran it for a bit. Then they copied it (line for line, I saw the code) into C#/ASP and did some minor updates. They then claimed it as their own, and stopped paying the support fee.
Given they were the biggest customer of the company I worked for, there was nothing to be done. Oh joy.
I share your pain.
"Cats like plain crisps"