When you think "GitHub", you're probably thinking of what we lovingly refer to as GitHub Dot Com: The Web Site. GitHub Dot Com: The Web Site runs on an incredibly interesting infrastructure composed of very powerful, cleverly configured, and deeply handsome servers. This is not their story.
This is the story of the other 90% of our infrastructure. This is the story of the 350 AWS instances, 250 Heroku dynos, and dozens of Rackspace Cloud, Softlayer, and ESX VMs we run. This is a story of tooling and monitoring, of happiness and heartbreak, and, ultimately, of The Cloud.
GitHub Pages, a feature allowing users to publish content to the web by simply pushing content to one of their GitHub hosted repositories, has had lackluster performance and uptime in the recent years. In this talk, Jesse will discuss the core requirements of the GitHub Pages application, why Erlang, Riak, and Webmachine were chosen for the development, and how they were used to fulfill those requirements now and for years to come with minimal development and operational maintenance.
Someone once told me that software development is a constant battle against complexity. Over the past three years we've built several large systems at GitHub and if anything, that saying is an understatement. Things like tight coupling, insufficient testing or documentation, lack of versioning discipline, and underspecified design documents can easily lead you down a path of ruin. In this talk I'll cover many of the techniques we use at GitHub to defend against complexity in our Ruby systems, including Readme Driven Development, Semantic Versioning, TomDoc, Git/GitHub workflow, modularization, metrics, and exception reporting.
Keavy is part of the internal tools team at Github. She will give an insight into some of the internal tools used at Github, and discuss the importance of building and using software that enables and supports your team, whether onsite or distributed, to be more productive, informed, motivated and happy.
It has been said that software development is a constant battle against complexity. GitHub has built several large systems over the past three years, all while engaging in the proverbial battle against complexity. Things like tight coupling, insufficient testing or documentation, lack of versioning discipline, and underspecified design documents can easily lead developers down a path of ruin. This talk will cover many of the techniques GitHub uses to defend against complexity in Ruby systems, including Readme Driven Development, Semantic Versioning, TomDoc, Git/GitHub workflow, modularization, metrics, and exception reporting.
Tom Preston-Werner is a cofounder of GitHub, the social coding phenomenon that has captured the imaginations of hackers around the globe. He is also a serial entrepreneur having sold Gravatar to Automattic and run a web/graphic design firm, Cube6 Media, out of San Diego.z
It's no secret that GitHub.com ships fast and often. As do our native clients: GitHub for Windows and GitHub for Mac.
I'll be taking a look at how GitHub for Mac ships quite unlike any other Mac app and how that has a knock-on effect for end-user testing.
Keeping bugs away from users and maintaining a high level of quality – all while shipping fast and often, means that our QA needs to be as rapid, collaborative and adaptable as the entire development process.
We tuck a lot of features away on github.com.
Sometimes the UI just hasn't been fleshed out. Or we have bigger plans in mind for the feature in the future. Or it just hasn't been finished yet. But we still want to give you the flexibility of using that feature today.
The same can be said about Git. If you've ever looked at the manpages, there's feature after feature and option after option in its binaries. Part of the strength of Git and GitHub is having access to those features when you need them, and getting them out of your way when you don't.
This talk covers both Git and GitHub: different tricks I've picked up after two years at GitHub, helpful advice on common gripes I've seen in support tickets and tweets, and just general nifty things that make you a faster, more capable technologist.