Is Open Source Experience Overrated?

I'm a big advocate of learning on the battlefield. And that certainly includes what may be the most epic battle of them all: open source software.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2009/04/is-open-source-experience-overrated.html

I would never hire such an open source freak, because i would fear he spents his work time on other things, and discloses company work outside or take company sources and starts an open-source-project with it. We want to live from our work, and get money for our hard work. I never understand these open-source people, why they give away hard work for nothing only to be famous to other nerds.
If you have to offer something valuable, you deserve money for it. If no one will pay, it’s simply not worth your efforts.
They destroy markets without any sense, i will never assist such people. I should pay them money, and they spent it to kill markets - never ever. Go to north corea, they need such willingly morons :slight_smile:

(attention: a little bit of sarkasm and a little bit exaggerated, but with some truth in it)

As a hiring manager (and a programmer - not an HR recruiter), I believe, and tell people, that open source experience would be something I’d love to see in an applicant. But in the end, I struggle to get much information from most people who list this on their CV:

  1. I unfortunately don’t have much time to spend on hiring decisions, and to really look at a large body of someone’s code enough to evaluate it well can be time-consuming. The test, while limited, is a distilled way to get information on them in a short space of time.
  2. A large part of making hiring decisions is making a relative decision: how does this person compare to others I’ve interviewed? How do they compare to people I’ve hired, and how did those people work out? Using a standard test makes this relative decision far easier.
  3. It’s hard to know for sure exactly who contributed what code on many open source projects, without spending a fair bit of time to dig into it (e.g. by looking at revision histories of files). I’ve found in the past people who say they worked on a project, but when you dig into it, you discover the vast majority of the code was written by someone else and they just chipped in some bits and pieces. Even if you discover they wrote it all, it’s still hard to know how long they took on it, what help they had etc. A test in controlled conditions eliminates those factors.

The sad fact is that hiring in real life is fundamentally not a process of spotting talent in people. It’s a process of eliminating people who don’t have talent. You still end up with talented people, so it works out just as well for the employer. But it can end badly for some talented applicants who get rejected unluckily. This is because the cost of rejecting a good person is very small (you’ll find more), but the cost of letting a bad person through is enormous. And eliminating people can be done so much more efficiently.

The good news is, if you are talented, you just need to keep trying. If you’re just unlucky, it won’t stay that way forever. Don’t get put off by one or two rejections.

He probably used tabs instead of spaces on his coding test.

In my experience of getting interviewed, alot of times the HR Person / Recruiter never passes the Resume on to the Hiring Manager because they don’t think it meets the requirements. I think a lot of times the Recruiter doesn’t really understand the idea of Open Source, or the the Hiring Manager didn’t Specifically Say Open Source Experience in the requirements. So, consiquentially they don’t pass the resume on to the manager. This is really just as bad as someone requiring 5+ years of experience and not even considering you if you only have 4, or not considering you if you don’t have a degree even though you have 7+ years of experience.

I say, there are plenty of companies and jobs out there. Go find one that you’d really like to work for, that would also fully appreciate your skills. Or, alternatively you could always start your own company!

Slightly biased as we deal primarily with Open Source software, but my company looks extremely favourably on free software projects.

I can think of one particular employee who has worked out very well who wouldn’t have got the job without open source experience. His interview wasn’t the strongest, but the ability to see concrete examples of his work and just as importantly his interaction with other people swung it for him.

…How many open source projects labor away in utter obscurity, solving problems that nobody cares about, problems so incredibly narrow that the authors are the only possible beneficiaries?

Over the years, I’ve developed a serious bias against programmers who work in obscure languages (e.g Ocampa, Lisp, Haskell). It’s a little like a dog peeing on food he doesn’t want. Good or not, he just doesn’t want the other dogs to have it.

So unless the candidate’s work is created in a well commented C-form or VB-form language (Python and PHP and perhaps Ruby are popular enough to be exceptions), I tend to discount that candidate, not on coding ability, but on their ability to deal with other humans in the real world. Moreover, if the problem domain looks very narrow, and the candidate wasn’t paid to do it, I once again have to start wondering about whether the candidate can realistically set priorities.

