GitHub - Where the world builds software.
GitHub is a development platform that enables developers to shape the future of software.
It enables developers to collaborate and work together, contribute to the open-source community, manage their project(Git) repositories, review code, track bugs, set up workflows, and do many other things that make development easy.
GitHub was founded in 2008, and since then it has grown by leaps and bounds and is home to more than 200 Million repositories maintained by 83 million developers, and 4 million companies. Today pretty much everyone hosts their open source projects on GitHub, including giants like Google, Facebook, Twitter, and even Microsoft.
Today GitHub isn’t just a place where developers co-create and collaborate. It’s become a place where companies go to scout good engineering talent, and if you’re a developer, and have your Github profile sorted - You might just be able to use that to find jobs.
In this blog, we will share ideas on how you can build, and optimise your GitHub profile for maximum effectiveness.
GitHub: Social network of programmers
Just because GitHub stores repositories, one should not straightaway assume that it is just a platform where people just write lines of code and store it. There is more to GitHub than just code and repositories.
GitHub is not just limited to collaboration. It also allows developers to follow each other on GitHub, rate each other’s work, share feedback, receive updates on various ongoing projects as well as communicate privately with each other.
All of this qualifies GitHub as a serious social network meant for software developers, so serious that Microsoft decided to acquire it for a whopping $7.5 Billion dollars!
What does GitHub provide to a programmer?
Some of the significant features provided by GitHub are as follows-
- Home of 83 million developers: GitHub is practically where the open-source lives. There are other open-source coding platforms out there but they are smaller in size compared to GitHub. This is highly advantageous to organisations and individual developers.
Any organisation that is already using GitHub will find it easier to maintain a smaller learning curve for its employees who are already accustomed to the ins and out of GitHub. Similarly, employees who already know how to use GitHub will have an advantage when they become a part of an organisation already using GitHub.
With a huge userbase at hand, developers can always fall back on this platform to learn new things or find solutions to difficult problems.
- Collaboration: GitHub allows developers to contribute to others’ projects. A personal repository created on GitHub has two levels of permission: the repository owner and collaborators. The owner of the repository can invite other developers to contribute to the project. The collaborators can then either pull(read) the contents or push(write) changes to the repository. The ability to collaborate is of prime importance for team development in an organisation. Being able to collaborate internally allows teams to re-use code already written by them or other teams, thus fostering an environment of growth and productivity.
- Unlimited public and private repositories: GitHub provides storage spaces named “Repositories” for developers to store their projects. By default, a GitHub repository is public, meaning anyone on GitHub can go through the content inside a repository and make contributions to make it better. Although, developers can choose to make their repositories private, in case they don’t want their codebase to be accessible to everyone.
Unlike other platforms that put a limit on the number of free repositories and collaborators, GitHub lets a developer use unlimited repositories and invite an unlimited number of collaborators to contribute to their project.
Although GitHub provides paid services for you to upgrade your experience, the free version provides a developer/organisation with almost everything to ensure efficient function.
- Project management: GitHub provides tools such as GitHub issues & GitHub project boards that make it easier for developers or a group of developers to anage a project. Using GitHub issues, a developer can raise issues in a code, break them into tasks, find out solutions to them, log & track bugs, and have conversations about the project.
- Organisation account: GitHub provides the option to create an organisation account where multiple teams from an organisation can collaborate across various projects, and codebases. Multiple people can use their personal accounts to join the organisation's account.
- Display of contributions made: Every repository a developer has created or contributed to gets displayed in his profile. GitHub provides a dedicated tab named “Repositories” for this. The repositories with the most number of views and the most number of stars feature at the top. GitHub profiles have a contributions calendar section that gives details of the frequency of the contributions made over the past year.
- Conversations: GitHub conversations and Team Discussions are built-in tools inside the repositories that allow project collaborators to brainstorm ideas or just hold discussions to plan, analyse and make decisions related to a project. These conversations prove beneficial in helping developers/project managers to get different points of view from the people who contribute to the project, making it easier for them to reach a solution faster.
- Native mobile applications: GitHub has its own mobile application. The response at the time of its launch had been amazing. Initially designed just for commenting and collaborating on issues, GitHub’s mobile application has evolved a lot. Today, the most popular activity on GitHub is code review. With a mobile application, GitHub has empowered mobility and enabled a new way of working. People can now easily access and review code just with the click of a button.
- GitHub Insights: GitHub insights make the important task of tracking metrics and their monitoring very easy for any organisation. It provides a lot of data on collaboration, issue resolution, pull requests, and many others. Even though GitHub Insights is still in its growth phase, the amount of data that is made available is sufficient enough to track the performance of teams within an organisation.
- Activity report: The activity report makes it easier for developers to see what their peers are working upon, and keep an eye on other projects inside the organisation. Thus when the need for a code arises, with an activity report, a developer would find it easier to know who is working on it and where to find it.
Advantages of using GitHub
Collaboration and skill development with the help of peers is just the surface-level advantage GitHub has to offer. There is lots more beneath the surface level though. Let’s find out.
- Mastering the craft: With tech giants like Google and Microsoft using the platform for programming endeavours, the quality of projects made public is unparalleled. The most advantageous aspect of GitHub is that it helps developers improve.
While navigating through various projects, developers can browse through other people's code to develop a better understanding of the kind of projects they would like to contribute to. With GitHub’s algorithm designed to suggest projects that match a developer’s interest, a developer with a keen interest in coding can surely utilise GitHub as the means to master the craft in the long run.
- Showcasing/distributing/Populating your work: A huge userbase lets you push your projects to GitHub and let the world know how nice and useful code you write. You can also explore others’ projects on GitHub, get inspired to code more, or contribute to their project. A GitHub profile allows you to showcase your work to fellow developers, and potential recruiters. Many recruiters trust GitHub to help them successfully find their next employee. A good GitHub profile can thus maximise chances of getting hired at a great workplace even if you are not from a good university or college.
- GitHub documentation: Github provides excellent documentation related to any kind of query a developer would have. From getting started to building communities a developer can literally access all the information they would need to never look out anywhere else in order to make the best out of GitHub.
- Backup: If it’s on the cloud, it is safe. With GitHub, developers' data gets backed up online and stays that way until modified. Developers don't have to worry if their system crashes or the hard disk fails.
- Free to use: Well, not all GitHub is free. The basic plan from GitHub is free. It is available for both developers as well as teams. The free basic plan allows developers to use a lot of amazing features free of cost, create an unlimited number of public and private repositories and invite unlimited collaborators for a project.
Why is it essential to maintain an effective GitHub profile?
- Proof of work: The presence of millions of users and repositories on GitHub, makes GitHub the go-to platform for developers to host their code on the internet. Thus, a developer with a great GitHub profile can take advantage of its social media functionalities to great effect and show the entire world what they do, and attract recruiters looking to hire talent.
- Version Control: GitHub keeps track of the version history of code, which enables developers to revisit changes made or restore back a particular version in case something goes wrong.
Also, a project written outside of GitHub can also be merged into the GitHub repository. Using the fork option on GitHub, developers can always make a copy of their project and then use the pull request to start making changes to the code.
- Networking opportunities: A good GitHub profile could mean a host of networking opportunities. Developers looking out for solutions to their problems can reach out to other developers for advice on their problems. On the other hand, a developer can always go out and advise other developers and that advice would much more likely be considered credible if the profile is well-maintained. A lot of recruiters look forward to hiring talent from GitHub. Hence, with an effective GitHub profile, a developer can hook a recruiter right from the moment they see their profile picture.
- Recruitment: Recruiters want to hire people who not only code but enjoy it too. Developers’ presence on GitHub alone is enough to prove their interest in coding. But merely their presence is not enough. A GitHub profile with consistent contributions, and contributions to open-source projects indicates the developer’s keen interest in programming and gives them the necessary edge to beat the competition and bagh the job.
- Proof of teamwork: GitHub is just not limited to personal projects, it gives ample amount of opportunities for developers to contribute. These contributions appear in the repositories tab of a developer’s profile and can serve as proof of how well a developer works with others.
- A true reflection of a programmer’s skills: GitHub profile acts as a very efficient portfolio of programmers. Until and unless a developer’s repository is private, anyone can view the repository and its content.
Moreover, the way developers maintain their GitHub profiles indicates how meticulous they are in their approach to maintaining proper project documentation, their everyday activity, and the standards they maintain while writing codes. In a nutshell, a GitHub profile is a true reflection of developers and their skills.
What does a GitHub profile interface look like?
A GitHub profile is the perfect place where people get to see the summary of a developer’s work along with their personal and professional information.
As soon as you open a GitHub profile, you would clearly be able to see two sections of the profile.
The left-hand side of any GitHub profile contains short snippets of personal and professional information, a profile picture, the follower base, a follow button, and a list of badges earned as achievements.
The right portion on the other hand has various tabs that provide visitors the information regarding the developer’s work and contributions on GitHub.
Let us break down each of these tabs one by one -
- Overview: This tab is where developers can share detailed information about themself. Many developers now use the README file to do this.
GitHub README is a text file that contains information about the project or it might contain instructions about any updates. Whenever a repository is created, GitHub, by default, provides the option to create a README file. These README files can be used to give out personal information.
Since this is a text file a developer can be as detailed as possible. The range of information that can be shared ranges from the programming languages known, links to the open-source projects, blog post links (if any), external links to social media profiles, etc.
Additionally, in the overview tab, GitHub automatically shows a developer’s pinned repositories and the contributions calendar.
- Repositories: This tab puts on display all the projects a developer has ever created or contributed to on GitHub. The projets that garner the maximum eyeballs are displayed right at the top.
- Projects: This particular tab on a GitHub profile contains the list of issues, pull requests, notes, and other work that needs to be done on a project by the developer.
- Packages: The packages tab on GitHub puts together various packages that combine different programming languages that will be helpful in software development.
- Stars: All the projects that a developer marks as a star are displayed in this tab.
Ways to take full advantage of the features provided by GitHub
Okay, so now that we have a brief idea of the kind of things developers can do with a GitHub profile, let us get down to the specifics of developing an effective GitHub profile:
- README: GitHub README is a text file that contains information about the project or it might contain instructions about any updates. Whenever you create a repository, GitHub, by default, provides you the option to create a README file.
Pro Tip - Make README files that are brief, structured, clear, and contain all the necessary information. Add images and visual representations to make interesting README files.
- Profile picture: Like all other social networks, GitHub also provides space to add profile pictures. And like all other social platforms, a good GitHub profile also requires a profile picture. It always pays off to put a face to a profile that churns out good concise code.
Pro Tip - Use the same profile picture as the one used on LinkedIn. With a face to a profile, the credibility of the profile is enhanced.
- Bio: This is the space where developers can advocate for their skills, get into details about themselves, or in a nutshell use GitHub as a pivot to show different facets of their life. After all, there is more to a developer than just lines of code.
Pro Tip - Try to be specific in the bio. Include coding languages known. Talk about future goals. Provide links to social media profiles and don’t just keep it limited to LinkedIn. If there is space left then go for other Social Media profiles.
- Tags and Descriptions: Github allows developers to add descriptions and tags for their projects. A tag takes the repository back to the time of its creation. This makes it easier for the developer to see how the repository looked when the creation of the tag happened.
Pro Tip - Using tags and descriptions, developers can explain the project. Using small one-sentence descriptions.
- Status: GitHub status gives you control over the information shared on your profile. Depending upon whether you set your profile status to private or public, the information is visible to a specific set of people or everyone on the platform respectively. There are various other status options available as well. For example, status can also be set as busy to gain some privacy in case you are busy.
Pro Tip - Make your email publicly visible. This will allow recruiters to reach out to you directly.
What are the best practices to be followed to ensure an effective GitHub profile?
- Be Active: GitHub keeps track of a developer's contributions as well as their frequency of submission. GitHub displays on a developer’s profile, the contributions calendar. With the help of a contributions calendar, a person visiting a developer’s profile can easily see the number of contributions the developer made over the last year, projects contributed on, and the longest streak of contributions.
With so much data that is put on display, it becomes essential for a developer to contribute frequently. The contribution can be a small section of code or a massive chunk. But daily contributions should be made necessarily if the developer wants to showcase his dedication and passion for programming.
- Write crisp & concise code: As a developer, the goal should always be to write code that is understandable even by novice developers. Also, for people who are not developers, a developer can add README files.
- Use GitHub pages: GitHub pages allow developers to show the output of a code already written in their repository. Let’s take websites as an example. GitHub pages enable a developer to show the execution of projects in real-time. The websites can be hosted on GitHub's own domain (github.io) or a custom domain. Further, if changes are made on the back-end they get reflected in real-time on the website.
With the help of GitHub pages, developers can create websites that act as windows to their portfolio, write a blog explaining a code, document their journey of solving a problem, and even hold discussions with other fellow developers.
- Contributing regularly to projects: GitHub is a platform that provides enormous opportunities to not just learn but grow as well. A lot of projects hosted on GitHub are public and hence enable ease of collaboration from developers.
Anyone can contribute to the project with their suggestions or advice. On an organisational level, projects are also made public for employees to contribute to it. Strictly follow the guidelines laid out for collaboration and not step on other people’s toes.
- Create interesting projects to get noticed: One good way to get noticed on GitHub is by creating interesting projects. With a community of problem solvers available at hand, a project that seems interesting and poses a challenge will certainly attract developers that are looking out for better problems to solve. It might also bring in new opportunities for developers to collaborate with/work for other developers as well.
Observations of an effective GitHub profile
Now that we have an idea of how to create an effective GitHub profile, let’s have a look at a GitHub profile to get an idea about how a developer can get the most out of their GitHub profile.
Thomas Guibert is the profile we will be looking at.
For starters, Thomas does a good job of listing all his projects at the very beginning.
Next, Thomas gives us a good idea of his capabilities in terms of coding proficiency by listing out all the programming languages he knows.
He then moves on to list the open-source projects he contributes to.
In the latter half of his profile, Thomas lists out all his latest blog posts on Medium followed by information on his location, the weather there, and links to his various social media handles.
Thomas’ profile gives us a good idea about his skills and also piques interest in his personal life leaving any visitor with a feeling that there is more to Thomas than just someone who knows how to code.
A few more stellar GitHub profiles worth your attention
Check out a few more amazing GitHub profiles. Following is the list of the profiles worth checking out once
- Gautam Krishna R: An example for people who have just created a profile on GitHub. Though there is not a lot of work Gautam has worked on, his README gives us a good insight into the kind of knowledge base he possesses, his skills level, and his personality.
- Roald Nelfs: Roald Nelfs comes across as someone who works on a job by the day and contributes on GitHub by the night. His list of projects on GitHub gives us an idea that he has been active on GitHub for quite some time on GitHub. Hence, Roald’s profile can be taken up as a good example for those people who have a daytime job and have been active on GitHub for quite some time.
- Shawn Wang: Shawn’s profile is a beautiful mixup of seriousness and fun. He sets the tone as a serious GitHub contributor with his long list of projects at the very beginning. But, as soon as we scroll down we come across his creative side. The skills and endorsement at the very end give us a good idea of the network he has built on GitHub.
Power up your workflow with GitHub Integrations
Integrations are tools or services that developers can connect to their GitHub to enhance their workflow. Following are 3 integrations that a developer can use.
- Slack: Slack is a very popular platform organisations use to communicate with their employees. This integration has been designed by the developers on GitHub themselves. It allows developers to subscribe to a single repository with a single command, and manage issues in a manner synonymous with having a conversation with another person.
- Issue Tracker Integrations: Another set of integrations that developers can make use of are the Issue Trackers. There are several options available that developers can use to work and have a full-blown discussion on an issue.
- Code Review Integrations: There are various integrations available on GitHub that reduce human intervention. Code review integrations make life easier for developers by automatically checking for issues in the code and later allowing the user to find out the solutions for the same.
GitHub can act as the perfect gateway to the tech world given you use it in a way that showcases your skills. Apart from coding, the features of collaboration also help you develop behavioural skills that are equally as important as technical skills. Hence, if you are a developer, GitHub is actually your holy grail. Use it wisely.