Take the 2-minute tour ×
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It's 100% free, no registration required.

This is an hypothetical question.

In order to gain some practical technical experience, I have started off building a software from scratch whose excellent open source option already exists.

I have examined the features of that open source software and I plan to incorporate them in my software to gain practical experience of programming. I have no plans of peeking into the source code of the already available software.

But, now when I think of putting my work in my resume, I guess the interviewer might think that I have copied the open source project and am just claiming to be knowledgeable about the same for the heck of it!

  • How should I deal if they hint anything of that sort?
  • Is there a way to prevent any interviewer from thinking that I might have cheated?
  • Am I supposed to initiate the talks or do I have to wait for their reaction first?

  • What if they say, if your software is not *better than the already existing one then why should one even look at it?

share|improve this question
2  
Obvious answer. Make your project open source as well. –  Simon O'Doherty Feb 8 '13 at 8:06
    
@SimonO'Doherty How does that help? Should I tell him to download my software and compare the code for himself? –  TheIndependentAquarius Feb 8 '13 at 8:08
1  
Well, yes. That's how open source works. If both projects are on GitHub or something similar, it's pretty easy to browse the code without download anything. –  XåpplI'-I0llwlg'I - Feb 8 '13 at 8:17
1  
@JamesQuall Okay, but in interview he's not going to bother with browsing the code (?). Secondly, he might even ask, if your software is not better than the already existing one then why should one even look at it? –  TheIndependentAquarius Feb 8 '13 at 8:18
    
@AnishaKaul If they are any good they most certainly will look at the source code! (I say this as someone who has just been hired partly on the basis of a similar project...) –  Nico Burns Feb 8 '13 at 19:49

4 Answers 4

up vote 25 down vote accepted

Your question contains the answer to what you should do. You say

In order to gain some practical technical experience, I have started off building a software from scratch whose excellent open source option already exists.

So put that in your resume! So later when you say

But, now when I think of putting my work in my resume, I guess the interviewer might think that I have copied the open source project and am just claiming to be knowledgeable about the same for the heck of it!

That can't be a reasonable conclusion if it explicitly says in your resume something like:

As an intellectual exercise, I am developing from scratch Project Q, which is a {type of software} which I hope will one day have a feature set similar to {well-known open source project}

This invites only positive questions such as:

  • Why this {type of software}? What interests you about it?
  • What problems have you encountered while developing it? How do the solutions you came up with compare to the solutions in {well-known open source project}?

And so on. You could even use such questions as an opportunity to show your own skills:

With problem P1, I struggled but eventually came up with an approach which, while not as elegant as the solution in {well-known open source project}, has the same performance. However, with problem P2, I had a flash of insight while working on it, and was pleasantly surprised when I checked against {well-known open source project} to find that I had independently come up with a widely-ackonwledged best practice.

Only say such things if they are true, of course...

share|improve this answer
    
Also, the weight of this is only proportional of how much of a programmer is the interviewer . . . –  jsedano Aug 29 '13 at 17:34

In this situation the best solution is to have your project open source as well. This allows the interviewer to review your code at their leisure, and in the unlikely event they think you stole the code, they can compare against the other project.

They would not hint at you stealing code (unless it was plainly obvious), but they may ask you why you implemented a certain feature and how it may improve on the existing project.

If it doesn't, you can say you built it for yourself to fix minor annoyances, and/or to improve your coding skills.

If you don't want to go the open source route, they are still likely to ask you those questions. They would not accuse you of stealing code, because they would have no proof and open themselves to litigation in the interview.

share|improve this answer
    
Making the project open source is indeed a great idea. –  TheIndependentAquarius Feb 8 '13 at 9:54

In my opinion, a feature by feature clone of an existing product wouldn't weigh very heavily on a resume anyway, so an interviewer is unlikely to care how much of it you copied or not.

Programmers are always wishing they could go back and rewrite old software better. Were I interviewing you about your project, I would mostly want to know what you changed from the original, and why. As a bonus, in addition to looking better on your resume, if you have enough features to differentiate the project, you don't have to worry about being accused of plagiarism.

It wouldn't have to be huge differences to interest me as an interviewer. For example, one of my current hobby projects is a calculator. It's been done thousands of times, so why bother? In my case, the last straw was when I wanted to do exponentiation in hexadecimal mode and my existing calculator software wouldn't let me. I looked at hundreds of calculator programs and gathered a list of features I wanted. None met all my requirements, so I decided to make my own.

Also keep in mind that professional programmers rarely get to start from scratch. Contributing significantly to an existing open source project would give you experience much closer to what professional programmers typically do on a day to day basis.

share|improve this answer
    
I somehow do agree with you, but I also do think that it won't be fair to compare a calculator with RSyslog: rsyslog.com What is your take on this? You weren't comparing, I know. –  TheIndependentAquarius Feb 9 '13 at 1:18
    
The project itself is irrelevant. Find something you don't like about RSyslog and improve upon it. –  Karl Bielefeldt Feb 9 '13 at 4:05
    
I get you point. :) –  TheIndependentAquarius Feb 9 '13 at 5:45

Just so you are clear, "open source" does not automatically mean "copy at will". Even the most permissive open source licenses (e.g. LGPL, Apache, MIT) have strict proscriptions that you cannot use the software under license without attributing it's source. What does this mean? Generally, it means that while you are free to use, derive or copy the whole or parts of the project you have to include the original license and any copyright notices along with your derived work.

For example, if you take part of the source-code from an Apache-licensed project, make some changes and then include it on your project, the source-code still has to include the original license and copyright text in the source-code file.

This also answers your question. As long as you remain in compliance with the open source license, you should have no problem discussing it openly with a prospective employer since all derived and/or copied parts will have clear notices referring to the original creator/copyright holder, indicating what is original and what is derived/copied.

So, does copying or deriving from existing sources make you a less capable developer? No, it makes you a smart developer as you demonstrate that you're clever enough to not reinvent the wheel. As long as you can motivate why you choose to use certain pieces from other projects, what added value they brought and that you fully understand how they work.

It would also be beneficial if your derived work is an improvement on the original, i.e. adds new functionality or does the same thing but better somehow. Either that or a statement that you did it for pure academic purposes, along with an idea of what you learned from it.

share|improve this answer
    
In general it is best to always attribute the code - 1. it cost you nothing while acknowledging the original author and 2. in certain jurisdictions the author cannot resign from its 'author's right' (droit d'auteur) and acknowledgment is cheaper then lawyer specialized in international copyright (even if author states it is public domain in reality it is not and technically you might be in trouble). –  Maciej Piechotka Feb 8 '13 at 13:50

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.