GitLance: How we ranked 9 million GitHub developers

Geoff Pitfield
2 min readDec 16, 2016

--

beta.gitlance.net/top/javascript

At some point, most people evaluating a developer as a potential partner, employee, or contractor have spent time digging through their GitHub repositories to understand what they’ve built and how good it is. This is both inefficient and fraught with difficulties: divining how much someone contributed to a given repo, evaluating how good that code is, wondering whether they really wrote it, and so forth.

For developers, it’s hard to demonstrate their talent in a straightforward and meaningful way. Many end up building their own websites with lists of the key projects they created or have contributed to, to varying degrees of effectiveness.

We believe there is a better way, and that’s why we built GitLance. At their core, Git commits provide a robust contribution ledger. GitHub contains a massive corpus of public Git repositories and their developers, and a similar quantity of peer evaluation in the form of starred and forked repositories. Why not use this to generate a code graph?

That’s the foundation of GitLance: a code graph representing over 500 million commits and stars from nearly 9 million developers across 39 million repositories in over 350 different languages. Because individual commits can appear in multiple repositories (particularly forks), and cover multiple files and languages, this results in a big graph: 15 billion edges uncompressed, give or take a billion or two.

For the curious, the graph is loaded entirely in memory, backed by a sharded MongoDB database. The code is written in Go, and the rating algorithm is conceptually similar to PageRank, with repositories and users as the primary node types, and commits, stars, and forks defining the edges.

When all’s said and done, it boils down to about 23 million language-level ratings, which we’ve converted into rankings. As of today the world’s top 200 JavaScript developers are listed at beta.gitlance.net/top/javascript. If you’re not on that list, you can also search for your GitHub username to see where you rank.

GitLance exists to highlight and recognize the talents and contributions of the world’s best developers. We’ll be releasing top lists for other languages in the coming days and weeks, as well as other features including developer profiles, and eventually a market for top-end freelancers. Stay tuned!

--

--