Recreating the GitHub Contribution Graph with CSS Grid Layout

Recently, I decided to try to recreate the GitHub Contribution graph using CSS Grid Layout, and found it was an interesting challenge. As I always find while working with CSS Grid Layout, I end up with far less CSS than I would have using almost any other method. In this case, the layout-related part of […]

Improve the GitHub Website with “Refined GitHub”

Refined GitHub is a browser extension for Chrome and Firefox “that simplifies the GitHub interface and adds useful features”. The nice list of additions includes URL Condensing (pictured above) and Markdown preservation when copying comments (pictured below). The extension is also able to add a few extra views, filters, and links (such as linking to […]

Context aware MySQL pools via HAProxy

At GitHub they use MySQL as their main datastore. The setup is a typical “single-writer-multiple-readers” design. They loadbalance between server pools using HAProxy, with some cleverness built in: Instead [of checking whether a MySQL server is live with mysql-check], we make our HAProxy pools context aware. We let the backend MySQL hosts make an informed […]

Deployment at Github

All deployments happen in chat via Hubot commands, which ensures that everyone in the company (from development to operations to support) has visibility into changes that are being pushed into production. Deploying branches to GitHub.com → Reminds me of how deployments at Etsy happen. They’ve got Deployinator integrated into IRC and deploy using deployment trains. […]