Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

When writing a resume, should I be concerned that certain open source projects I've created might be a hindrance to me because they would be perceived as reinventing the wheel? I've created a few open source libraries that might be perceived as such by hiring managers, because there are much more established tools that perform similar tasks.

I have my reasons for wanting to start from scratch, but they're virtually impossible to explain on a resume and might be mildly controversial among techies. Basically, these libraries are written in D, and there was no D library that did what I wanted. I felt that creating bindings to libraries in another language instead of starting from scratch would constrain my ability to take advantage of D-specific features too much and make the libraries too brittle and hard to get up and running.

On the other hand, these projects are related to the domain I'm applying for and would be a good way to show my domain knowledge. Should I put them on my resume or leave them off?

share|improve this question
    
Did you really "reinvent" the wheel, or did you make a specialized wheel that works better for some problems you're solving? –  Philip Dec 14 '11 at 17:34
    
If you reinvent the wheel in a learning context, it's good, what might hurt is reinventing the wheel in a production context (polishing or improving is good in a production context) –  JF Dion Dec 14 '11 at 19:15
1  
"Basically, these libraries are written in D, and there was no D library that did what I wanted". Doesn't sound like it's "virtually impossible to explain on a resume ". What's your question? It seems like you have a solid explanation that fits in two sentences. –  S.Lott Dec 14 '11 at 22:20
1  
Virtually all commercial software development (in terms of numbers of developers and amount of time) is building wheels that are pretty damn similar to wheels that have been built before, so I wouldn't feel too concerned about having wheel-reinventing projects on your CV. –  Carson63000 Dec 14 '11 at 22:24

3 Answers 3

A CV is an ad - put anything you have done that is good, then anything you have done that the employer might care about.

Personally I'm just looking for any evidence that you have touched a computer and come out on top!

Especially for new graduates I would be overjoyed that you had done anything on an opensource project - it shows you can write code and much more importantly interact with others and read code.

share|improve this answer
    
Also remember that the goal of a CV isn't to get a job, it's to get you an interview. –  Bryan Oakley Dec 14 '11 at 18:43

We've all reinvented the wheel at some point. I've done a lot of software projects simply because I didn't feel like spending $x for something that only fit 80% of my needs.

As a manager, if I liked your resume, I might glance through your open source projects to see what types of projects you've been working on, as well as your coding style. If I were to bring you in for an interview, I would go further; doing a more in depth review of your coding style, and I would definitely ask you about your projects, especially your motivations for creating some of the projects, and why you felt that these particular libraries needed to be done over. If you had TOO many open source projects, I might be worried that you weren't going to be focused on the tasks at hand, although too many open source projects is obviously a subjective determination.

So, think of it as a double edged sword. These projects can help, if you have a good reason for doing them, and they are well written. If your justification for writing them is "all other developers are morons," I would probably take a pass on you.

share|improve this answer
    
I find that's more common in none OS developers. "All that free stuff is rubbish - I can write a much better version control app myself" tends to come from people who haven't worked on OS projects –  Martin Beckett Dec 14 '11 at 17:53
1  
I don't think one needs "a good reason" to write some open source software. Many people crave experimenting with particular projects and technologies but are not able to do so at work, so they crank stuff out in their spare time, some chose to do it "in the open" (as open source). The vast majority of open source projects hardly leave the original developer's computer. That's OK. Like a diary, it is an opportunity for reflection and self improvement. Yeah, if someone says "I did it because all other developers are morons", that's probably a bad sign. But most r just folks who are highlyengaged –  Angelo Dec 14 '11 at 18:50
    
@Angelo - Obviously, these are all subjective criteria, and "a good reason" can be a pretty broad term –  Brian Hoover Dec 14 '11 at 19:16
    
@MartinBeckett: That's a funny example because it's basically exactly why Linus wrote Git :). You should watch his Google tech talk about it on Youtube. –  Tikhon Jelvis Dec 15 '11 at 0:31
1  
@tikhon - yes if you are Linus (or Knuth or Stallman) you are allowed to say that. That's an exception in my CV sifting algorithm –  Martin Beckett Dec 15 '11 at 0:35

I would always mention those project in my CV.

I would always mention those projects applying for a position for the following reasons:

  1. It proves that you are genuinely interested in the topic and probably has been interested for long time.
  2. It shows you experience in the domain of your application.
  3. There can be thousands reasons why you would like to invent your own wheel: another language, another format, a better optimization etc. Even the reason "I just wanted to try it on my own" would already do, especially in case of an open-source project where you don't have to optimize your performance against project budget!

Turn potential caveats into your advantages.

I would provide short description of your projects enabling comparison to established projects, something like "THis project implemented XXX as in project YYY, but has the advantage that ZZZ is implemented this way" etc. This way you show your knowledge of the existing established solutions and your awareness about those while implementing your libraries.

Hiring managers are normally non-technies and won't ask you about the reasons during screening or first (phone) interviews to avoid being engaged into a highly technical discussion. They would rather pick the key words from your resume -- those are the well-known and established technologies in your area (so maybe it is even a good idea to italicize them) -- and judge your resume just by counting them.

Whenever you see a technie on the other side of your interview table -- just don't hesitate to explain the reasons behind your decision to implement some libraries or tools. Even your ignorance about existing frameworks is absolutely pardonable -- now you know them, and even more -- you know how to re-build them from scratch. And you learned that all without being paid, on your own.

Even if the interviewing engineer has a completely different opinion about the same reason, the ability to discuss and to support your opinion is what is valued most during the interview. You can learn programming against existing frameworks in 2-3 weeks just by reading books and doing tutorials, but knowing how to implement from scratch will diminish this time to 2-3 days...

share|improve this answer

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.