Optimizing your github profile!
This blog covers steps you can take to optimize your Github profile.
I have been using Github a bit more lately, I have seen a lot of awesome GitHub projects and some not so great ones. This has helped me to get an idea of what is the difference between a good and great project. In this blog, I want to pass those insights on to you.
To highlight these concepts I have attached my projects where I have attempted to implement these concepts.
The number one issue I see with projects is the lack of a Readme. Readme is a good way to explain what your project does, it shows your ability to document things and to explain ideas succinctly. These are qualities an interviewer is looking for, it would go a long way in forming a favourable impression of you. Furthermore, it would help people looking at your code to better understand your project. By skipping out on the readme you are tossing away a great tool in your toolbox.
Use your Readme as a method to explain what problem you are trying to solve, how to set up your project, explain the future of your project and so on. Make sure you do not have any glaring spelling errors in your Readme.
Eg: Django CMS
Have a live demo for your website or tool if it is hostable if not have a gif in your Readme. This is important since a recruiter or an interviewer looking at your project is never gonna deep dive into your project code, they will probably try to gauge what concepts you have implemented, a demo helps a long way with this. It also demonstrates that you know how to push websites to production.
I have used Heroku to host some of my projects mainly because of the ease of pushing to production, I have also seen some netlify being used. Choose any of these platforms and host your project. Make sure your hosted website domain is clean and easily visible in your repo.
Pay attention to your Repo, having a .DS_Store in your repository will look very amateurish, this can be easily avoided by adding a .gitignore. Have a clear folder structure for your project, for example, have an src folder for your main code. You can look at other well established open-source projects for inspiration.
Something else good projects have in common is that they follow a commit philosophy, I have seen a lot of people make commits that wouldn’t make any sense if they were to look at it a few days later, don’t make this mistake, coding is a collaborative process, you are not writing the commit for yourself, you are writing it for your teammates, keep this in mind while you are writing commits. I try to follow the Angular commit style which is a very clean way to present your commits.
Another thing to do would be to add a license. A license in your repo increases the authenticity of your project and looks professional.
Eg: Django CMS
Ensure your profile has a professional username, this I learned the hard way because I thought it would be funny to have 420 in my profile name. There is no way that comes out looking good. Also in the domain of naming, make sure your project has an easily searchable name, as it would be otherwise very difficult for people to discover your project.
If you are working on concepts or ideas that do not have a lot of resources online, any information you have gathered, make sure you take notes and consolidate into a blog. This is a good way to give visibility to your projects and ideas and also in the process helps a lot of people.
Most important step of them all.
I know Reddit/Internet is big on being modest and all forms of promotion are seen as bad but build useful things, people will appreciate it. At the end of the day number of stars and the number of forks count, it means you have made something meaningful, that has made an impact on the people around you. It is an extremely gratifying feeling that drives me a lot.
A good way to plug is to have a personal blog or post about your projects to Reddit ;). Hence this article.
Hoping to write more of these based on your review.
- Add a Readme.
- Add a Demo.
- Add .gitignore, follow commit philosophy.
- Have a professional username.
- Have a blog.
- Promote your projects