After joining GitHub in 2013 and spending lots of time there, here are my opinions on effective projects and profiles.
Note that this article is subjective, and the views expressed in it are solely my own. Not representative of employers, clients, etcetera. Also this does not cover GitHub Enterprise really.
Years ago I wrote an article about personal branding for tech workers before having any real career success myself. Funny enough, that article holds up well.
One of its suggestions was making a GitHub profile.
I go on the site almost everyday still, to keep up with new open source, if not to work on some myself.
This time we'll focus on building out your presence there. What to do after making a profile.
Why bother with GitHub?
A solid GitHub presence is only rivaled in job market ROI by an impressive website/blog you run, or maybe a strong StackOverflow history.
It seems that IT hiring processes will at least involve a look over your GitHub nowadays. I am about to start my 5th job in the field and have been asked about my projects in every bonafide interview.
Granted, I put links in my resume. But that's a good move. It allows you to control your job interviews because side project stuff is usually more interesting than "real" work history.
Another thing is that everybody works and has gone to school... 😴 Not many people have enough passion to continue coding in their off-hours, for fun, making contributions to the open source world.
Finally, it's no secret that you learn the most when trying to build some new thing from scratch. You likely will not do that "at work" as a junior person.
GitHub versus GitLab
I'm a big GitHub fan all-around. You may prefer to work on GitLab or Bitbucket though.
Sorry to burst any bubbles — the same exact content on either of those platforms just isn't worth as much.
There's less of a networking aspect to them, and not as much recognition from the people who will look. The people looking that you care about.
It probably hurts if they're your favorites but life isn't fair.
"Randy, Microsoft is evil and I can't support GitHub!!?!"
Acknowledged. I'm as certain that Bill-Gates-is-evil-and-actually-using-the-Gates-Foundation-to-enrich-himself-and-control-the-world as the next guy. And yes, M$ used to crap all over open source...
... however that doesn't change the other stuff. Did I mention life isn't fair?
Trying to build your personal brand on Bitbucket is like buying Yahoo ads for a new product launch. Yes Facebook may be more evil but they're a superior platform.
For reference here we can take a look at month-long "trending developers" for GitHub. We can extrapolate what makes a good profile from how most of these profiles are.
1.) Accurately portray what you look like. The most basic way to fulfill this is by using a clear picture of your human self.
However, you may also choose to spice things up with Photoshop. I took this route because I'm all about excuses to Photoshop, and thought it was cool when Tim Holman did it.
Thirdly, I do condone cartoon images if they are high-definition. Does your cartoon look unhuman and/or like a Simpson and/or like a Bitmoji? Then you suck.
2.) Complete all the basic profile fields.
This is self-explanatory. Seize the moment that people arrive on your profile to let them know about you.
Try to keep it looking clean with sufficient whitespace, as applicable.
3.) Add at least one flair. On GitHub I consider "flair" to be —
- a PRO badge because you pay the $4/month for Professional
- an Organization (with a logo) that you publicly are attributed to
- a status with an emoji
The first one is the easiest and maybe the best. I hardly use any of the actual Pro features. But everybody that visits my profile has to acknowledge I am "PRO". Subconsciously, at least.
You could also just set your status to something.
Don't complain like Jennifer Aniston in Office Space. 😏
4.) Pin some repositories. When new people and/or interviewers arrive on your profile, which projects do you want them to know about?
It's unrealistic to think anyone will do a deep dive into your whole profile history. Especially hiring people.
Show off the cool stuff up front with pinned repositories.
Mine might be due for an update soon, but they convey a grasp of hacking skillz. That's the intention.
Obviously, projects are a little more involved than profile suggestions. The possibilities for what you can build via GitHub projects are infinite.
Still — all projects have a README. Most of the projects I've visited and starred on GitHub are things that look interesting to me, that in the future may prove useful. But not things I've cloned to use yet.
Do you see where we're going here? Even if your project sucks and barely works, your README should be top-notch. Convey value!
What makes a great README?
- A mastery of GitHub Markdown syntax
- Instructions and useful documentation
- Separate things out under subheadings
- Be mindful of whitespace to achieve a "clean" look
- Images or video to demo what your software's capable of
- Badges to show the project builds, is maintainable, etc.
Fair criticism is that I don't always eat my own dog food here. But, as much as I need to.
Less-established folks need to put in more effort with their projects, READMEs, and dog-food-eating. 🐶
Let's tie it all together. If you diligently follow the advice in this post, your GitHub presence is sure to yield positive reactions and perception of high value.
Is that different than being a true GitHub rockstar? Yes. But I am not suggesting to ever be dishonest — just to put your best foot forward.
There are some legendary programmers on GitHub who you'd never identify as such unless you read up on them elsewhere or really dove into their profiles.
I won't name names on this but we can agree most viewers will do neither of those things. Most viewers are just browsing GitHub, clicking around.
Kind of like a crappily designed website with amazing content hidden inside. Yes, the innards are amazing if only people would take the time to look.
Will they? ... My money is on no.
Attention spans are shrinking. People tasked with hiring are crunched for time. Many GitHubbers especially are trying to be as productive as possible.
The Bitcoin people are on all-meat diets for this very reason.
Your GitHub artifacts must survive cursory scans from other humans. We're imperfect creatures who are more easily influenced by some things than others. This advice considers that.
Anyway — you get the point by now. Here's wishing you good luck on your job interviews, professional networking, etcetera.
Happy hacking! 💻