04 April 2013
P

Github is a tremendous service. Not only does it provide the developer community an opportunity to share their craft and collaborate on tools that benefit us all, it also provides an ideal calling-card that tells others a lot about yourself.

As a hiring manager, this is crucial. Outside of a great endorsement from someone who’s opinion on development and work habits I trust, Github offers a natural path to understanding what a developer is all about. No awkward requirements to take a coding quiz if you’ve already proved yourself in public.

Admittedly, creating a public repo takes some work and some guts, since it says so much about you. IMO its worth it. When I’ve worked on some code that could benefit the developer community without exposing specific trade secrets, I’ll try to find the extra time to polish if for general use.

Here are some of the criteria and questions I try to ask of myself:

  • Is it useful?
  • Will it build easily for the target audience?
  • Can the target audience use it effectively within minutes of cloning it?

I do have to admit that I haven’t always been successful. Tools like Code Climate and Travis really help to keep me honest.

What a Github Public Repo Says About You

Altruism aside, a public project on Github tells others a lot about yourself as a potential collaborator, or as a prospective employee.

You can complete a project

This is, in my opinion, the most important thing it says. Software development comes down to details and the ability to deliver a robust solution. I can’t tell you how many times I’ve seen work from consultants and developers that is, at best, half baked.

When you’ve really gone the extra distance you’ve:

  • got a project that builds and can be built easily by others
  • you’ve got examples that really show how to use your software
  • you’ve accurately and appropriately documented your code
  • you’ve written tests that pass
  • you are a doer and not just a high-tech talker

While it doesn’t tell others how fast you are, the ability to do these things is key.

You care about your craft

Kind of obvious, huh? Putting up a repo says you like to write software. While Software Developer/Engineer is a great job/career, I prefer to work with developers who see it as a craft that is part of their identity.

You know what Git is

Again, kind of obvious. You’d be surprised at how many people looking for work don’t really know their way around version control. Its been around forever (sccs, cvs, svn, git and others), but people come out of school, or are self-taught who give you a blank stare when you start asking questions about it.

You’ve displayed your level of knowledge and craft

Sometimes the project isn’t really that amazing in its complexity, but it can still say a lot. Even a school project/assignment can say a lot.

  • Were design patterns used?
  • Is there a need for re-factoring?
  • Are functions/methods too long, or too obscure to understand?
  • Is the code consistent? Naming, formatting, use of language specific idioms?

Of course, if you’ve written something that requires deeper knowledge of a computer language, or specific technology, you’ve shown that too.

You’ve demonstrated your ability to communicate

Finally, it shows others your ability to communicate technical information clearly. Your audience isn’t the general public, its other developers and probably other developers in a specific software domain. I personally don’t care if the writer is a native english speaker. Rather, what’s important is that the writer knows what I need to know to get the job done.

The better the writing, the more likely the writer can write and communicate design docs and specs and the more likely that she/he would make an awesome team member.

So just do it

All that said - take the time to put some of that great code up on Github. Maybe its a utility, maybe its just a fun project. If you’re still in school, this is a way to create your portfolio and a way to differentiate yourself from other recent, or soon to be graduates. If you’re already working, it can really help to re-enforce your resume.



blog comments powered by Disqus