This week I decide to open source all my software on my github account. It's not much, and it's not all there yet. Still cleaning up a few projects. Most of the projcts on there were an hour of goofing off or so more than anything serious, but they will be shortly.
I decided to do this for a couple reasons.
First, as I reviewed candidates at my company, I spent a fair amount of time critiquing their GitHub projects. This gives me an insight into their skill on a couple points - I can see how they code and I can see what they're into. But I felt it was a little unfair that I would also deny that accessibility for the candidates scrutinizing myself. What kind of coder is their future employer? What does he like to release?
Second is the issue of release. By putting software out into the world, you are actually committing to some level of imperative and quality. You start to look at your software differently knowing that other people could critique it, judge it, mock it, reuse it, whatever.
Third, sharing is just a flat good habit to get into. Even if no one ever looks at your code, most likely the case in my situation, it's going to make it a little easier when you don't want to share code with people. You'll be less shy, you'll be more open, and you'll expect feedback regardless.
Likewise, connected to most of the projects is a public Kanban board on Pivotal. This might be a bit of overkill, but it provides a further level of sharing and exposure to the world. Call me crazy, but someone might actually want to participate in one of my projects at some point, and to look over an organized board of all the issues, shows them you're on top of the state of the software and ready to share development. For candidates, applying to jobs, I'd just simply be super impressed if they did so since it mirrors a professional production environment. If they can run that and motivate themselves on their own, I'd have no trouble knowing they could do so at my company.
Saturday, June 7, 2014