As for open source, this is pretty dubious as an accomplishment. First, there’s no barrier to entry other than the ability to create such a project. Moreover, what did the candidate write, and what was rewritten? For all I know, the thing could be a clever forgery where the candidate knew just enough to answer some questions.

Could I ferret this out from source code check-ins eventually? Maybe. Do I have the time? Are you kidding?

So, Open Source? It can work for or against you. Choose your samples carefully.

the emailer wrote: One of the reasons I worked so hard on open source projects was to make job interviews easier.
Wrong reason for working on open source. Do programming because what you build helps you in some way. Share the source because what you write helps others in some way. Why bother programming for some business building something you yourself aren’t interested in?

I agree with Luke Halliwell about the potential difficulty of knowing exactly what work a person did on an open source project, how long it took, if they had help, etc. A standardized test does eliminate many of those questions.

But the problem with that sort of testing is it is frequently the gotcha! type where they are focused on some particular criteria, and if you don’t quite meet it (perhaps because you focused on some other aspect), you’re out. ie: Are they looking for efficiency? coding speed? correctness? cleverness? best practices?

So on the test, you might quickly write simple, clean but somewhat brute force code you can be very confident in that it will work first time through, with no bugs. Then, you get scuttled because it’s not the clever, efficient solution the interviewer expected.

Or, on the test, you might take your time, come up with a really efficient, but complex code and a class that provides a whole interface layer to the functionality. But then, you get sunk because the interviewer detects an off-by-one bug on one of your boundary conditions - you took a long time and your code still was buggy.

Unless you’ve already made your reputation (and there’s not many that have), you’re facing a multistep hiring process, in which your goal in each step is to get to the next step. Most places get too many resumes, and need to thin the herd quickly. They aren’t going to be fair about it, because being fair would cost them time and effort without obviously getting them better people. Bitch about that if you like, but live with it.

Your resume isn’t going to get you a job. You want it to be free of obvious reasons not to hire you, buzzword-compliant with the job description, and standing out from the crowd in some way or another. It needs to survive the nontechnical HR person and the hiring manager, both. Put OS experience on your resume unless you know it will hurt (there are people out there who are anti-OS, and in today’s economy you can’t afford to avoid the clueless). That way you probably get to the next step.

Now, the OP did get to the next step, the coding test, and blew it. Nothing’s going to help you if you blow a step. If you can’t pass the test, odds are you can’t code up to company standards. This may be incorrect, but nobody’s going to take the time to find out. There’s enough candidates that passed that there’s no need to waste time and effort on also-rans.

Eventually, if you get through all other steps, you get to the point where you tell stories about your exploits, and how you approached problems, and you can talk about your OS experience. You’ll also want stories about how you got along in close proximity with annoying people and how you coped with being told to do something you didn’t want to do, and those will more usually come from regular work rather than OS experience.

You might find a way to introduce some particularly good code you wrote, and if it’s OS you can legitimately do that. Never show code you don’t have a clear right to show, or break confidentiality with anybody previous. You don’t want to give the impression you might treat them badly.

Don’t expect anybody to go through an OS project, cold, figuring out what you did and getting an idea of its quality. That’s a good deal of work, and nobody’s going to do that unless you’re going to be hired anyway.

So, while the benefits are there, they are limited. Don’t count on them to get a job.

And never denigrate in any way the ability to fill out a time sheet and estimate completion times. Those are valuable skills as a developer in any sort of commercial application.

A sample of one company, and two recruiters?

I don’t mean to sound condescending, but hell, in this economy, you can’t give up that quickly.

Open source experience is not a silver bullet to get you a job.

Seems the OP expected that and deservedly crashed and burned.

Your value to the company you want to join is the deciding factor, period. Does having worked on OSS projects contribute to that? Peripherally.

I didn’t even mention my OSS experience in my interview, I only did when they asked me about it explicitly. I got my current job based on the strength of my interview and my performance in the test.

Sounds like OP needs to work on those…

