On Hiring Developers
github.com
github.com
Personally, I've made far more open source contributions at my current (awesome) job than I ever did while on the job market. I use GitHub because it makes coding more fun, and because I get a huge thrill every time someone tells me they used one of my projects.
I also don't understand the OP's hostility to the open source movement. If you don't want to share your code, then don't share it! That's totally fine. But I'm very conscious of the fact that almost all the tools I use every day -- Linux, tmux, vim, Ruby, Python, etc, not to mention hundreds of libraries and plugins -- were all developed by people in the open source community. Often these people were working for free or for far below-market wages. Whether or not OP likes the OSS movement, modern software development is built on open source tools. Personally, I feel an obligation to try to give something back, even if it's something as small as a REST API wrapper.
Did he express discontent with a specific type of advocate? Yes. But he explained why, so it should be something you could understand by reading what he expressed.
He basically shares the same view as you: if you don't want to share your code, then it should be totally fine. There are people who do not agree with this, and this is where he draws a distinction.
However, I think that unless the programmer has a good reason not to open source something, they should default to releasing it. I have a couple reasons for this.
One, it's impossible to predict what other programmers will or will not find useful. I have lots of code on GitHub that is not in any sense production ready. I don't care -- maybe someone will find it helpful.
Two, as I said in my previous comment, whether we want to admit it or not, we're all using and benefiting from open source software all the time. GitHub -- the site we're arguing over -- would never have been possible without Git. I feel indebted to the people who came before me and made all this possible, and I don't understand people who react to the subtle pressures to contribute with hostility.
The person at the bottom of this comment list said "I have about 6-7 repos in GitHub...all private. I will never give that out in a link. I don't mind you looking at it in front of me, but I'm not giving anyone access to it." I just totally don't understand this attitude. Code isn't money. I'm not diminishing you by reading your code. And, as the last 30 years of blazing success in open source software has shown, the benefits of the open-source ecosystem are far from abstract. They're the foundation of everything we do.
I think the argument goes:
Then why is any code proprietary? If I'm interviewing at a company, I should be able to see that company's code prior to working there.
I also think a general issue is that practices such as this and employment agreements where the company owns any work you do off hours make it harder for people to jump from being employees to working for themselves (both in mindset and in practical ways).
Code is money. Some people are developing products not just frameworks. Some people are paid for developing open-source stuff while others do this as a hobby. It's a personal choice. Open-source is not the only way and it's not the best. There is still no open-source project that would match Photoshop, Windows, MS Office in quality.
Agreed, we all benefit from open source, I think it's almost impossible to avoid an open source tool at some point in your career now as a developer. I love Git and have a lot of respect for Github as a company. My intentions in my post was to address how people misuse such great platforms potentially.
Also, please see my response to @mafro below which addresses your final point.
I use gist as a backend store for a fairly large code snippet database and my github page essentially helps me peruse that quickly.
And I also get a thrill when I see someone has forked/starred a repo or gist.
I had someone comment on my Github commit for the blog post itself and I'll copy it here so you can see my response: https://github.com/rziehl/from_the_terminal/commit/497939af2....
I have nothing against any tool or belief, just the misuse of that tool or belief.
Nonetheless,
I'm actually ok if someone doesn't have an extensive github (or any for that matter) on an interview, because I will spend the time and talk with them. I totally understand however that more or less many firms try to filter out some of the mass piles of resumes by using github. But most people aren't like me who want to dig in and _work_ with `you`.
Having said that I very much still like to see a github link. Here is why (and they are biased toward synergy in a coop manner, which is how I culturally work; you may be different):
- You spent the time to do something you thought was cool (dedication) - You did the above regardless of how it looked which amongst many things to me means you have thick skin and are willing to learn (it's a two way street mind you). - you've learned to communicate with other developers => _on their terms_ - you are not living in a cave and open source doesn't come to you from only one foss org or your one fav info site. - you are willing to dive into code (forking) and making the changes necessary even if it means doing it yourself - good ole adding to the knowledge of society (you just don't do it for the money, you have more than one dimension which drives you)
At least these are my opinions and I hope that at least you might be able to see one take of many on why some might want to see a github link.
Btw, If anyone else feels the same way, feel free to ping me! Always nice to meet other devs that share some of my views!
Personally, I find a Stack Overflow profile to be the best indicator of a developers skill, if he has a somewhat active profile (over 2-3k points). Being able to explain technical solutions, I think, is the best way to see if someone is both capable and can work in a team
Regarding resumes - another touchy matter. When I freelanced I haven't sent a resume as such as I had a portfolio site, but now that I'm on the other side of the table, going over resumes - most of them are completely terrible. Some people are completely clueless on what to put on a resume and others try to game it - putting stuff like "raised x metric by y% on project z" - giving me zero clue to what they actually did there. It's very rare I can get an actual glimpse to what the person was doing at his previous work. That's why you'll need to tell them your story when you interview... it's too easy to assume the interviewer was just lazy going over your resume because you think you "nailed" it, but in truth your resume probably sucks as an indicator of your actual experience and ability.
I'll add the general caveat that it obviously doesn't apply to every GitHub member but to many. And that is just fine when you have a huge pool of candidates and you need a decent filter for the upstream.
As much as Fizzbuzz (or equivalents) are despised, I think it is still probably a more useful first-level filters. But not much more.
Note also that this is the same for private repos hosted on github. When you are logged in, you can see the activity and commits of yourself (and your teammates) in all of the public+private repos that you have access to, but your public profile only shows public commits. This is by design.
Here is my example image, when I was doing a bunch of work at the start of the year in some private repos: http://imgur.com/4Tr3LQz The top is my public activity and the bottom one is my public+private activity. So if you're used to working out of private repos, then nothing is publicly documented and your actual github profile is not very 'deep'.
All of that is true, but my point is that you can't just gin up fake repositories to look good on a resume.
People should think about why exactly they are requiring applicants have a github and make sure they aren't getting lazy about who they let through their hiring filters and who they exclude. It can be especially problematic when you have less technically savvy people involved with hiring process.
Anyone reading HN over the years can probably agree that there have been many bad ideas that have caught on over the years, such as throwing gotcha brainteasers at applicants. There are also good ideas that have been misapplied.
Github, Bitbucket, Google code, Sourceforge (even Stackoverflow!) - it doesn't really matter where. It just needs to be public.
The OP's comments about Stallman and "Free software fanatics" are way off the mark; technical hiring staff just want to see your code. Fizz Buzz be damned! The code cannot lie!
And if your precious projects are too secret and awesome to be seen, then I very much doubt I'll hire :)
In addition, I'm not a huge fan of linkedin either. There are no guarantees to it. One is that most of what's on there is hard to check and linkedin endorsements are just unreal to start with.
I know people who just endorse each other for random things. I have endorsements from people who I have never worked with for technologies I have never worked with.
So in the end — Github or similar wins. Allows me to see their code (and contributions), and that's what matters. For the rest (compatibility on a social level), there are interviews and probation.
I am all for a generic "Link to your code" field on a job application form but also provide an alternative like "Is your code not public? Send us an invite to your repository or send us a zip of some work that you are proud of". I am okay with that, I did this for a job application that required a Codility test which I didn't do. I am not saying that I am unwilling to give you my code, but for the sake of a job application it does not have to be open to the world. I agree that Github still has benefits for recruiters but they should not become blinded by it thinking it is the only platform where developers can showcase their code.
There's a lot of code I could put up, but I don't consider it to be as useful to anyone else in the current form that it is in (tailored more for specific projects with dependencies that may not be useful to everyone). Other times, certain clients I work for may not like it because it's code I also wrote for them with the understanding it was proprietary for their own use (websites). Sometimes I may also write code for other developers or (indirectly) for their employer and posting it without their consent would make things complicated.
I guess I could see a situation where the HR machine makes you fill out some stupid form when you apply to a company (in the same way that this HR machine makes you upload your resume in a certain format), but I'd be very surprised if those rules and requirements come from hiring managers.
It makes sense to want 1) a concise way to see where you've been working, what you've been doing, and what you write like (presumably this is the LinkedIn portion) and 2) code samples, but it doesn't make sense to require that this info comes to you in a specific medium.
LinkedIn - never. Circle jerking recommendations and filling your profile up with buzzwords.
You are free to criticize anyone or anything but the Stallman part really did look like going off on a tangent.
It's really easy to be an ass on the internet but I'm not attacking you or anything (Like one commenter probably thought I am). Just pointing out what I noticed.
I know it was a tangent from the initial impression readers got from the title but it served as an analogy that people can blindly misuse beliefs just like they can blindly misuse tools. I am not a fan of name dropping and in that given example I admit I could have avoided mentioning Stallman looking back at the post and generalized it to free software advocates who try force their beliefs on others. Also want to add that I do not think all free software advocates force their beliefs on other developers.
Criticism appreciated, like I said, no offence taken, I did not think you were attacking me.
@chanux asked a question with regards to my blog post and I answered it with my justified opinion. It was hardly a mindless flamewar, in fact both of us ended up agreeing with each other as you can see by the comments and this tweet if you want further proof: https://twitter.com/chanux/status/366211657241862145. I was not going to ignore a user who had a question about my blog post.
I appreciate the Hacker News community's feedback and contributions but I do not feel that in this specific example I created an unhealthy discussion by mentioning Stallman. I have a lot of respect for his work as already stated and I accepted @chanux's constructive criticism wholeheartedly.
1) A link to your Github account 2) A link to your LinkedIn profile"
1) No 2) No
They don't care about Vim and Emacs, they are not Python devs and they don't live in SF (talking about the other 90% of devs naturally).