satellite-image-deep-learning

Share this post

Understanding the success and significance of the satellite-image-deep-learning repository

www.satellite-image-deep-learning.com

Understanding the success and significance of the satellite-image-deep-learning repository

Why has this repository been a success, why is it significant, and top 10 best practices for making your Github repositories stand out

Robin Cole
Nov 16, 2022
1
Share this post

Understanding the success and significance of the satellite-image-deep-learning repository

www.satellite-image-deep-learning.com

I maintain a popular repository on Github called the satellite-image-deep-learning, which has passed the 5k stars threshold, making it the first repository in the remote-sensing category to do so. In this post I discuss what I think makes this particular repository so successful, and ponder the significance of this success. Having reviewed hundreds of repositories, I will offer my insights into what makes a repository stand out, and offer practical advice on how you can make your repositories stand out too. I will first begin with an introduction to Github and why it is an important platform for researchers and developers.

What is Github?

Github started life as an internet service for hosting & sharing code. It derives its name from the Git version control system which is used to track and manage changes to code. Whilst Github is not totally unique (alternatives include Gitlab and Bitbucket), Github does have the largest number of registered users at over 83 million users. Since it was bought by Microsoft in 2018 it has steadily gained a deeper integration into popular code development tools such as VScode, and has gained more social networking features such as user profile pages and the ability to follow users. Furthermore the diversity of users on the platform has grown over time; initially mostly users came from a traditional software development background, but the platform now has many users from research labs and academia. In particular it is increasingly common that the authors of academic papers (on deep learning in particular) will release the code required to reproduce their work on Github. There are also many researchers who host their personal and group blog pages using Github Pages (e.g. mine is hosted this way).

Github has also become a popular platform for knowledge sharing through pages such as my own satellite-image-deep-learning repository. These knowledge repositories can take a range of formats, including as Awesome lists, ebooks or discussion threads. Google searches on technical & academic topics will often return links to repositories on Github, and platforms such as paperswithcode will also link research papers & repositories. There are many articles which claim that researchers and developers with a high profile online also get more recognition for their work (whether paper citations or approaches for lucrative job roles), and I believe that Github is an important platform to have a presence on for this purpose. But as with other online platforms and social networks it can be challenging to build a reputation and make your profile stand out. I want to first address the main way in which this is achieved on Github; by creating highly starred repositories.

The star system ⭐

The most commonly cited measure of popularity of a repository on Github is the number of stars that the repository has been given by users. Similar to a like on a social network, a star is how users show their approval of a repository. Stars are also used as a bookmarking system for repositories people plan to revisit often. Generally the more stars a repository has, the more prominently it will feature in search results, and the more likely it is that other users will discover the repository. An example of a search for 'semantic segmentation' on Github will return results that are roughly ranked by star count.

The people who create repositories with a high star count are themselves more likely to attract followers on the platform, which means that their updates will feature in the news feed of other users more often, again leading to more stars on their repositories. Note that Google also indexes Github and will include highly starred repositories in search results, so creating a repository with a high (or even modest) star count is a great way to raise your profile online. So how do you make your repository accumulate stars? I have reviewed hundreds of repositories on Github and observed that there are a few best practices which the most starred repositories adhere to. Let's now move on to a list of the top 10 best practices for creating successful repositories on Github.

Top 10 best practices on Github

  1. Get naming right: As shown in the screenshot of the 'semantic segmentation' search results, the first exposure users will have to your repository is through the name and description. My advice is that the name of your repository should not too be short, and not too long either. I see many deep learning repositories named after the network (e.g. ABCnet), and lacking any description, leaving the user guessing as to the purpose of the repository

  2. Use topics: Under the repository description you can enter up to 20 'topics'. Using topics will allow Github to correctly index your repository and feature it in relevant searches

  3. Add a Social preview: In the repository settings you can add an image which will then be displayed alongside the repository name and description in search results. Few repositories do this and it is an easy way to make your repository stand out. I used brandmark to create a unique logo for satellite-image-deep-learning

  4. Add an intro paragraph: Begin the repository Readme with a short (2-3 sentences) paragraph explaining what the repository is about and why people should care

  5. Don't clutter the root folder: The first view users will have of your repository is the contents of the roof folder. Is this is a disorganised mess then users may move on quickly

  6. Keep it fresh: if you have a significant repository then try to make periodic contributions, as these will show that the repository is getting regular attention and is not abandoned

  7. Get the ball rolling on star count: repositories with zero stars may get passed over in searches, whilst even having a few stars in a niche area will make your repository stand out. Making posts on social media (Twitter or LikedIn) is, in my experience, an effective way to generate some initial interest in your repository. This should translate to a few stars and get the ball rolling

  8. Code quality: Assuming your repository contains code, then first impressions count. Using a tool like Black will instantly improve the formatting of your code and create a positive first impress

  9. Quick start: If your repository contains code, have a very short paragraph or set of bullet points explaining the steps to get started using your code. Alternatively have a URL that will launch a Google Colab notebook that will run your code. If it is a knowledge repository, have a clear entry point for new & novice users

  10. Add structure and visuals: use Markdown for your repository Readme. Markdown allows you to create a well structured and visually appealing document, as well as supporting some interactivity, allowing the use of images etc. Once you are satisfied, show it to someone who is not familiar with your repository and get some feedback

