All my professional life ( 20+) I've been writing code or building solutions for private companies, all the cool stuff I programmed lies in a private repository.
And for the reference, I am always sending nicely PDF-formatted, very relevant, but succinct, CV and not a "poorly formatted, badly designed Microsoft Word template filled with irrelevant information you’ve carefully curated to make you look like the best programmer ever".
I assume he wants to validate the amount of hours he has carefully put into maintaining his public image on github.
I get that as an employer checking github and seeing the odd pull request or repo might be a signal that this person at least understands version control and the benefits of open source software - but i'm sure as hell still gonna read his resume and do a coding exercise/interview together.
I don't agree with this guy, and I spend a lot of my time hiring developers.
However: if you don't have open-source code, I tend to assume you don't do much programming in your free time. And if you don't program in your free time, how are you going to become a really strong developer? How will you get exposed to a range of technologies outside what your employer uses, and a range of problems outside your work domain? At the very least, upload your working from that time you worked through SICP or your experiments with Haskell or the AngularJS page you made for your husband's dog grooming business or whatever.
Job-seekers: when your CV arrives, I will use it to find you on LinkedIn. From LinkedIn, I want to see your CPAN/RubyGems/npm/whatever link and your Github link. I want to see a bunch of endorsements from coworkers and open-source collaborators. Show me your Slideshare account from that time you gave a killer talk on ... whatever. Maybe you spend a bunch of time on StackOverflow or PerlMonks or maybe you wrote and published a killer Ruby tutorial in Brazilian or whatever.
if you don't have open-source code, I tend to assume you don't do much programming in your free time
That is too general. Most stuff I've done in my free time (when I still used it for coding) isn't publicly available anywhere for a number of reasons ranging from 'it's too bad' over 'it's only useful for me' over 'this piece of code is none of your business' to 'parts of this code are reused in a daytime job where the contract requires me not open-sourcing it'. And I am sure I'm not alone with some of these reasons.
And if you don't program in your free time, how are you going to become a really strong developer
This is, almost, an insult to me and lots of others with me. I have plenty of skills and none of them came from free time programming. Like the guy I learned the basics from and still go to for serious problems: he never writes any code in his free time yet he's a guru probably better than me and you combined :]
I admit this depends a lot on the type of job me and he have: we can basically learn as much as we want during work hours, and after all learning is one of the key aspects that make a stromg developper. So sure if your job doesn't allow this you can gain from spending some free time programming but stating that programming in your free time is pretty much a requirement for becoming a strong developper is a couple of bridges too far.
C'mon. I assume you are relatively young. But, here are the obvious answers:
1. I have tons of free time. But I am spending it with my kids and family or reading books. Sometimes I am going out with some old buddies.
2. You have no idea what level of technology or engineering I am using at my work. I could be programming microcontrollers or writing risk calculation for a bank. Both require same skill: attention, read documentation well, invent the solution, implement it and maintain it. That is a "strong" developer.
3. You better do following when I am seeking a job at your gig: invite me for a in person interview, tell me the story of your company, tell me the current pains, I tell you what can I do for you, how long I need and how much it costs you. If it matches then we have a deal.
I have next to no public repo's available simply because I don't have the time to maintain an open source project, my free time is spent away from the computer attempting to enjoy life!
In answer to
How will you get exposed to a range of technologies outside what your employer uses, and a range of problems outside your work domain?
Get thrown in at the deep end, put my headphones on and work it out. Hasn't failed me yet!
While I don't like the article posted here, I like the title.
In my experience in hiring coders where we use open source tools, this has become my #1 filter.
ALL OTHER THINGS CONSIDERED EQUAL, if two people apply to work with me, and one has no GitHub/StackOverflow/community presence, yet the other one does, the person with community presence has a far better chance of me taking them seriously.
I know you all think you're great coders (and you probably are - this is a smart forum here), but there's just so so so much bad code out there whose creator took no pride in it and has no passion for it.
So if you come to me with a nice blog, a ton of points on StackOverflow, or a GitHub account with at least one beautifully-crafted repo, you're going to stand out head and shoulders above the rest.
Like it or not, that's a huge test for me anymore.
I'm done hiring people who don't care, don't take pride in their work, and don't have an outward passion for it. So find a way to prove that you do. End of story.
Programming in your free time and having code on github are orthogonal.
Plenty of the best programmers I know don't use github and have all kinds of personal projects. Where's John Carmack's github? Where's Michael Abrash's? Where's Jonathan Blow's? I'd be willing to be most of the most famous game programmers don't have github accounts.
Interesting perspective, thanks. How about those who love programming, but really spend their free time working on projects which are private (either for their company or some other private group). You probably won't find that stuff in a public repository.
I think this is where the CV comes in, you can mention such other projects without revealing the source code.
eg. If I am working on growing a startup in my free time and say, have this awesome idea and worry about someone just copying and pasting my code, I probably won't make it a public repository.
Also, lets not assume that everyone has the same priorities. Someone might love programming from 7am - 6pm but when they go home, their focus is on family and friends. I fear that this "show me your github account" culture could eventually undermine the importance of having a balanced life outside the world of software engineering/general programming
I tend to assume you don't do much programming in your free time.
Poorly founded assumption. What you have are people that don't publish their hobby projects. The reasons run from employment contrasts, not thinking others will find any value in it, and yes, not doing any. If it wasn't for this github resume fad, I'd say that it's quite vain to put my dumb side projects online.
And if you don't program in your free time, how are you going to become a really strong developer?
By having an employer that is invested in my professional growth? As it benefits both of us? My employer invests in my ongoing education and skills. In the future it's unlikely I will take a job that doesn't. It sounds like you just want a early-20-something with no concept of a work/life balance to burn out his life for you.
While I agree that Github is a part of your resume, I don't think it's the whole thing. If I was providing a link to my account when applying for a job, I would probably link to some specific projects and provide some narrative around them, rather than just saying "here's 20 projects I've worked on, go nuts". If the recruiter wants to look through everything else then fine, but they shouldn't expect perfection from everything.
Some other thoughts I had on the article:
"Too many forked repositories": You just need to click on Sources[1] to see the user's actual repos.
"Missing or unclear descriptions": If repos are just simple little side-projects, they don't necessarily need descriptions - I know what they are, I know what they do, they aren't there for anyone but me, I don't expect them to be starred or forked.
"Old repositories": So because I wrote something a year ago, I can never go back to it? What's wrong with having a record of achievement? A display of progress.
"Mediocre code": If we were only allowed to store perfect code, there would never be any code on Github.
However, I think that the author has a point with the 'mediocre code'. If you're hand-picking a project to highlight, you should probably be sure that the code is at least a little bit polished.
It might just be personal preference, but I've seen so many great projects that have absolutely abysmal code standards. Some even mixed tabs and spaces! shudder
Except you can't hand pick a project to highlight. Github does the selection for you.
I like the idea of Github as a resume for showing people how you work, but I don't want to have to carefully curate all my public repositories because it is primarily a place for storage. Github really does need a way to pick and choose what appears on your main profile page.
>> "If repos are just simple little side-projects, they don't necessarily need descriptions - I know what they are, I know what they do, they aren't there for anyone but me, I don't expect them to be starred or forked."
Same like josteink said, paid repos cost money. And even if there is no description, readme or any documentation, It's still possible to find them. And they may prove useful for someone who is trying to build a similar project.
"The work you did a year or more ago couldn’t possibly still be relevant today."
Are you 16 years old?
Tech changes quickly, but not that quickly. A GitHub repository with older projects would be useful to show depth and variety of experience. Just because it's not all using the latest Rails 4.1 doesn't mean that it won't show insight into professional skills like, say, well organized code, playing well with others - not to mention a longer-term outlook that isn't just chasing the latest shiny thing.
No, it is not my CV. I share and star everything I find interesting. I push any code I want without worrying if it is cool or not. I am a programmer, not a pop star.
Actually the posts about GitHub being or not being your resume are playing the devil's advocates and they will be more or less closer to the truth depending on your potential employer profile.
I keep receiving recruiter emails for "J2EE, Hibernate, JBoss, Struts" developer positions "that might fit me". None of those keywords apply to me and that kind of recruiter will certainly not know about GitHub.
In the end your resume is whatever preferred avenue to know you a recruiter might choose. That could for instance include LinkedIn, or the infamous "CV as a Word document" that a lot of companies keep asking for.
I do agree that GitHub provides a good look into a coder's abilities, though, and many companies agree. It's disappointing that, 2 years after this article came out, you still can't select which repos you want to display on your profile. <sigh>
Remove all projects over a year old that you haven't touched? Such bad advice. I've fixed up some old projects of mine that are 2+ years old. Was a great way to see what I was doing wrong back then and apply new knowledge.
I don't think this is satire, but it's definitely misguided.
I'm imagining someone with massive open source projects pouring hours into open source tools and software that benefits thousand and storing it all in bitbucket while his recruiter is tossing his resume in the bin when he sees that on github he has only starred 1 repo "EugeneKay/git-jokes". lol.
It's too bad for all of the corporate programmers who aren't able to share the code they've written without violating an NDA or other agreement. Some companies even take ownership of code written outside of company time, via the employment agreement, so even developing things on personal time is a no-go.
This is spot on. There is a lot of us that are in such employment agreements and do work for corporate clients that require NDAs. I find it short sighted to believe that your skill should be solely measured by your Open Source projects placed on github since that is sometimes just not possible.
Wow, so much bad advice in one blog post.
"Missing or unclear descriptions"
I'll add a description to my github repos now: "Don't take it as my resume"
This makes no sense at all. GitHub is your resume, so here are some silly rules you need to follow to cram that square peg into that round hole. If you need to artificially limit what code you host on a code hosting site to use it as your resume, maybe it's because code hosting sites don't make good resumes.
This is troublesome to me. I'm just completing my MS in CS and have been coding at my job, but all of that has been on private repos (and have been rush jobs at times so they're not the most well formatted).
I can't share any work code I've written, and the projects look terrible. Would having several commits that say something along the lines of "made it look like less of a hack job" be a good idea? They can go back and see how terrible it looked before, but it was for a class and I had to get it done before I could start on my other class's assignment.
I feel like what I've written could get me a junior dev job, but I know I would quickly outgrow that based on the work I've done before (or maybe I'm giving myself too much credit).
I have a blog post brewing in my head about all of the vanities of GitHub: commit activity, stars, forks, organizations, working on 'important' projects. GH's handling of these is considerably less hacker-oriented (more stars = better projects!!!!).
> The work you did a year or more ago couldn’t possibly still be relevant today
Oh man, wait til you discover Lisp.
This guy's insistence on making a GitHub profile so important really bothers me. I love GitHub, but it's just a stupid account on a webapp. There are plenty of great devs who aren't committing OSS. Since when were hackers so obsessed with image?
I googled it without problem. My point is it's not mentioned anywhere on that page, his "about" footer, or the homepage. Strange for someone who values their GitHub contributions so highly.
Like all posts on this subject (resumes, interviews, and the like), you should also amend the headline and advice with " when interviewing with me." I've never seen the same set of advice given by two different people.
That being said:
> "The work you did a year or more ago couldn’t possibly still be relevant today. If it is, you aren’t working hard enough or learning fast enough. Get rid of anything you haven’t worked on in over a year."
After reading this part, I can't imagine this is a serious article. This is so absurdly false, it can't be anything more than a troll on the idea that Github is your resume.
I don't use GitHub to show off, and most of the points in the post are very bold.
"The work you did a year or more ago couldn’t possibly still be relevant today." - yeah I should delete all my work because it is not fresh enough, although there is nothing I have to do.
"Don’t waste your time building unimportant things." - Important for whom? You? Me? Public?
"GitHub is your portfolio." - No, it is a place to share projects and contribute to others. If you want to use it as a portfolio, It shows your most starred projects anyway.
You take the GitHub as a personal promotional page, rather than collobarative environment.
I fought this for a while, then gave in and spruced it up a bit (I mostly commit to private repos not on Github). The argument "If you don't have open repos you don't write code in your free time and are therefore probably not very good at coding" is full of gigantic holes. But, I get that everyone has their little arbitrary things they use to whittle down the herd of candidates.
This is somewhat unrelated, but wouldn't it be nice if there was a tool that would let you connect with Github, choose 3 or 4 of your favorite projects, and it would generate a cool looking resume/site for you? Does this already exist??
To answer my own question, there is [this](http://osrc.dfm.io/) and [this](resume.github.com), but neither of those lets you pick and choose projects, which would be nice
All my professional life ( 20+) I've been writing code or building solutions for private companies, all the cool stuff I programmed lies in a private repository.
And for the reference, I am always sending nicely PDF-formatted, very relevant, but succinct, CV and not a "poorly formatted, badly designed Microsoft Word template filled with irrelevant information you’ve carefully curated to make you look like the best programmer ever".
What's wrong with this guy??