I have sympathy for this guy’s position. I had problems last year, when recruiters would insist that they were only looking for experienced C# developers, and my 15 years work experience in C and C++ was not considered relevant.

However, I can see why some companies would be less impressed with open source work than commercial experience. The open source work would only demonstrate the strength of your coding skills, there are other aspects to working in a company, such as communications, team work, meeting deadlines, satisfying customers etc.

Also, considering the attitude that some OSS advocates have towards corporations, licensing, secrecy etc, it wouldn’t be surprising if some companies would look at someone working on such software with suspicion.

Yes, it’s part of your coding portfolio.

That doesn’t mean that your portfolio is good or anything.

Hate to say it but it sounds like the Interviewer(s) read more of Jeff’s stuff then Anon has.

Live coding test! How dare they?

Inefficient code, no big deal. After all they had 14 years of experience.

Open source project, nice deflection. Could have written all of the code, or, none of it.

Why didn’t they print some of it and show it to the interviewer as an example of their work.

Me thinks the idea of working on Open Source Projects is to get better at designing and writing code so YOU DON’T FAIL LIVE CODING TESTS AFTER 14 YEARS EXPERIENCE.

I remember Jeff pointing out an excellent blog post from Steve Yegge called Ten Tips for a (Slightly) Less Aweful Resume and the poor Anonymous user mentioned in this article should have read it before his interviews.

Particularly Tip#4: Avoid Weasel Words and Tip#5: Avoid Wank Words.

Putting his statement through the Wank-o-tron turned:

I am the architect of a couple of open source Java projects

Into:

I am the wanker of a wank of wank wank wank projects…

This reaction shouldn’t shock anyone. I think whether or not Open Source projects are to be considered relevant depends entirely on where you’re applying and who’s on the other end of the phone. I had similar experiences when speaking with recruiters and HR people (sometimes even ‘technical’ people). They are trained to look for keywords in your responses whether they be brands, languages or experiences. Did he just say ‘object oriented’ and ‘embedded’ in the same sentence?.. awesome, he’s our man.

If the people doing the interview are more technically savvy (like if you’re applying at a small game studio for a programming job where a technical lead is present at the interview) they may even know the open source projects you’re referring to and be impressed by it. But if you’re applying to Acme Consulting or Acme Telecom or Acme Computer Solutions or Acme We’ll-Take-Your-Money-For-Random-Computer-Technology-Work then it’s likely Open Source work will be completely irrelevant to them. What will matter to them is what they can say about you to their non-savvy clients.

Hi,

Jeff, sorry to say you’re incredibly idealistic. Or maybe my own experience leads me to other conclusions about those recruiters. Their answers have in fact no technical background check, that’s just bullshit.

Please, tell me I’m wrong, but most companies don’t care about great developers. In fact, a) they think developers are all the same, they only vary on the technology they use ; not on quality or productivity. 10x developers are unicorns that only exists in Fred Brooks’ mind. b) they don’t even know the difference between programming and configuring c) a developer only knows one language, one OS, one IDE. They want a specialist who did the very same thing every day for 2, 5, 10 years. d) what scares them the most is having a rebel among them e) THEY JUST WANT YOU TO FIT

And that’s the reason why they don’t want any of these opensource idealists, they just want single-minded zombies.

Maybe his code was crap? I can point to a number of Java Open Source projects where involvement would be something I’d try and hide…

About the anecdote.

it’s not because the guy made an open source Java project that he didn’t suck.

opps… I’m not the first one to say it.
I think it’s all part of this reality distortion field about open source that if it’s open source, it’s probably good.

IMHO it’s a bad road to ‘participate in an open source project’. What helps is participating in a project with other people you can interact with, in person, with a senior/mentor. Going actively in a project with remote peers people is just going to take a more time, which you’ll be wasting arguing pointlessly, emotionally, and waiting for email responses.

Now browsing open source projects to see how they’re structured, however, it awesome. Small ones are fun, but personally I enjoed Firefox and webkit are the best

Read Bruno’s comments above. It hits the nail on the head…