These best practices are shown below:

This list is by no means exhaustive, but I guarantee that if you implement the above best practices you will increase the chance of your repository gaining stars on Github. Most of these best practices can be implemented with minimal additional effort, perhaps adding only an hour of extra work before your first release. Furthermore once you have refined your approach on one repository, you can use it as a template to quickly get new repositories into shape. However there are many repositories which do follow these best practices, yet still have very few stars and low visibility. In my experience, promoting your repository on social media is a reliable strategy to grow the star count.

Promoting your repository on social media

I strongly recommend promoting your repository on social media in order to attract users (and therefore stars) to your repository. The platforms to target are primarily:

  • Twitter (using a personal or dedicated account)

  • LinkedIn (personal account and in groups such as the satellite-image-deep-learning LinkedIn group

  • Blogging, on Substack, Medium or your own blog

  • On relevant forums

You can put out posts for really any reason, but examples would include:

  • On creating and publishing a new repository

  • On new releases or feature additions

  • On milestones such as hitting 100 stars

I have personally observed a flurry of new users and stars after putting out posts such as the one below:

Twitter avatar for @robmarkcole
Robin Cole @robmarkcole
Incredible 🤯 the satellite-image-deep-learning repo now has over 4000✨on @github It appears people like the new logo 👌 Currently only one sponsor however, would be great to receive more support 🙏github.com/robmarkcole/sa…
github.comGitHub - robmarkcole/satellite-image-deep-learning: Deep learning with satellite & aerial imageryDeep learning with satellite & aerial imagery. Contribute to robmarkcole/satellite-image-deep-learning development by creating an account on GitHub.
3:56 AM ∙ Jul 30, 2022
413Likes81Retweets

I now want to discuss the significance of a successful Github repository, using the satellite-image-deep-learning repository as an example.

The significance of a successful repository

It takes time & perseverance to create a successful repository on Github. Precisely how you judge success will vary depending on your goals and the domain you work in. For example if you work in a very niche domain then getting a handful of stars is an indicator of broader interest in that domain. Attracting a couple of active users to your code could be the start of building a community online around your chosen niche, and spawn further opportunities for collaboration. If you are working on a knowledge repository you may start receiving approaches about consulting opportunities, or invitations to present at conferences and industry events. If you are job seeking then recruiters and potential employers may approach you after viewing your repository and public profile. Studying which users star your repositories can also provide useful insights into where the interest in your work is coming from, allowing you to steer future promotional work in the most promising direction.

Having a very successful repository is a strong indicator of the wider forces at play in your domain. As I noted in the introduction, the satellite-image-deep-learning repository has passed the 5k stars threshold, making it the first repository in the remote-sensing category to do so. I think the significance of this success are:

  • There is significant and growing interest in the topic of applying deep learning to satellite & aerial imagery

  • This interest comes from not only people within the traditional remote sensing community, but also from other communities including the deep learning and computer vision communities

  • Interest in this topic is not restricted to technical professionals & academics, but also people from non technical backgrounds who want to keep up to date with the latest trends and capabilities

  • There is a lack of entry level material & courses for those who want to get started applying deep learning to satellite & aerial imagery

The reasons above give me motivation to continue creating material on this topic, particularly material for beginners and those trying to break into this exciting domain. A similar evaluation of the success of your own repositories may guide you towards a particular course of action.

Closing thoughts

I hope that this has been a useful introduction to Github and provided practical steps that you can take to amplify the interest in your repositories. Having a successful repository can open the door to many new opportunities and provide a platform to grow your presence online. If you wish to become active on Github but are hesitant to publish a repository of your own, a good way to get started is through engaging with existing repositories, for example by reporting bugs, participating in discussions on new features, or even just promoting repositories that you think deserve more attention. Thanks for reading!

Share this post

Understanding the success and significance of the satellite-image-deep-learning repository

www.satellite-image-deep-learning.com
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Robin Cole
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing