A resume has just two purposes: first, to help you get an interview, and second, to get you past an HR hurdle.
It is not the job of your resume to go further than those objectives. In particular: it is not the job of your resume to establish a valuation for yourself. No one document can do that; in fact, no document can: you have to do it yourself, preferably face-to-face, by understanding in each interview what the "buttons" are, what the language of benefits that company speaks is, what things they find important, and how your prior experience can be phrased in ways that push those buttons and communicate those values.
More importantly: resumes, in any form, are bad at getting you interviews. A resume comes into play at the earliest part of the recruiting funnel, when the hiring team has the smallest number of cycles to spend on each candidate. Your primary strategy for dealing with recruiting funnels: jump the fucking line. It's never been easier to do this! Ten years ago, you'd have to track down someone who worked with someone who worked for someone at the same company as the hiring team. Today, in tech, you just go search Github for projects your hiring team contributes to and start sending pull requests.
Keep your resume simple. If Github does it for you, gets you in the door, great.
People spend a lot of time thinking about resumes. It's easy to see why. Resumes are the key ego document everyone in our field gets to work with. They are, admit it, fun to tinker with. That's fine. But don't obsess. The resume is literally the least important part of the search for your next role.
In most companies, interviewers are trained to "screen" candidates with a series of tech-out questions (and maybe some culture-fit stuff).
As a candidate, your interests are best served by (gracefully) taking as much control over the interview as possible. Turn the interview around on the interviewer. Ask the interviewer questions about tech problems they've run into, and then ask if you can talk about how you'd address them. Guide the interview to questions that push the interviewer's buttons.
If you sit back and passively accept the interview as it's offered to you by a screener, you put yourself on a level playing field with everyone else being interviewed for the role. Which is a bad thing.
It really is of tremendous benefit while interviewing to be the one driving (or at least steering) the interview. Even aside from any psychological power dynamic, it's a really good way to make sure you get to cover the things you want to cover.
If you've ever come out of an interview and said "Oh man, hopefully that went good; but I wish they'd asked me to talk more about area 'X'.", you know it can be nerve-wracking.
Being able to have an actual conversation, where there's interplay between the interviewer and interviewee will do wonders for your anxiety level (which considering how stressful interviewing can be for some people, can be a big deal).
Github and any other open source repository you link to are a badge of "I did open source development". What the first page in Github, etc. looks like in that first 0.15 of a second of the 5-10 seconds they spend looking at it may be on average only 2% importance to the hiring decision.
Do NOT stop doing what you want to do or start paring projects down just for looks. Sure maybe it will help, but don't sacrifice your work and what you've done just to look GQ in an attempt to get a job. Instead, try to work on what you do have and make it better.
I don't mind a Github being used in conjunction with other resources (the projects I've worked on / Linkedin / etc), but god help me if it ever becomes the standard -- I'll be unemployable.
Having said all that: no matter what you've been doing for the last 5 years, proprietary or open source, most developers suck at "goal-directed" networking. One way to overcome that obstacle is to make targeted open source contributions to projects your preferred future employers pay attention to, as a way of meeting people who can recommend you for a role in the future. If you're like most developers, you may find this easier than the standard networking approach of asking people out for coffee, even if it involves extra coding effort.
The not-so-easy answer is: find time to contribute to the open source community. This is difficult if your time is already spent though.
I imagine few large projects have moved their infrastructure to github. Therefore my github page is almost empty.
This is difficult if your time is already spent though.
When I've spoken to (good) recruiters, they've downplayed the whole github/blog thing. We might use that (they say), but it will depend very much on the job we're going for. Usually once I talk to a techie for a while they get a pretty good idea of what I'm about technically (and vice versa). If they're not a techie, then github/blog will be of only limited use.
In short, while people with impressive Github contributions can generally be good employees (but not always!), many good employees simply don't have time or interest for open source / side projects.
Coming from the Rails world, this isn't true. Through my job, I fix problems with Rails or plugins I encounter. This may only account for say two percent of my development time, but that is significant enough to have a trail of pull requests.
I disagree. I've fixed and contributed to projects I've been using in my real job. In fact, I found the bug while I was working on the real job.
Personally, I'd do some searching on a candidate, and would be rather happy to find code of theirs online, but I won't hold it against the candidate if the search doesn't find anything interesting.
In all the years I've interviewed, I have only once interviewed someone with OSS experience (he was hired, BTW, but not specifically for that reason). I've seen resumes that listed OSS contributions that didn't make it past the phone screen though.
I've often wondered if it was just that many programmers don't think that their open source work is worth putting on a resume since it wasn't done in the context of a day job.
Most of us work in jobs where we don't share our code with the public. Most of us work in jobs which take up all of our time, and we try to have a life away from the computer when we're not at work. That's what makes us interesting people.
Work is a social environment. If all you do all day is code at work, then come home and code all night, you're not going to be a very interesting person. Go see movies, read books, meet with others, meet a girl/boy, learn to cook, develop a hobby... etc.
If you have to show code in an interview, just take some of your proprietary code which shows that you know how to program, remove/obscure all business-specific information (inline docs, comments, variable names), and use that. Of course, don't select the one algorithm that makes your current company special, rather pick some typical/mundane code that shows what you can do.
The bottom line is that this is the situation that most people are in, and we understand this situation when we're interviewing you for our company. Don't sweat it.
Your account doesn't have to be filled with projects, but a few patches to open source projects you are using can be really valuable for someone who wants to read a little of your code before investing time and energy in an interview.
Finally you will want to be able to have something in PDF format or that you can print and show to your prospective employers.
Wait, Java-related experience? I'm pretty sure there's not a single line of Java in my entire github repo. Oh wait, that's not true - there's my trivial benchmark script that shows Java is slower than python in some cases. :)
The second arrived late last night and appears to be an automated message from Githire, though a real name was used in the From field.
I think this is a new trend and while I don't mind it at all now it could easily get out of hand.
Anyone who's been employed for a while will not be able to share the bulk of their source code, and source code doesn't typically give a high-level overview of career development and accomplishments.
He has 58 public repos, but I can't see if he's had significant commits to them. Picking some commits at random from the activity doesn't help much either.
If you are going to restrict your job hunting to people who use GitHub and who contact you, it may be ideal, but why restrict your potential audience so dramatically?
Perhaps a better alternative is to keep using GitHub to host your code, but then use your resume to highlight specific projects that you want to show to hiring managers. If they're really interested in you, they might look at some of your other stuff.
When I'm asked to provide code examples, I link to these projects. But now, in retrospect, I should fork the things I commit regularly to and provide that to possible employers.
Because not everyone has FOSS info we also have hooks to have information about private code without sharing the actual code so you don't have to worry about broken the IP, NDA, etc. And other stuff like StackOverflow reputation, etc. You can even give "free beers" to other developers as a thanks/kudos/good work
We are currently working on a new profile, less resume, more dashboard, you can take a look to it here https://masterbranch.com/drbrain/cool-new-stuff
So, the main idea is an identity (not just a resume) for the developers merging all their identities in one place and give them a tool (not only to find a new job) to stay connected to their peers, know what's hot on technology, discover interesting projects, etc.
I'm interested- how do you achieve that?
Due to the feedback right now we plan to release tools to upload full commit history and also hooks for the SCMs without having to host the private code on Github on Bitbucket. (already working on the git hook https://github.com/masterbranch/Jolly-Roger)
I also agree with some of the other comments - Github certainly isn't the end all be all. But, we're all trending away from traditional education, and software developers are on the leading edge of this trend. There may be a fairly standard path for "finance guy," but great developers can (and often do) come from any background. Resourceful developers can learn all they need for free via sources outside of a CS degree someplace.
So the question for a company seeking great developers becomes "how do I evaluate these non-traditional folks?" Resumes don't get there, but open source work can work to fill that gap. It's certainly not key for everyone - there are plenty of folks who stand on their own without a public repo in site. But, increasingly, it replaces more traditional indicators of talent like CS degrees.
Just my 2 cents, and I'm admittedly a bit biased.
That's only true if you artificially restrict your population. It's like saying that music degrees aren't well correlated with being able to play an instrument or sing, because most people I meet at my local jazz joint (including customers) can play an instrument, though only a minority has a music degree.
1) Yeah this is dead on. Employers should only care about the code you've written.
2) No your always need a resume because your job history is more important.
3) GitHub complements your resume.
I'd say that this is totally situational. It is like a cover letter. You position yourself for the jobs you want. A lot of startups would probably put more emphasis on your GitHub account then on a resume. If you want to get into the enterprise world then they'd probably care more about your resume.
None of this is needed. It is simply your way of showcasing yourself to get the job you want.
Handing them your GitHub commit log lets you walk in on more equal terms. If they are interviewing you, they already think you're good enough for the position from a coding perspective.
A shockingly small number of candidates I've interviewed have heard of fizzbuzz. The first time I mentioned it to someone, I assumed they already knew it and would just chuckle and crank it out. However, that's actually kind of rare.
When I do talk to a candidate and get that "knowing grin", my estimation of them jumps up a couple of notches. It seems to actually mean something outside of coder forums.
The real downer is how dismaying it as that candidates clearly have never prepared. How could they have done any research ahead of time and NOT seen fizzbuzz?
It's basically a "secret handshake" that non-programmers simply cannot do, and competent programmers can figure out in less than a minute.
If you take a look at my github account you might think it's nothing special. But what you'll also see is that I have several commits per day, despite working a 40 hour/week job and a 15 hour/week job. So at minimum it should be obvious that I really like coding. If you think my code sucks I'm fine with that, please don't invite me to your interview. But at least the company I apply for will know who I am going in.
In this case, we're talking about FizzBuzz. The point of FizzBuzz is that it's a test that can be passed by literally anyone with an elementary ability to code. Optimizing for it is silly. Just bang out the fizzbuzz answer (make fun of it if you like) and get on with your life.
Interviews are a HUGE time sink for companies; not just in the interview itself, but also in the examination of candidates, their resumes, their code, their references, discussions among team members to decide if they'll be a good fit, etc, etc. One interviewee can blow away two days work easy. So we're not in the mind to lose any more time than we have to.
Fizzbuzz is a sanity test. To the candidate it may seem absurd, but once as an interviewer you've dealt with enough fakers, or even people who honestly believe they can code and yet can't, you begin to appreciate the simple elegance of a 5 minute fizzbuzz test as a kick-off to the interview.
Interviewers don't owe you anything. If you are over-qualified then within five minutes of talking you should be able to prove to them that you are worth skipping over the bullshit.
If the person still wants to go forward then that would decrease the value or working at that company in my mind.
A) Github does not cover a lot work that is done because developers are prohibited by NDAs (for their day job) and/or don't have time/inclination to contribute to open source; furthermore OSS is less hot outside of silicon valley
B)Github is an important piece of an overall portfolio; for most employers it is not stand-alone in screening a candidate
C) A code portfolio (github or otherwise) is a complement to the information found in a resume
D) Resume should be used to highlight the most significant code contributions (in github or otherwise)
E)Control is important - developers should be able to hide some projects in order to control the image they want to project; it is important to position oneself for the specific jobs one is targeting
F)For hiring, you need a summary (that's easily printable) of everything that you bring to the table
G) For employers, interviewing is a huge time-sink; there's huge value in only bringing the most relevant people into an interview
Communication, being able to work on and contribute to a team (and not just a team of developers), understanding business, being able to estimate, being able to understand, articulate, and extract requirements from/to clients/non-technicals/management, etc, etc. Are all much more important and difficult to find.
I had mixed feelings about making its history publicly available, but I’ve come to agree with the OP — how you’ve changed is at least as important as what you are right now.
Asking candidates their github usernames is starting to seem a common trend, in my experience.
The door swings both ways though: forking lots of projects / not understanding Git are red flags.