Mar 18, 2019
Phil Haack joins the podcast to discuss DevOps at GitHub!
Phil has an interesting and extensive career background. He started out as a Manager of Software Engineering back in 1997. Since then, he’s done a lot — but some of his recent highlights include: being the main Program Manager at Microsoft from 2007-2011 (responsible for ASP.NET MVC and NuGet), and leading the Client Apps team as Director of Engineering at GitHub. Now, most recently, he has founded his own company, Haacked, which he started to mentor software organizations to be the best version of themselves.
In today’s episode, your host, Jeffrey Palermo, and Phil Haack, dive deep into discussing DevOps at GitHub. They talk about his role as Director of Engineering; how GitHub, as a company, grew while Phil worked there; the inner workings of how the GitHub website ran; and details about how various protocols, continuous integration, automated testing, and deployment worked at GitHub.
Topics of Discussion:
[:48] About today’s episode with Phil Haack.
[1:10] Phil talks about how he became the Program Manager at Microsoft in charge of ASP.NET MVC and NuGet, and what the role entailed.
[4:00] The transformation Phil helped lead that continues to affect .NET developers today!
[5:35] Phil shares the high points of his career at GitHub.
[7:56] How Phil’s role at GitHub developed, and how (and why) GitHub went from “no managers and no meetings” to hiring on managers and starting meetings.
[12:10] When did GitHub start to distribute regionally?
[13:43] How many leased offices did GitHub crop up while Phil worked there?
[15:25] What Phil is currently working on since leaving GitHub!
[17:27] About the new book Phil is writing about GitHub.
[20:07] Major strategic decisions and key aspects that gave GitHub the ability to put out features at a really fast clip for a really long time (with an incredible quality track record to boot!)
[24:18] A word from The Azure DevOps Podcast’s sponsor: Clear Measure.
[24:44] Architecturally, is GitHub.com one website or essentially two hundred different web applications that make up all the URLs of the website?
[26:50] Was there a standard pipeline structure that GitHub maintained (or a common set of steps), or was it moreso a ship-it-however-you-can protocol per service?
[27:50] If Phil had multiple services in the client application, did he have a separate Git repository for each one of those, OR, one Git repository for his team with multiple, independent services?
[29:52] Did every continuous integration build have its own Git repository?
[32:30] What types and quantity of automated testing did Phil pack into the continuous integration (CI) build?
[33:48] Phil highlights some significant things that happened in the CI build step.
[34:31] Did Phil find any good frameworks that worked out in the UI space?
[35:02] What an automated test can’t tell you and why it’s so crucial to have a really good tester!
[36:15] When they did have automated deployment between environments, what tools and methods did Phil use for those deployments?
[38:04] For the services they were going to deploy to GitHub servers, how many environments did Phil set up in the deployment pipeline ahead of production?
[41:07] The major tools on the deployment side when Phil was working at GitHub.
[43:44] What Phil recommends listeners to follow-up on to continue their research!
Mentioned in this Episode:
Clear Measure (Sponsor)
Want to Learn More?
Visit AzureDevOps.Show for show notes and additional episodes.