Learn how to increase the amount of GitHub Contributions to improve your profile health.
Before I got my first Junior Developer position I made sure that my GitHub profile and my GitHub contributions looked very active. I had read some articles about getting into software development as a career and they all mentioned that you should have a portfolio website and/or strong GitHub profile. And I can tell you, in my experience, this is true. Most employers were delighted to find I had a GitHub profile. One didn’t discover this until the interview as the recruiter had given them an old C.V.! It was nice to see their face visually ‘light up’ as I directed them to my profile, bulging with contributions! But since working full time as a developer I have let my profile stagnate a little. So although it may not be as important career wise to focus on your GitHub contributions once employed I feel like I should keep up an active profile; who knows when a job move might be on the cards. But it’s hard right? You’re working full time. Any projects you are involved in outside of work you’re probably not going to want to make public. So I came up with this guide. Some top tips for increasing your GitHub contributions with little work.
Make sure your contributions count
Before you start making commits to your repositories it’s worth taking a second and making sure that they are actually going to count towards your contribution count! This is the official advice from GitHub:
- The email address used for the commits is associated with your GitHub account.
- The commits were made in a standalone repository, not a fork.
- The commits were made:
- In the repository’s default branch (usually master)
- In the gh-pages branch (for repositories with Project Pages sites)
So in a nutshell, you need to make sure your email address is configured in your local Git repository to match the one on your GitHub profile and you need to be committing to the master branch of a repository that’s not been forked from somewhere else. For example, forking someone elses repository and making a commit to this, won’t give you a contribution. Committing to your dev or feature branch, won’t give you a contribution.
Put everything under version control
Now that you know how to make your contributions count, let’s think about some of the things you could create Git repositories for to give you some activity.
Create repos for your projects
Have you been thinking of creating a new app, script or program to solve a problem? This is your chance to create it as a new Git repository and start making commits. You’ve probably thought of this already but then stopped and thought “But I don’t want this to be public?”. My advice. Don’t worry about it, even if your app is the next Twitter or Facebook it’s highly unlikely that during your first few commits that your idea will be discovered and stolen. Plus, if you are working on something big, you’re going to need other developers, contributors to help you. Making it public can allow people to work with you and your repository can always be made private later.
Create a training notes rep
When you’re skilling up you’re no doubt going to be learning loads of new technologies and interesting things that you don’t want to forget about. If you’re not already, start keeping notes in text files. Or if you have a blog (e.g. Using Jekyll or even Wordpress) then keep these files handy. You can then create a repository in GitHub for your notes / blog posts and every time you learn something new; create a new document and commit it. Et Voila! More contributions for your profile. If you feel like this is a bit like cheating (GitHub is for code right?) then fear not as there are plenty of repositories like this on GitHub. For example the You Don’t Know JS series of books are to be found under a GitHub repository. Also there is the benefit of potential employers being able to see these notes and know that you’re serious about your learning.
Create a training exercise repo
Along with your note taking you’re hopefully doing some coding challenges / exercises to get to grips with problem solving, algorithms, data structures etc. Why not create a repository that contains the exercises that you are doing and also your completed solution? Every time you come across a problem, commit it as a document to your repository and when you’ve completed the challenge commit the solution too. A couple of quick win contributions for you. This isn’t a pointless task either, you can go back to these solutions in the future to review how your attitude to problem solving has changed. It also provides a reference for employers to see what you’ve been up to.
Open Issues in repositories
If you find something which you believe to be a bug or have an idea how to improve a package of software you can open an issue in that repository. For your time in identifying a bug / feature, you will be rewarded a contribution! You will probably want to check the repository’s guidelines on how to raise an issue but even if it’s something that turns out to be intended or not actually a bug then it will just get closed and there’s no harm done. Just do your research first before actually opening an issue.
Open Issues in your own repositories
It sounds mad but you’ll actually get a contribution if you raise an issue on one of your own repositories! Now, i’m not suggesting that you just add pointless issues to your GitHub profile for the sake of it; if an employer sees a strong contribution history on your profile but no actual work they’ll smell something’s not right. However it is a good idea to use the issue tracker for your repositories to keep tabs on the bugs that you might find during testing (but haven’t had time to fix) or features to be implemented in the future. I guess there is also the side benefit of showing other people (including employers and potential contributors) your awareness of what needs to be done on the project.
Contribute to repositories
So probably the trickiest way to increase contributions to your GitHub profile for a Junior Developer is to contribute to an open source project. I say tricky because it’s likely that in order to fix an issue, you’ll need some pretty good coding skills. However there are a few things you can do to make this easier:
- Remember that issue you raised in the repository before? You’re probably a good candidate to fix it!
- Owners are always looking for more help with documentation and/or test cases to be written
- Check out a beginner friendly repository to start contributing to https://github.com/showcases/great-for-new-contributors
Use CodeTriage
If you’re still stuck finding repositories and/or issues to fix for your contributions you could take a look at CodeTriage https://www.codetriage.com/ You can browse popular and not so popular repositories and express an interest in helping out. CodeTriage will then periodically send you issues that you might be able to help with based off of your selection. There’s no obligation to help out and you’re not ‘assigned’ any particular issue. They purport to have an algorithm that intelligently sends you these issues (but not too many if your time is taken up). Although this doesn’t sound much different from just searching GitHub for issues it kinda reminds me of the time I used to answer email support ‘tickets’ whilst working in Technical Support. Left to your own devices, you’ll probably just cherry pick the easy problems but when you are actually given a specific problem and take action on it, you’ll actually learn something new! And isn’t that the point of contributing to open source? Got any of your own contribution tips? Share them in the comments below.