📜 ⬆️ ⬇️

How we ranked nine million developers on Github

beta.gitlance.net/top/javascript


Image source: beta.gitlance.net/top/javascript




Evaluating a software developer as a potential partner, employee or contractor, many have at some point spent time digging into his repositories on Github, trying to understand what projects he writes and what quality his code is. This activity is ineffective, moreover, it is also fraught with certain difficulties as evaluating the degree of the developer’s contribution to a particular repository, the quality of its code; you can guess whether this is really his code, and so on.


Developers, for their part, find it difficult to present their talent in an accessible and visual form. Many eventually create their own websites listing interesting projects in which they participated or are their authors themselves, which, of course, gives the result, but also with varying success.


We believe that there is a better way, and that is why we created GitLance. In essence, commits in Git, like a ledger, securely record the contributions of each participant, and on Github there is a huge variety of Git public repositories along with their developers, as well as a comparable number of their mutual evaluations in the form of asterisks on the repositories and forks coming from them. So why not use this to generate a code graph?


This is the basis of GitLance: a code graph of more than 500 million commits and asterisks from more than 9 million developers in 39 million repositories in more than 350 different programming languages. Since individual commits can appear in several repositories (in particular, in their forks) and contain more than one file (and, therefore, a programming language), the output is a rather large graph: about 15 billion edges in uncompressed form, plus minus a billion or two.


If anyone is curious, then the graph is completely loaded into memory, while it is stored on shards with a MongoDB database. Our project is written in Go, and the estimation algorithm is essentially similar to PageRank, with repositories and users as the main types of vertices, and the edges in it are determined by commits, asterisks and forks.


In the end, it all comes down to about 23 million ratings in programming languages, from which we derived the very ratings of programmers. Today, the world's top 200 best JavaScript developers are available at: beta.gitlance.net/top/javascript . If you are not on this list, you can enter your Github username in the search and see what position you are in.


GitLance exists to attract attention and give recognition to the talents and contributions of the world's best developers. We will release TOP lists for other programming languages ​​in the coming days and weeks, as well as various features, including personal profiles of developers, and over time, a freelance exchange of top-class professionals will appear. Stay in touch!


Translator's epilogue


Despite the fact that in the original article the details that were potentially interesting for the technical audience were not disclosed, in my opinion, the product itself turned out to be very curious and perhaps one of the first of its kind, so I decided to collect and translate that little information about it there is.


If you have heard about similar projects involved in the derivation of the criteria “programmer X is better than programmer Y” on the basis of different statistics, please share in the comments. It is also interesting, what do you think about this line of analysis? Can an automated analysis of professional skills become a self-evident in recruiting, and will there be more harm than good from this?


In any case, GitLance represents only one of the possible systems for assessing the professionalism of a developer, and so far very limited - it analyzes the popularity of your open source products among other developers. What it can be for you: another unnecessary product, a ruler for measuring dignity, is undoubtedly professional at home and with colleagues, or a tool for monitoring well-known people in narrow circles — this is up to you.


PS According to personal observations, the data there is updated about once a month, so that sometimes you can go there for fresh ratings.


→ Original article


')

Source: https://habr.com/ru/post/323468/


All Articles