197

I know the company you work for owns the code and obviously you will get arrested if you try to sell it. But is it uncommon for developers to keep a personal copy of the code they wrote (for future reference)?

Apparently this guy was sent to prison for copying source code.

Thomas Owens
  • 79,623
  • 18
  • 192
  • 283
superFoo
  • 421
  • 2
  • 6
  • 7
  • 13
    it might be a serious legal issue if you somehow sell/re-use it to the competitor company. – Yusubov Jun 25 '12 at 16:45
  • 3
    My major issue with this topic is... Does the company own every bit of the code? I understand I can't resell the code I wrote for another company verbatim. But am I allowed to keep my code around to reuse algorithms, even if that reuse is with another company/makes me profit? – David Peterman Jun 25 '12 at 17:51
  • 19
    Note that in the linked article, it's a rather specific case as he walked away with code that was most probably covered by NDAs (considering the client), and even if it weren't, I'm not sure I'd take the chance of walking away with code that was **developed for the freaking _Federal Reserve Bank_**! You must not have it all there if you think nothing can go wrong with that and that there won't at least be a few influential people who wouldn't like this idea **at all** if they ever heard you've taken the code with you. – haylem Jun 25 '12 at 18:27
  • 10
    Assuming that it was work for hire, and that your former employer therefore owns the copyright on the code you wrote for them and has not released it as open source, I'd say that keeping copies of code you wrote is exactly as inappropriate as keeping copies of code your co-workers wrote. – Keith Thompson Jun 25 '12 at 19:18
  • I still have copies of code I wrote for one of my former employers. My employer owns the copyright, but it's released under an open source license. – Keith Thompson Jun 25 '12 at 19:20
  • [Stealing is stealing unless it isn't](http://arstechnica.com/tech-policy/2012/04/a-federal-appeals-court-has-2/), I would be careful in the US, things change on a dime and it isn't worth the chance just to archive something that is supposedly not useful anymore. –  Jun 25 '12 at 20:44
  • 2
    What would happen if 1) the company had a leak of their source code by "someone" and 2) you had a copy of their source code at home? –  Jun 25 '12 at 22:19
  • 37
    @DavidPeterman - why wouldn't an employer who hired you own every bit of what you do for them? Do you think part of your house belongs to the carpenter who did the framing? – Reactgular Jun 25 '12 at 23:38
  • 1
    What if you are not in a software company i.e. sell the software you write for a living? Perhaps just internal software you write to improve business workflow? Does it make a difference? – Jake Jun 26 '12 at 02:05
  • 10
    @MathewFoscarini I understand what you're saying, but I'm talking about the algorithms. That would be like saying the carpenter doesn't own the steps he takes to build the house – David Peterman Jun 26 '12 at 03:18
  • I do. I wrote it. Not line for line, but methods; generally, pseudo-code. –  Jun 26 '12 at 03:32
  • 4
    I heard of a case at Pixar where a famous films files were lost (not sure what the files were). A naughty employee had made a recent copy of the files....[http://www.tested.com/videos/44220-how-pixar-almost-lost-toy-story-2-to-a-bad-backup/](http://www.tested.com/videos/44220-how-pixar-almost-lost-toy-story-2-to-a-bad-backup/) This employee was not sent to prison. – marabutt Jun 26 '12 at 03:30
  • Just my 5 cents - not really. The simple reason is that no matter how many times the same problems are addressed, unless they are not refactored, hence rewritten in a much better way, the code does not worth the efforts. – Vidul Jun 25 '12 at 21:05
  • 3
    @marabutt: I don't think that is relevant. As I understood it the employee was a current employee and had copied the files to a home computer to work on it from home. They weren't an ex-employee and still had a valid reason to have those files. – Chris Jun 26 '12 at 09:37
  • 2
    @Mathew Foscarini: And who owns the design of the house I live in? Does the ownership of my house change if he decides to build 1000 more houses using the same design? – Giorgio Jun 26 '12 at 10:54
  • any employeer has to say somthing about the question? – PresleyDias Jun 26 '12 at 11:58
  • I can't keep my own paintings? I wrote it therefore I have the right to a copy. – Darknight Jun 26 '12 at 14:32
  • 1
    @Giorgio - I was trying to demonstrate implied ownership virus legal ownership. A software programmer working for an employer does not have any legal rights or ownership over work he performs for the employer unless otherwise agreed upon in writing prior to doing that work. There is this general idea among programmers that because they wrote it, that action some how entitles them to a relationship with that source code that out lives the life of their employment with the company that paid to have it programmed. – Reactgular Jun 26 '12 at 14:53
  • All the useful, reusable bits, I write on my own time (evening or lunchtime). I then give the company a non-exclusive licence to it. – ctrl-alt-delor Jun 26 '12 at 16:00
  • 1
    @Mathew Foscarini: I agree with you that if this is what the contract says, the developers do not have any legal right on the code they write. Of course, I find such contracts questionable, but that's the world we live in and as long as developers sign such contracts they have to follow them. – Giorgio Jun 26 '12 at 18:52
  • 1
    I wouldn't keep anything from any of my employers after asking this question or answering to the affirmative on this site in any way. –  Jun 26 '12 at 23:46
  • The first question I see in most programming interviews is "can you show us some examples of your recent code so we can see your programming style". Keeping a small example of some code you're proud of answers that question. Open source would be better of course. – Michael Durrant Aug 21 '13 at 00:23
  • A question that arises is where exactly source code floats between "art" and "product". Every problem can be approached in different ways, and all the approaches can be implemented differently. Where `art` is truly unique, source code is somewhat individual but not completely. I understand the emotion of wanting ownership of what you write (as it is a mental product of which sometimes you think no one could have done as good), but also accept that ultimately it belongs to the one you work for - they paid for you to do it. – MarioDS Jun 07 '14 at 12:41
  • In Germany the creator always keeps the right at his work. He can pass only aspects of it, but you couldn't give the company "all rights" like in the american system. So i guess it would be easier (legally) to keep a copy over here. – Sebastian Schmitz Jul 26 '14 at 09:23

20 Answers20

302

But is it uncommon for developers to keep a personal copy of the code they wrote (for future reference)?

I don't know how common it is, but common or not, it's still a bad idea.

Programmers often operate in the mindset that solving the same problem twice is a waste of time. We try to design our code to be reusable (sometimes). We build libraries of classes and functions to reuse at some point in the future. We sometimes even give our code away so that nobody else will ever have to write code to solve the same problem that we just did. So it may be understandable to want to take "your" code with you when you move from one job to another. But you still shouldn't do it, for the following reasons:

  1. It's not your code to take.

  2. The code you wrote for your former employer is part of the business they built. Their code is part of their competitive advantage. Sure, competitors could write their own code to solve the same problem, but they shouldn't get the advantage of building on work that your employer paid for, owns, and didn't authorize you to take.

  3. If they have any sense at all, your new employer doesn't want any part of the code that you took from your former employer. The more you "refer" to work you did for some previous employer, the more you put your new employer in legal jeopardy.

  4. If you ever accidentally let it slip at New Employer that you've still got a copy of the stuff you did for Old Employer, your boss at New will probably realize that you'll take a copy of their code when you leave for some other job. That might not sit well with him or her.

  5. Even if you're not cribbing actual lines or just vague ideas from your old stuff, just having your old stuff in your possession could raise suspicions that you might be using it for something. Imagine that Old Employer sues New Employer, and as one of a small handful of employees that moved from Old to New, you suddenly find yourself giving a deposition. None of you actually copied Old's code into New's product, but the lawyer in front of you asks: "Mr. SuperFoo, do you now or have you at any time since leaving Old Employer had in your possession a copy of any code that you or anyone else wrote while working at Old Employer?"

  6. You don't need the code that you wrote last month, last year, or longer ago. You solved the problem once, and now you know how to solve the problem again. Or, you may know how not to solve the problem -- your new implementation will be better because you have experience.

  7. There are better ways. It's hard to go back and learn anything useful by reading old code out of context. A diary or journal that describes what you learn, ideas that you have, etc. is far more useful later on.

  8. Even if Old Employer knows that you've got their code and is OK with that, you still don't want it! The only thing that can come of having it is a 3am phone call: "Hey there, SuperFoo? How are you doing? Listen, you've got a copy of our stuff, right? Look, we've got a problem with the system, and we've narrowed it down to a couple files that you wrote that our new guy just doesn't understand. I know it's late, but could you walk him through SuperDuper.pl?"

Let it go. You don't need it.

Caleb
  • 38,959
  • 8
  • 94
  • 152
  • 7
    Moreover, if the media you keep the content on gets lost or stolen, it's a whole lot of trouble. To tell the truth, I prefer to avoid having any kind of VPN connectivity or sources on my personal PCs if at all possible. Your PC might be a part of the botnet without you even knowing, why risk it? – Coder Jun 25 '12 at 17:40
  • 8
    Excellent answer! I was actually offered a copy of the code (or continued access) when leaving my old employer. I refused, exactly for reasons close to number 8. After all, there was a reason for resigning from them. If I still wanted to fork for them, I'd stay :) – harald Jun 25 '12 at 17:42
  • 79
    +1: **You don't need it** The hard part is figuring out what to write, not actually writing it. If you write it a second time, it will probably be even better. – kevin cline Jun 25 '12 at 18:31
  • 6
    When I solve a problem with my code I tend to write out the solution to a blog. Not source code from my work, but generic code that follows the same pattern (simple one line or a few lines to accomplish the goal-- not behemoths of code). I find this to be a great method for storing what I learned at previous jobs. +1 for bullet #7! – Gaʀʀʏ Jun 25 '12 at 19:28
  • @Avio Impossible to say without speculating, but it doesn't change the answer. Furthermore, I doubt many people at either Apple or Microsoft would be dumb enough to take code with them when they left. – Caleb Jun 25 '12 at 20:04
  • 11
    Shouldn't there be a threshold of some kind for the amount of code that qualifies? If I use `for (int i=0; i < N; ++i)` in my code, it surely is not illegal to use it elsewhere at another company... – vsz Jun 25 '12 at 22:08
  • @vsz The question here is whether you should keep your own copy of code that you write for an employer. Do you need to do that to come up with `for (int i=0; i < N; ++i)`? – Caleb Jun 26 '12 at 02:26
  • 1
    @vsz [Depends on who you ask.](http://scholar.google.com/scholar_case?case=13845434301179651922&hl=en&as_sdt=2&as_vis=1&oi=scholarr) – Taymon Jun 26 '12 at 02:38
  • 2
    The line between code owned by your former employer and your memory of the code you wrote for them seems to me a bit too blurry to say that the code belongs entirely to either you or your employer. I don't claim to have a good answer to this question, but if I did, it wouldn't be predicated on any notion of ownership. – Rei Miyasaka Jun 26 '12 at 03:29
  • 2
    My code belongs to me no matter whom I wrote it for. It may, however, not belong to me exclusively, which imposes limitations on how exactly I can reuse it in future. – Violet Giraffe Jun 26 '12 at 13:41
  • I agree that as long as the code we write is owned by our employer we should not make a copy and take it with us when we leave. But because of these rules we throw away __so many hours of work__ just writing and rewriting the same stuff over and over again (for different employers): shouldn't we be looking for alternative rules? – Giorgio Jun 26 '12 at 18:59
  • 3
    @VioletGiraffe Are you sure? Many, if not all, software companies make it perfectly clear that the code that you've written belongs to them, and them alone. They've paid you for your services of writing the code for them - they won't take kindly to letting you take the code that you wrote for them that they paid you for off to their competitor. –  Jun 26 '12 at 20:05
  • Playing the devils advocate: Just because the company says so, doesn't mean it has to be their code. If you compare software to other written pieces of work, e. g. an article in a journal, in Germany the author will keep the copyrigth itself, and grants a licence to the publisher. This licence might be exclusive and without limit, but it will not prohibit the author from keeping his original documents after publications. I don't see why this would be different for the intellectual property of a developer. – Owe Jessen Jun 26 '12 at 21:15
  • 1
    @OweJessen What's okay (or not) really depends on whatever laws are in effect and on the agreement between the parties in question. My understanding is that [it used to be typical for a journal to require the author to assign copyright to the journal](http://en.wikipedia.org/wiki/Scientific_journal#Copyright), but that that's been changing in recent years. In the US, the most common arrangement between employer and programmer is that the work product is a "work for hire" and therefore owned by the employer. IANAL, but I believe that's the main difference between the two situations. – Caleb Jun 26 '12 at 22:08
  • 1
    @DalinSeivewright: OK, I agree. Let me rephrase: my code belongs to me unless explicitly stated otherwise by the contract I've signed with employer. – Violet Giraffe Jun 27 '12 at 07:29
  • So if you were to write the same code again in exactly the same way/style you always write your code. Would this be deemed illegal? – atx Jun 29 '12 at 00:12
  • 1
    I do not agree with "You don't need it". I regularly look up old code to see how I solved a certain problem, because I vaguely remember I solved that puzzle some time back but I have forgotten about the details. In a new project, I almost never copy/paste from an old project, but I do re-use design patterns or a certain way of implementing something. – Blaise Jun 30 '12 at 19:33
  • 1
    See this article http://embeddedgurus.com/stack-overflow/2012/02/why-you-really-shouldnt-steal-source-code/ from Nigel Jones who acts as an expert witness in software theft cases. – uɐɪ Jul 17 '12 at 07:37
  • 2
    Anyone who claims that the code you write at work is yours, probably don't read their job contracts carefully. It is fairly standard practice to waiver your intellectual property rights for money. – Spoike Jun 11 '13 at 14:34
  • Hey, I wrote a code for my company a year back and now I am a graduate student at university. I want to publish the idea which I used in my company to solve that problem. I DO NOT have a copy of that code. Is it illegal even to blog that idea? Even if I write it from scratch again? – mihirj Dec 10 '13 at 12:09
  • 1
    @mihirj It's probably not *illegal*, but it may very well violate the terms of your agreement with the company. Everything depends on the laws in your location and the specifics of your agreement with the company, so don't expect a definitive answer here. If you still have a good relationship with the company, you could always just ask if they mind (get something in writing). In any case, if you need solid legal advice about your situation you should consult a lawyer in your area. – Caleb Dec 10 '13 at 17:18
159

I always keep a copy of the code I write and take it between jobs. Subsequent employers never get to see/run the code, but I use it as a reference at home: 'Ah yes, didn't I do something similar to that on Project X?'.

Is this legal? Depends on jurisdiction and circumstances, but it is fairly common. Morally, I have no problem with it, providing you aren't simply giving code to new employers... It's a reminder and a demonstration of what you have done, rather than a free resource for your employer.

[The flip side of this is the inevitable shame that comes along when you look at older code: 'What was I thinking?? Why on earth did I do it that way??']

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
cjmUK
  • 705
  • 1
  • 6
  • 13
  • 35
    +1 And it's not even relevant whether it's legal. Many of us do it anyway. It doesn't harm your previous employer (you're not selling the code to a competitor), and it can't be regulated anyway. In a way, if you "remember" how you solved a problem for a previous employer, you are "stealing" this secret for them -- in a way which cannot be regulated until they invent mind-control ;) – Andres F. Jun 25 '12 at 17:13
  • 89
    @AndresF. That's nothing but a rationalization. The code is your old employer's property, your memories are not. If you remember how you solved a problem you don't need the code, so what's the point in taking it? – Caleb Jun 25 '12 at 17:32
  • 10
    +1 for making the moral argument. Personally I follow this, mostly because the majority of my code is not domain specific. I remember how I solved something, but not necessarily the nuances of it. – Telastyn Jun 25 '12 at 18:13
  • 46
    In the case of a company accusation of IP theft, having a copy of the code is going to act as a big aggravating factor against you. Having the memory of it is not. That's the difference. – Oleksi Jun 25 '12 at 18:15
  • 2
    What do you do for existing files that you modify? Or files that you create which someone else subsequently modifies? Do you have a system for ensuring that you're only taking the code that *you wrote*? Also, if your former employer knew you were taking the code, would they be okay with that? If yes, have you told them; if no, how do you explain the difference of opinion? – Caleb Jun 25 '12 at 19:18
  • 13
    @Caleb Regardless, many developers do take chunks of code after they leave. This is an entirely separate action from using this code to compete against or hurt your old employer, and is usually taken just as reference, as in "how the hell did I solve this problem/configure this piece of software before? Rail against it all you want, but it's still a widespread practice, and not actually hurting anyone. You can bury your collective heads in the sand, or claim it's wrong, but it still happens. Especially with outsourcing/offshoring -- if you think it doesn't happen, you're in for a surprise! – Andres F. Jun 25 '12 at 20:15
  • 2
    @AndresF. I never said it doesn't happen, but the fact that it happens doesn't mean that it's okay or legal or moral or good. Whether the owner of the code is harmed or not is for them to judge -- if you take the code with permission, there's obviously no problem. If you take it without permission, you open yourself up to some degree of legal risk. – Caleb Jun 25 '12 at 20:35
  • 5
    I've just discussed this with my wife; she works in a completely unrelated sector, but she agrees that this happens in her sector - and everywhere else too. You don't take binaries to your next job, you don't even copy-paste source code... but you do cherry-pick the best bits for future reference. And I do think too many people 'doth protest too much'... – cjmUK Jun 25 '12 at 22:17
  • @Caleb - my previous employer gave me the CDs to write the code to. And no they didn't try to tap me for technical support. I almost certainly took code that someone else contributed in some way to... As for the legal angle, I think some people are a little confused. In my jurisdiction, the company owns the intellectual property and the right to use the code - they don't own every printout or binary. – cjmUK Jun 25 '12 at 22:22
  • 1
    @cjmUK I don't think anyone here is arguing that there's a problem if you take code with permission. It's the without permission case that's a problem. – Caleb Jun 26 '12 at 01:19
  • 2
    @AndresF. - The difference is that if you have a security breach and this leads to the leak of a former employer's code, you are probably legally and definitely morally liable. If working on sensitive code, this could cause big problems. – Peter Ajtai Jun 26 '12 at 01:59
  • 6
    @Peter Fully agreed. I thought we were discussing the general case, with boring projects and no security. Of course if there is any notion of "security breach" in your work environment, it's a bad idea to take code with you. I still think either way it's actually harmless for your employer, _unless_ your job is truly rocket science ;) – Andres F. Jun 26 '12 at 03:14
  • 4
    @AndresF. You say "many" and "widespread" - what is your basis for this claim? Do you have sources? It sounds like you're reflecting your own biases rather than making a factual statement – HorusKol Jun 26 '12 at 04:01
  • I would have a hard time to have *my* code only, as every non-trivial file includes patches y colleagues or is built on top of other parts of the application. So by taking "my" code I would also take code where I certainly won't have the rights ... but luckily most stuff I do is open source :-) – johannes Jun 26 '12 at 10:53
  • 1
    @HorusKol True, it's my own bias. I didn't examine statistics for multiple countries and jobs. Let me rephrase: everyone I've worked with, for as long as I can remember (10+ years), in every job I worked (freelance or not), kept a copy of the projects they worked with. Yes, the sample is biased to my own experience :) The only exception I can think of is when I worked in a bank, where security measures were strictly enforced (then again, the code was stone-age Cobol -- who would want to steal _that_? :P ) – Andres F. Jun 26 '12 at 15:24
  • 3
    @AndresF.: it does hurt your previous employer: he paid you 500 hours to solve a problem, a year later you do it for his competitor in only 20 hours. That's not fair. – Konerak Jun 26 '12 at 19:28
  • 3
    Apart from not agreeing with your comparison there (500 hrs down to 20 hrs is wishful thinking), but you also fail to consider what the employee might have brought into his job that this employer would benefit from. It cuts both ways. – cjmUK Jun 26 '12 at 19:54
  • 3
    @Konerak But that goes beyond the current topic. If I ever worked for an employer in industry X, he effectively _trained me_ for that industry. I will be way better for a similar job in the future, possibly for a competitor. Without legal constraints (which I don't agree with either), the employer always "hurts himself" in this manner. This also happens beyond the software industry! – Andres F. Jun 26 '12 at 21:18
  • 1
    @AndresF. "everyone"? The difference between your general case and the current topic is that when an auto-worker takes his training to a different company, he isn't taking the toolkit or parts of vehicles with him - in fact, that would be considered industrial espionage – HorusKol Jun 27 '12 at 10:45
  • 2
    @HorusKol Pay attention to the context of what I was saying: I was no longer talking about taking code, but about _training_ and _knowledge_. If you worked for an auto company in the past, you're better trained to work for the competition. Your skills are way more important than code or toolkits, and it's what may actually hurt your past employers (which is why they try to force you to sign no-competes, where legally available). This is a reality of capitalism. – Andres F. Jun 27 '12 at 13:06
  • 3
    Unless you worked for some mafia organizations or the Illuminatis, I don't think it's wrong to have a copy of the code. I, for one is attached to the code I write, like the love letters from my exs, I still keep them, hoping my wife would never find out. – Dexter Huinda Jun 28 '12 at 17:43
  • 2
    @DexterHuinda My wife doesn't like my code collection either... :( – cjmUK Jun 28 '12 at 19:36
  • @cjmUK Actually, am not much concerned about the code collection, am more concerned about the love letters collection from my exs. :D – Dexter Huinda Jun 28 '12 at 19:40
  • Please, lets keep comments ontopic to the answer and avoid extended discussion. If you would like to discuss this further then please feel free to use the chat feature. – maple_shaft Jun 28 '12 at 19:47
50

This is a very bad idea. That code doesn't belong to you (legally speaking) and having possession of it can get you into a lot of trouble. This becomes even more true when you move to a new job and still keep that source code around. Even worse if it's a competitor. Your company would not be happy if you had access to their source code when you don't work for them anymore.

It's all about managing your risk. It's obviously expected that you retain things from a previous employer that you can use somewhere else. This is why they make your sign non-compete clauses that last X months/years after you leave them, however having possession of the code makes you more vulnerable to someone accusing you of blatantly copying the company's code (even if you didn't, and just used the same ideas). Is having the code worth managing this risk?

Surely the useful stuff you got from writing the code is not the exact syntax; it's the knowledge you gained. It's probably not worth dealing with all this legal stuff.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
Oleksi
  • 11,874
  • 2
  • 53
  • 54
  • 9
    It's not a bad idea, unless there are strict security checks at your office (like disallowing email and pendrives). Nobody is going to search through your home computer anyway, and it's understood that developers take knowledge away from their past jobs. You cannot prevent that, and it would be unreasonable to do so, whether the code is "remembered" or copied verbatim. What you _can_ do as an employer is enforce no compete clauses or NDAs or whatever legal mechanism is available in your country. – Andres F. Jun 25 '12 at 17:17
  • Technically, unless you signed it over when you joined, you own the copyright to the code you produce. – Malfist Jun 25 '12 at 17:30
  • 1
    @Malfist: I'm curious how that works when you are doing maintenance work on large, pre-existing projects. Do you own the copyright only to the lines you modified to fix bugs? Is it possible to isolate individual lines (or just *pieces* of lines, as shown by a diff tool) of code for copyright? – FrustratedWithFormsDesigner Jun 25 '12 at 17:34
  • @FrustratedWithFormsDesigner, I am not a lawyer so I don't know. I do know that if you're the sole developer, and they didn't make you give up your copyright, you can take the code with you when you leave (I always do). They still get to keep it, but so do you. I would assume, that since you didn't create the entire code base, you only have the copyright to the lines you produced. – Malfist Jun 25 '12 at 17:41
  • 14
    @Malfist No, you don't. IANAL, but it's pretty well established that, in the US at least, the work products that someone pays you to create are their property, not yours. See [work for hire](http://en.wikipedia.org/wiki/Work_for_hire) in Wikipedia. – Caleb Jun 25 '12 at 17:43
  • @Caleb, their property, your copyright. Example: Freelance journalism. I can sell my article to the AP, and they can reprint it and do whatever they want to with it, but I still own the copyright to that article. – Malfist Jun 25 '12 at 17:44
  • 5
    @Malfist Again, no. See the link in my previous comment. – Caleb Jun 25 '12 at 17:45
  • 2
    @Caleb: The Wikipedia article you linked specifically states that there are conditions that must be met in order for a software work to be considered a "work for hire." This is why all agreements for contract work should have a clause in them signing over all rights to the contracting entity. – Robert Harvey Jun 25 '12 at 17:49
  • @RobertHarvey Fair point. But even if there's a question as to whether the work in question is a WFH, do you really want to put yourself into a position where you have to argue that point? – Caleb Jun 25 '12 at 18:08
  • 3
    @AndresF.: "it's understood that developers take knowledge away from their past jobs." No it's not. Ask non-technical startup founders and they won't have that "common" knowledge, and ask the legal department of a big company, and they won't either. Plus in many countries, the "non-compete" clauses Oleksi mentions do not even exist: they are implicit. You just don't walk away with IP, period. I can understand why you would and that it's not necessarily malicious or for profit, but it's definitely clear that you SHOULDN'T. – haylem Jun 25 '12 at 18:17
  • 4
    @Malfist: "if you're the sole developer, and they didn't make you give up your copyright, you can take the code with you when you leave (I always do)". Not sure your contracts reflect the majority of the reality though. Most contracts for software hire will explicitly say that you need to deliver all source and binaries, and pass ownership and copyright over to them. Which is pretty normal for freelancing. You can negotiate that, but it's pretty much de-facto clauses that I expect to see in contracts (both for internal or freelancing contracts). – haylem Jun 25 '12 at 18:19
  • 1
    @Malfist - in my jurisdiction, if you develop the code in company time, or as a consequence of your employment, the company own the IP. Likewise, the 3 elements that I developed in my own time, for my own purposes, that my current employer uses, is entirely my property. I advocate taking selective copies of your code (for reference), but it's important to be aware of the legal implications in your jurisdiction. – cjmUK Jun 25 '12 at 22:28
  • 4
    Sorry, maybe I'm being obtuse but how would an employer ever find out that you have a copy of your old code? It's hard to imagine a position where your personal computer is being examined for old code, and even less likely that you wouldn't have enough prior notice to destroy it. The only possibility is that looking at the code might influence you to write similar code again, but this is easily preventable. Chances are that the new problem and the time gap will foster a noticeably different solution anyways. – ankit Jun 25 '12 at 23:22
  • @AndresF.: So you're saying it's not a bad idea *because you'll probably get away with it*? Wouldn't the same argument apply to taking copies of any data owned by your employer, whether you contributed to it or not? – Keith Thompson Jun 26 '12 at 02:04
  • 1
    @KeithThompson Yes, of course. I don't see that it's that bad, or bad at all for that matter. Certainly, employers factor this in (which is not the same as "willingly tolerate"; they simply know it's unavoidable), which is why they'll find other ways to make sure you don't compete against them. Usually this "theft" is done to have a reference of the _structure_ of a project (e.g. how to configure or organize something using a given framework) and less about the _actual code_, because let's face it: 90% of us is coding boring, uninteresting stuff not worth stealing in the first place! – Andres F. Jun 26 '12 at 02:59
  • 1
    @KeithThompson I'll agree if you're working for a military contractor, a bank, or any high-security project, what we're discussing is a _terrible_ idea, and likely to get you in trouble. But most of us are working in boring web apps or CRUD stuff or other soul-crushing projects where there is not much worth stealing anyway. Hardly rocket science! – Andres F. Jun 26 '12 at 03:03
  • 5
    Let's hypotetically consider a developer who remember any single line he wrote during his career. Would it be illegal if he used this memory while working on future projects? Why are you making distinctions between remembering your code and saving a copy of it in your private hd? If you're allowed to take example from your experience you should be even if it's written in your notebook instead of being stored in your brain. And if you're not allowed to re-read your old code, that you saved in your PC, then you shouldn't be either allowed to "remind" it, which obviously doesn't make sense. – Nadir Sampaoli Jun 26 '12 at 07:21
  • @AnkitSoni If your old employer sues your new employer (e.g. Google vs. Microsoft) your computer could definitely be searched if either party claims that you have code. Moreover, if it's found that you deleted the code before it could be examined, you could go to jail for obstruction of justice. – quanticle Jun 28 '12 at 19:59
36

It's not uncommon.

I have a copy of almost1 every piece of code I've written professionally, and certainly all the code from my current projects, regardless of who wrote it2. Along with the code I have a huge pile of legal paperwork clearly defining what I can and cannot do with it. Just having the code is not the same as trying to profit from the code.

That said, it's a legal issue, and legal issues tend to be extremely complicated and localized. If in doubt, you really need to talk to a lawyer. I may keep my code around, but I'm 99% certain I won't get in trouble for doing so.

1 What's missing is mostly what I didn't care to archive. Only one small project's code is missing because of legal reasons.
2 Nature of the projects and my role in them, I'm one of the guys that need to have at least an idea of what goes where, even if I wasn't involved in building a specific module.

FrustratedWithFormsDesigner
  • 46,105
  • 7
  • 126
  • 176
yannis
  • 39,547
  • 40
  • 183
  • 216
  • 1
    It probably still is illegal if one of the papers in that pile explicitly says that you shouldn't copy code or any IP and take out of the grounds of the company's premises. – haylem Jun 25 '12 at 16:47
  • 4
    @haylem I'm _never_ in the company's premises ;) – yannis Jun 25 '12 at 16:49
  • 3
    yet I'm sure you know what I meant, and that it probably doesn't matter much where you physically are :) – haylem Jun 25 '12 at 16:52
  • 1
    Do you really want to risk a legal battle with a company over this? Their lawyers can spin this is a lot of ways that make this questionable (like a violation of your NDA or Non-compete clause in your employment contract) – Oleksi Jun 25 '12 at 16:53
  • 3
    I heard one developer speak at a WordPress conference and he said something like "If I do contract work for you I make sure you know that you own the code I write for you, but that doesn't mean that I haven't learned anything new by writing your code." – programmer Jun 25 '12 at 16:56
  • @Oleksi Did I fail to mention I have a huge pile of legal paperwork clearly defining what I can and cannot do with it? No, I didn't ;) I'm not risking anything by keeping archives of old code around... If we get into "lawyers can spin this" territory, then, well, lawyers can also claim that I had the code, used a form of it in a new project, and then deleted it. Also having the old code around carefully archived can be used to prove that my new code is _not_ copying my old code... – yannis Jun 25 '12 at 17:07
  • @YannisRizos: Do you mostly do free-lancing work? I would guess that in that case it's perfectly fine to have copies of the code because you are the original (and probably *only*) developer of it, and if they ever call you back for maintenance work you would *have* to have the code available. – FrustratedWithFormsDesigner Jun 25 '12 at 17:22
  • @FrustratedWithFormsDesigner I do mostly freelancing work past couple of years. Before I was a traditional employee, and still kept my code after moving to another company. Always with the proper legal documentation, though, and thanks for emphasizing that in the answer. – yannis Jun 25 '12 at 17:24
  • Use truecrypt and have some illegal material in your hard drive, so that you are automatically protected by the Constitution against being forced to produce the password since that would make you incriminate yourself :) – Andreas Bonini Jun 25 '12 at 17:36
  • @YannisRizos That all seems fine since everybody knows and you've got the paperwork to prove it. Wouldn't you agree, though, that having all that legal documentation is probably very uncommon? – Caleb Jun 25 '12 at 17:37
  • 3
    @Caleb Having the proper documentation may be uncommon (I don't know), however I don't think keeping copies of the code is. I just happen to have both ;) – yannis Jun 25 '12 at 17:41
  • 2
    @Krelp, encryption keys, like keys to safes can be compelled via a subpoena. – Malfist Jun 25 '12 at 17:43
  • @Malfist: not if doing so will incriminate yourself (due to the fifth amendment). There is a legal precedent for this. http://blogs.wsj.com/law/2012/02/23/court-fifth-amendment-protects-suspects-from-decrypting-computers/ . So all you have to do is keep something illegal in your hard drive, and automatically you cannot be subpoena'd for the key. – Andreas Bonini Jun 25 '12 at 18:37
  • @Krelp, that attempt failed: http://www.computerworld.com/s/article/9128920/Judge_upholds_efforts_to_compel_individual_to_decrypt_drive_in_child_pornography_case – Malfist Jun 25 '12 at 18:55
  • @Malfist: your link is from 2009, I have here a federal ruling http://www.ca11.uscourts.gov/opinions/ops/201112268.pdf dated February 23, 2012. This ruling stated that the defendant isn't required to provide the encryption key. – Andreas Bonini Jun 25 '12 at 19:52
  • 1
    @Krelp - why are you quoting US law? A fair proportion of us do not live in the US. I appreciate your sentiments, but this is an international forum, and you need to be mindful that some parts of the world do things differently. – cjmUK Jun 25 '12 at 22:31
  • Regardless of where you live, you can simply claim you don't remember your hard drive's password. Extremely unlikely, but what, will they read your mind? – Camilo Martin Jun 25 '12 at 23:53
  • @Camilo: not even that unlikely. Usually they get your hard drive and do nothing with it for a couple of years and then they ask for the password.. Forgetting it after not having used it for years is very possible – Andreas Bonini Jun 26 '12 at 12:43
  • @Krelp Now I got very curious about what they do with it if it's encrypted and they don't have the password (and the suspect does not remember it). Plus, I thought only on my third-world country police stored hard drives related to a case for two years without doing anything. – Camilo Martin Jun 27 '12 at 11:20
