I sometimes feel very insecure when I read statements like this. I consider myself a good and a passionate programmer with "above-average programming skills", if there is such a thing. However, I have (so far) never been able to manage contributing to open source projects in any significant way. Sometimes I have been too busy with work projects, sometimes it has been a busy life at grad school, sometimes family, sometimes I have been plain shy, and so on. I have put together a bunch of great hacks at places I have worked, which sadly I cannot open source.
But I see dozens of people whom I know who are naturally prolific in their oss contributions, manage to attract a high number of twitter followers, etc. and I wish I were more like them.
Do startups really look at github contributions as the ultimate measure of one's tech chops or are looking for people who go that extra bit and make time in their schedules for contributing back to the community?
Relax. This is what happens here on HN often-times. :) http://en.wikipedia.org/wiki/Confirmation_bias
>> However, I have (so far) never been able to manage contributing to open source projects in any significant way. Sometimes I have been too busy with work projects, sometimes it has been a busy life at grad school, sometimes family,
I can take a safe bet that a lot of us here can confirm to this as well. So this is more prevalent than people care to admit/inform here.
>> and I wish I were more like them.
Not a bad wish, but if I were you, I wouldn't lose sleep over it. :)
So, just keep doing what you are doing, and the opportunities (oh, there are plenty of those around. I can assure you) that arise around those things will come to you. Good luck!
Long story short, try to be great, oss or not.
But how can they be awesome if they don't tell the Internet about it? It's unfathomable!
I also have to note that I've never met a person my age (early twenties) who I could call a great engineer. Promising - yes, talented - yes, but not great. You know, the type of people that you shut up and listen to when they talk. Guess those years of experience really count...
P.S.: OK, I lied, I've actually seen some guys even younger than me that are absolutely brilliant, mostly those actively participating in programming contests (ACM/TopCoder, etc.), but I wouldn't exactly put them in charge of a team building a product, if you catch my drift...
I think it's very difficult to be the latter without having constructed a handful of large systems, and those take significant time even if you do them back-to-back.
When I was hiring, yes. There is no easier and simpler way to evaluate someone before bringing them in for an interview than checking their verifiable OSS contributions. It's low friction.
Doesn't mean we didn't consider others, but for obvious reasons people who actually could prove they had done work went to the head of the line. It's just how it is.
You mean "people who proved they would work for free," right? FWIW, I'm not interested in working for your company, but of the code I wrote which has made it to Github, most has been uploaded by people other than me.
I have written quite a bit of stuff that I was paid to write that made it to GitHub, FWIW.
Isn't that usually sorted out by the resume piece of the puzzle? By listing placed an applicant has actually worked?
I know it's not your full hiring procedure you've outlined here, but I just see that kind of filtering as very naive. You'd have to make a huge number of assumptions to go from someone's OSS contributions to anything about their work ethic.
Every writer who advocates FizzBuzz or something related has specifically mentioned these are candidates with resumes that got them to the interview stage, but who couldn't actually write code.
Looking at open source code or a portfolio is an extension of that, since one doesn't really have time in an interview to do anything more complex than FizzBuzz.
You clearly haven't done a lot of hiring if you think this is a good filter. People lie.
Translation: "Hiring people takes my time. People who save me time will make my job easier, so I'm more likely to hire them." I think I have your hiring process more or less figured out, though I'd never want to work there.
Uh, yes. That is trivially true. Do you think you stumbled upon some genius snarky comment? Given two options with zero tradeoff in quality, I will choose the easier path.
Internal studies also showed that employees who contributed to OSS were more productive, more loyal, and created better value.
It doesn't really matter if you'd want to work for us or not, so keep that zinger in your back pocket. (Considering I don't even work in that field anymore and you'd likely be unqualified anyway.)
But isn't one of the major reasons we look for a github portfolio, really as an ideological filter for finding cofounders? I wouldn't go so far as calling it communist, but contributing to open-source projects requires a dedication to the 'common good'. If it is communist, it is a great filter for people who would like to own the means of production (equity) rather than getting paid from surplus profits! (salary). I'm not great on communist ideology, but anyway startups are a mix, they're a bit socialist at a very early stage then mature.
At any rate, if this is the correct way to view github, then the counterexample we're looking for isn't people who say "I'm a great engineer and I have no github" but - "I am highly interested in working for equity alone (in a pre-revenue context!) as a cofounder, building a project from scratch with no initial reward except a sense of ownership, and I have no github".
That rings a lot more hollow than being a well-paid engineer with no github.
If you remove extremists of each movements, seeing value in common-good has nothing to do with communism or socialism or capitalism.
The only filter you apply by looking at github is social. You select individual based on how involved they are in a community. If your company evolve in the same community that can be beneficial. If not, well it is only slightly a bit more relevant than looking at hiring a plumber based on how recognised he is in the car modding community.
If GitHub lets you verify that someone is capable of writing code that you think is of high quality, is that not a useful tool to apply in a wide variety of circumstances?
Now indeed, you can also look at the code that even regular people are producing. The problem here is that you filter people that uses GitHub as a code repository, storing learning material (i.e. rubbish), quick hack (i.e. dirty, no tests), ..., or people that use GitHub as a code portfolio with a selection of their best piece of code.
But really, whatever works for you. There was the same talk about LinkedIn first, then StackOverflow accounts back in the days and nowadays hardly anybody cares.
I think there is a rather large distinction between "contributing to the common good" and advocating communism, which is a political philosophy. I think whether you want to help others is wholly independent from your political philosophy.
Is there a correlation between the latter type and productivity in a day job? Employers who ask for a prolific github account would seem to think there is.
Putting up half-finished junk like that doesn't serve anybody's interest. At best it is ignored. At worst it is just pollution being dumped into the world in that any newbie seeing it would become actively dumber.
For "junk projects" that are solely to play around with some new thing, I think it's okay to make that clear in the README of the project and still put it in a public repo. If I'm an employer, I'm going to like the fact that you're actively learning new things; if it's a "play" project, made clear in the README, I wouldn't hold against you writing crappy code. Instead, I'll be more impressed that you're actually learning new things. Just my $.02.
All of my free time that I put towards software selfishly goes into my side project, but it does mean I have some interesting stories to tell on problems I've solved.
For me though, any practical experience that you can show alongside your resume/CV is helpful for a few reasons:
1. If I see code of an excellent standard, I know I just need to use the interview to make sure you really did write it yourself, then if you're a good personality fit, you're hired. This makes my life a lot easier because it's very hard to tell if someone will be a good coder without seeing them code. Not everyone is willing to do a practical trial, and not all employers have time to organise these either.
2. It lets me see if any assessment you give of yourself agrees with reality. Some people understate their abilities, but most overestimate themselves greatly. If I know where you sit on this spectrum I have a better idea of what to expect in terms of mentoring requirements, how to approach the interview, etc., to figure out if you are competent and whether any poor judgement is a problem, or just typical egocentrism.
3. It gives me things to talk about in the interview. Like, "I saw you used X, why did you do that and not Y?" Usually it's when people can actually start talking about things like this that you can tell if they really understand what they are doing or not.
So, I wouldn't be put off by the idea that you don't have a lot of open source contributions out in the wild for employers to look at, simply because it may not matter to everyone. However if you do, it's always of value and something you should highlight.
In any case, don't underestimate the value of being able to show some work you have done. If your best work is closed source, try to get permission to show some of it to potential employers, while bearing in mind that they will be very busy and not hoping to wade through a ton of code figure out if you know what you're doing or not. It's an extra resource: if your skills look interesting, it allows them to see some evidence of what you've done, and poke around for interview talking points.
Often just knowing the type of projects you worked on and having proof of your contribution is enough to tell if you are the real deal or not. So if you can't get access to sources, just indicate the projects, say what you did and try to get some evidence, like endorsements/references from colleagues. If you can't provide evidence, expect the interviewer to grill you on this: it will soon become apparent if you were exaggerating your contributions.
The most important point is that if your CV/resume does not look good, they won't want to look at your code anyway. Don't shove it down their throats. Start off by selling yourself as concisely as possible, and use these kind of extra resources as evidence to back up what you say.
What I like most about these Github resumes is not so much the fact I can see individual contributions, but that I can very quickly see a project history and % breakdown by language, which is what I'd expect to see on a paper resume, except here I know it's based on real data and not just something the candidate may have just made up. From data like this this I can tell within a few seconds if that person might be a good fit, and from there I may decide to go investigating further.
Just remember that if you apply for say, a Ruby job and 90% of your open source contributions are Python, you probably want to tell the employer somewhere e.g., "I work with Ruby in my day job but most of my open source contributions are in Python". Only if the data is misleading though, like if as you said you have some open source contributions, but not enough to be representative.
TLDR: Employers are busy. Within a few seconds, they want to know "does this person appear to have the skills I am looking for?". If that answer is yes then they may spend more time re-evaluating it, based on any evidence they can get. Source code is usually the best evidence a programmer's ability. Less up-front evidence means any interview will be a lot more hit-and-miss: interviews alone are not a good way to assess coding ability.
The less they know from 3rd party, but me, the better!
I've made one commit to a PHP project about a year ago and it was a minor tweak!
Traditional resume asks people to list their skill and describe the project in a couple sentences. Instead of pretty chart there is a dead simple language percentage count. Instead of rewriting a README it extracts the description from the repo. It's quite useful as a quick resume.
Github's detail page is not useful. It serves merely as an activity dashboard, not a resume for people looking for talent. This goes to the other resume project a month ago a designer showed off his HTML5 skill. That kind of resume burns my eyes and is not useful for recruiter - nobody wants to click/arrow through 20 animates to get your email address. Same thing here in Github.
I love contributing to the community, and that's obviously the first reason why I push OSS, but that extra hiring benefit is extremely helpful for other coders like me who don't have a technical degree.
How many professionals are asked by their future employer about the work they do for free in their spare time?
Would you ask a doctor how many patients he/she treated for free? Or a lawyer how many cases he/she did for free in their spare time?
I don't think so...
By all means, I think contributing back to the community is a noble, great thing to do (and we should all strive to do it), but this should not be considered the sole measure of one's technical skills.
Of course, not everyone can. But likewise, not everyone can go to college and get a degree in computer science, which is generally pretty important for one's resume.
Open source contributions on github should not be the sole or even most important measure of one's technical skills, and neither should having a college degree. But the more options there are to prove one's skills, the better a chance talented people have.
In other words: For those that can't afford to go to college, but are good at programming, github can make the hiring process more fair.
Having a doctor or lawyer who gives back is important to a lot of people, and I'm sure that translates into wanting to hire employees who give back to their communities as well.
I don't care if there's 6 billion lines of JS in libraries that nobody ever touches, and only 10 lines of Groovy code, it's still a "Groovy project" in every meaningful sense, if that's what people need to hack on to modify the project. :-(
Probably because for historical reasons, my repo is not the "root" on GitHub (it started out an an anonymous snippet on EmacsWiki and someone else put it in its own GitHub repo, which I later forked).
It looks like that's because its using GitHub's timeline API, which -- in addition to GitHub's general repository API -- only retrieves repositories which are actually rooted at the given user. Sort of a shame; I feel like most people's most interesting/important open source activity is on repositories which they don't own.
I don't think I'd call this a GitHub Resume, more of a formatted GitHub summary that could be part of someone's Resume.
Sure, if you're inundated with so many resumes that you can't decide where to start (doubt this is a problem most companies have) this might be a good place to start.
I went and looked up the open source report card which used to work the same way. Looks like they've recently changed it though to pull from your most contributed repos, so for me is much more accurate of my activity on Github. http://osrc.dfm.io/
Improvements might be allowing you to hand-pick which repos to highlight.
Also, I'd love a way to highlight my contributions to popular open source projects on github that _aren't_ in my own repo, or a 'team' repo I belong to. For instance, I have, I think, 2 or 3 commits in Rails -- but you aren't going to find that out from looking at my github account, or from this resumé thing. I have yet to figure out _how_ to figure it out in fact!
It does not only builds your resume from Github but from many other repositories as well. Not sure what is the current status of the project though.
It reminds me that I need to clean up my github account.
Unfortunately I use github for two separate functions -- putting up projects some other people may be interested in and for throwing up scratchpad projects. So I end up with a lot of garbage on my account.
The bulk of my really interesting stuff is in private accounts.
I've replaced almost all my scratch projects with gists using the `gist` command . It's a nice utility because it authenticates as your GitHub account, and you can modify existing gists (which can contain 1 or more files) with the `--update` flag. Really works great for those one-off things.
 - https://github.com/defunkt/gist
I have looked at several sites like this and using GitHub to query and then present is smart. Some suggestions:
1) Find a way to notify the user when their resume has been built. This could be a great distribution tactic.
2) Allow the user to reveal non-detailed summaries of their private repos. This is where the real power of a tool like this would come in. Allowing a generalized summary of the private repo's could lead to an "IMDB for programmers"
You don't need to be an active github user to be a good developer (I am not even a good developer) and you should be able to present your resume as you deem fit.
Obviously if this allowed me to own my account and easily customize how my github works gets displayed I'd be more interested. Until then, this feels like pushing my github work through a meat grinder and evaluating the sausage instead of me.