29

I see your arrested Chinese man and raise you with a "code is not property, therefore cannot be stolen".

Ref.: Code 'not physical property', court rules in Goldman Sachs espionage case

With that said.

  • Do I keep code I write? Absolutely.
  • Do I keep full projects? Absolutely.
  • Do I make sure I thumb drive my code from my work PC onto a home machine? You betcha!
  • Do I ever re-use that code at another company or in a personal project. Nope.
  • Do I often look at old code and go WtF!? All the time.
Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
TimSonOfSteve
  • 21
  • 1
  • 2
  • 14
    +1 Hehe, a nice, honest answer. The best part is that it's true you actually _never_ go back to old code. You just feel safer if you take it with you, never to look at it again in your life! – Andres F. Jun 26 '12 at 03:07
  • Wasn't this a major issue in the recent Oracle v Google case too? – robertc Jun 29 '12 at 13:05
  • 1
    Totally agree with you. I'm doing the same. It's a very good reference. – Andrea Girardi Jul 03 '12 at 08:11
  • 2
    *code is not property, therefore cannot be stolen* is a terrible summary of that Goldman Sachs case. The Russian guy was acquitted, not because he didn't do anything wrong, but because his theft didn't qualify under the law the prosecutor was trying to use against him. That didn't mean he didn't violate his contract with GS, or violate IP laws. Please read the article more carefully, and maybe take in some of the comments below. – Nate Feb 16 '13 at 03:31
  • Related article: [Did Goldman Sachs Overstep in Criminally Charging Its Ex-Programmer?](http://www.vanityfair.com/business/2013/09/michael-lewis-goldman-sachs-programmer). This is also a good example that even if you win in the end, the legal battle itself can hurt a lot. – CodesInChaos Jun 07 '14 at 16:41
10

Here's a simple question for you. Go to your boss and tell them: "I have a copy of all code I wrote while I worked here. Only code I wrote, not other peoples. This is for my own education, and I will never give it out".

Their next actions will dictate (yes, that word does exist in North America/World) if you are in the wrong or right in their eyes.

Regardless of your own "ethics", you work for an employer. If they deem that what you are doing is wrong, then it is wrong based on their ethics. As they pay you, and you are employed by them, then it is in your court to either agree with them, or disagree, which could get you fired.

Now it's a question of integrity. I've let a previous employee's take some of our code, but I have vetted all of it first.

Just because you believe you are in the right, does not make you in the right. Usually software developers sign contracts when they are employed. If you signed one, you need to live by your word.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
Ryan Ternier
  • 321
  • 1
  • 8
  • "while I worked here" implies the person in question is no longer your boss. If it's your former boss, why would you care to ask him? – Alexander Jun 30 '12 at 19:53
  • Why? Contracts? Integrity? – Ryan Ternier Jul 03 '12 at 15:42
  • You can keep code you wrote while not using it for anything and still both uphold your contracts and keep your integrity. – Alexander Jul 04 '12 at 08:27
  • 2
    If you sign a contract that states all code is the property of your employer, you taking it home is a violation of that contract if they do not know that you have it, or gave you permission to have it. It's effectively theft. Yes it's "code", digital 0's and 1's, but in most cases it's black and white. – Ryan Ternier Jul 05 '12 at 16:39
  • It's the classical "piracy is theft" discussion. – Alexander Jul 06 '12 at 06:18
8

is it uncommon for developers to keep a personal copy of the code they wrote

Answering the question directly, I'll say in my experiences this is uncommon. The exception to this that I have seen is people who do a lot of freelancing and they keep the code on hand for their client's future maintenance and enhancement projects, and I would imagine that this is clearly stated in the contract (though I am not in the habit of reviewing my friends' freelancing contracts, so who knows). People I know who work in larger companies have never admitted to keeping code from former employers.

I know I wouldn't because I can't think of a single situation where it would be useful (not to mention that I'm pretty sure my current employer prohibits such things - I would just have to look up the documents to be certain). The code I've written/fixed is usually so specific to a particular business requirement that I can't imagine it ever coming up again in the future in such a way that it would be easier to re-use the old code than write new code.

FrustratedWithFormsDesigner
  • 46,105
  • 7
  • 126
  • 176
  • 3
    As a freelancer, I'll keep all code around. Reusing it is extremely unlikely, but to eventually mantain, I'll keep it (for example if the employer hires somebody else that screws up the code and hires me again to fix it). – Camilo Martin Jun 25 '12 at 23:48
  • 1
    In my freelancing I find there's a lot of code that is commonly reused. How many times do I end up writing the same user login code before I just reuse it. While I keep code around for maintenance, the common areas of code are typically copied. If I've found some code that is essentially the same between two projects, I make a copy of it in a generalized form and I'll copy it into other projects as needed. – CLo Jun 27 '12 at 15:13
8

Back in the day it was common for developers to have their personal library of routines that they would use to solve problems at the current job. The source would stay behind when the developer left, but any enhancements also went with him.

This resulted in a win-win situation. It was also just a subset of all the code written.

Of course most of what was in personal libraries would be in standard libraries today.

Jon Strayer
  • 666
  • 5
  • 7
  • In some environments, there is a clear delineation between Library or Component code, or Classes explicitly designed for reuse (parsers, etc) and those which are Problem Domain specific. The code which is problem domain specific (XWare's major inhouse app or commercial entity) might not be useful outside that place, but the low level or reusable component/libraries may indeed be very useful indeed. – Warren P Jun 28 '12 at 22:31
6

Under an employer to employee relationship in most parts of North America it is illegal to transfer or transmit digital material (i.e. source code) from your employers equipment without prior legal authorization from the employer.

Part of the legal laws relating to the definition of an employee in the work place, is the description that the employee does not provide his/her own working equipment unless otherwise stated in the employee contract, with exception to trades which require the employee to purchase their own equipment (i.e. construction worker).

Most employment laws in North America define the employer as the principal risk taker in an employee to employer relationship. The employee is paid for his/her time while the employer provides materials, equipment and controls the work related activities of the employee.

At what time during this relationship does it make it OK to steal valuable material from the employer, who has paid for and taken risk in having said material created?

The key problem with this was the question "source code that you wrote?". No sir, it is not you who wrote it. Under guidance of your employer it is them who wrote it. You are just the hired hand who typed it out. There is no court in North America that will side with you should your employer take legal actions to secure their property. Just copying the source code to a USB thumb drive can get you into hot water.

With that said, if an employer allowed you to use your own equipment (i.e. laptop) or transmit the material, then it's a different matter. The employer must notify you upon termination that any materials should be returned/destroyed.

Just thought I would post this answer, because it seems like some people thought this was a gray area. I really don't think if you're a developer, that you should be going around the Internet posting that you keep copies of employer's materials. I mean, you clearly already knew the answer to this question because you created a new member account just to ask this question. ;)

Sinan Ünür
  • 101
  • 4
Reactgular
  • 13,040
  • 4
  • 48
  • 81
  • *The employer must notify you upon termination that any materials should be returned/destroyed.* Is this really true ? Is the employer under legal and/or contractual obligation to do this ? – Radu Murzea Jun 26 '12 at 14:08
  • The employer is not under legal obligations to do this, but he can request at anytime that any materials belonging to them be returned from an employee, unless an agreement between the employer and employee exists that allows the employee to keep said material. – Reactgular Jun 26 '12 at 14:47
5

I've done this in the past a few jobs ago.

However I've never once gone back and looked at it. I've occasionally reused ideas and things I learned but I've not once found a reason to go back and look at the code.

So I wouldn't bother any more. It's legally dubious, and I've never actually found it useful in practice.

JohnB
  • 1,231
  • 2
  • 8
  • 10
4

Sure. I like to keep a copy of all the work I do - whether it's writing code or otherwise. Call it a scrapbook, if you like. Breaking the rules? Perhaps.

The comments about competitive advantage are irrelevant unless your next employer is a direct competitor. If you move from a phone company to a software house, or from a game developer to a database developer, it doesn't matter. If you're actually planning to reuse code - well, that's a different story.

Interestingly, you often hear about web developers bringing a "box of tools" with them, with a standard set of JavaScript libraries and CSS stylesheets. But I haven't seen that mentioned here.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
Steve Bennett
  • 3,419
  • 4
  • 20
  • 24
3

I have just recently deleted all the old code I kept from my previous employer. I only kept pieces of code that I thought were good for future reference. I've actually found that I've moved on considerably since I left and I've never referred to the old code. I've found/discovered/learnt far better ways of solving the same problems.

It was a nice little trip down memory lane though :)

Antony Scott
  • 137
  • 6
2

I think there needs to be a distinction between a design-pattern and actual code (copying line-by-line)

Writing down some psuedocode something like - this is a great way to lazy load X in Y is one thing. Writing down all the code is something else.

ist_lion
  • 3,422
  • 1
  • 22
  • 23
1

For a different number of reasons, like working from home, you might as well already have a copy, and I for one wouldn't go deleting these after a job, why do that? It doesn't go against my beliefs or something.

But, regarding using it, it is not so useful as a blog post!

Bottom line: write your code, blog about the problems you've faced and how you solved them (especially when it's generic and broad stuff), and don't mind to keep a (possibly encrypted) souvenir from the last job.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
1

In finance the CFA addresses this issue. You are not allowed to take information related to clients or your work for the company (in this case code). But nothing prevents you from memorizing what you can and then writing it down later.

Not sure how legitimate that is, but I think your best bet is to leave your source code but write down your ideas and how you did it as soon as you get home. Stealing is stealing and in court all they are trying to find out to decide is if you copied the code or not.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
Lostsoul
  • 403
  • 2
  • 9
  • Keep in mind some employers will make their damn best to _stop you_ from "writing down your ideas" when you get home. The lose scenario for them is not copied code, but competition against them -- and for that, ideas are far better. Not sure if it's enforceable, but some try bullying you into thinking they own any ideas you may have during work hours. – Andres F. Jun 26 '12 at 03:10
  • 1
    @AndresF. I once worked at a hedge fund that tried to prevent this. They honestly could not prevent it so they made people sign non-compete contracts and paid for them not to work for 1-2 years after they resign. Although extremely expensive(you are paying 2 years salary to someone who doesn't work for you), it makes your knowledge stale when you leave and useless as competitive threat. – Lostsoul Jun 26 '12 at 03:34
  • +1 for ideas only and not the code. Was involved with a company who sued an ex-programmer for stealing code and selling a similar product. The judge ruled that because the bugs were identical he must have stolen the code. – jqa Jun 26 '12 at 14:27
  • I've seen many employers require a new employee to agree in writing that they will not engage in other business activities while employed by the employer, and any other projects the employee does on the side are also property of the employer. I think this subject in it self is a whole other issue, but these agreements are there in most employment contracts. – Reactgular Jun 26 '12 at 15:00
  • @MathewFoscarini I agree. At my firm we require employees to have written approval before engaging in anything that they receive a benefit from(includes side projects, charity work,etc..). If you fix your neighbors car and he buys you a beer, it would quality although employees realize we most likely wouldn't pursue it. – Lostsoul Jun 26 '12 at 16:36
  • @james I have seen people take their ideas write it down..go on doing their work and then when they need that idea months or years later they realize there are better ways to do it. So if your still working, even old code should get better. I think the bugs being identical is a pretty good approach. – Lostsoul Jun 26 '12 at 16:37
  • @Lostsoul - lol, I've had to sign agreements for not doing projects on the side, and I personally don't agree that employers should do this. I think what you do at home on your own, is your business and not theirs. As long as it's not a competitive thing, but some employers want control of everything. – Reactgular Jun 26 '12 at 16:43
  • @MathewFoscarini its dumb, but I think its a lawyer decision that seems smart at the time. My thought is why would you want to prevent employees from learning/being creativity on their own time? The knowledge comes back to you without you having to pay. – Lostsoul Jun 26 '12 at 17:06
1

If you are saving your code with the goal of reusing it later, I have two issues with that:

  • If the code is domain specific, it is probably also proprietary. Anyway, no two businesses or problems are exactly alike and trying to fix one problem with the solution for another is not a good pattern.

  • If the code you are saving solves a common problem, you should question your approach. Why are you spending a lot of effort to solve a common problem when they are likely existing (and better) open source solutions?

    If you believe that you have the best solution to a common problem, you should really try to share you code publicly on a public repository and/or code blog when you write it, not keep it to yourself. Your boss should not object to sharing a generic library or force you to reinvent the wheel (if he does, find a new job).

If you are saving your code because you want to show it to a potential employer or to improve your skills, I suggest you contribute to an open source project instead.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
  • 1
    The second item assumes that there would be an open source solution, which is far from certain. But most importantly, some of the code I've retained is code that demonstrates how I've used 3rd party components/services. For example, if I develop a decent payment solution that integrates with Paypal, I'll take the code to refer to later - so I don't need to re-invent the wheel next time. – cjmUK Jun 26 '12 at 12:36
1

With your employer's permission publish the neat re-usable code as open source projects for other people to use. Then your employer can also benefit from contributions by other people to this code.

This way you can keep the code legally, build a public portfolio of code you've written and the code can benefit other people.

Sarel Botha
  • 287
  • 1
  • 5
0

I haven't yet kept any code that I've done for employers. Freelance stuff I've kept (it can be hard to support a client if I lose my code).

However, I'm considering keeping the code that I have made for this employer. The reason is that I'm a web developer, and I've developed a lot of client-side things that look rather pretty. I didn't design them, but I implemented them and often came up with the idea. I would like to keep a copy of this stuff to build an online portfolio. As we all know, sites don't last forever, so I can't realistically count on my work staying online. Having a backup copy would allow me to have a portfolio online.

I know that designers often keep copies of their work (even if it was work for hire) for portfolio purposes.

I'm not sure what the legality of this is (it is not explicitly mentioned in my contract).

cjmUK
  • 705
  • 1
  • 6
  • 13
  • 4
    `but what are your thoughts on this?` Please don't openly invite a conversation on your answer by introducing another question. You tell us if we should keep a copy of all the code we write. You can improve the answer by editing it. – maple_shaft Jun 26 '12 at 11:07
  • 1
    I think there is a difference in keeping the original source files (in your case graphics files like .ai or .psd) vs having a screenshot of the final product for your portfolio. You should still ask your employer for permission, but they should be more agreeable to the latter. – Sarel Botha Jun 26 '12 at 18:01
  • Because the work is often interactive in nature, a screenshot is not going to cut it for a portfolio. That would only show the design (which mostly is **not** mine). I could take a screencast of me using the work in question, but that still doesn't convey things like latency, performance, cross-browser compatibility. – Xandor Schiefer Jun 26 '12 at 18:55
0

Well, for developing the business logic for my company, I can't keep the code because it's illegal & personal property of the company. As the developer, I know how to develop that logic, so I can keep that logic in my mind. Basically by default it is stored in your mind, and if you need it next time, then automatically you should implement the logic/better logic than the previous one. It's the human nature & intelligence. :)

But the issue creates when you develops some utility logic, they are re-usable & always important, you may need it frequently in different projects. So you should want to keep it with you.

I have an alternate solution to that. Just create a without source/documentation JAR for thos utilitiess and add it as an external third-party JAR in your project. Probably by doing this you can confirm your responsibility as well as your self satisfaction that you have the code ;)

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
  • 1
    The other approach for this is that when I encounter a useful/reusable bit of code that I'd like to "take with me" ... I simply go home, and write a blog post about the particular API or technique that has interested me. This blog post of course does not reference my employer, nor does it use, line by line, the code written on my employer's dime. – Joel Martinez Jun 28 '12 at 21:41
  • If there are rules, then their must be an anti-rule. Which you can use in favor of you. Their are different techniques to achieve this. Most important thing is- keep the job clear. – Soumyadip Das Jun 29 '12 at 08:00
0

I don't keep code for a simple reason: The company paid me to write the code for them. I give them my code, and they give me my paycheck. The guy who made my lunch, does not get to keep part of it for themselves, why would code be different?

Also, the point made before, I walk out of job, all those headaches stay there, new job, new start, but with a bit more experience and understanding of the types of problems in that old job's domain.

Peter Mortensen
  • 1,050
  • 2
  • 12
  • 14
Scott S
  • 275
  • 1
  • 5