Sep 9, 2019
Today, your host, Jeffrey Palermo is speaking with Jared Parsons, the Principal Developer Lead on the C# Compiler Team. Everybody tuning in probably uses his code on a day-to-day basis! Jared started out at Microsoft 15 years ago as a Developer; moved on to become a Senior Developer; then Principal Developer on Midori OS; and most recently, the Principal Developer on C# Compiler Team, which he has been with since 2014.
In this episode, Jeffrey and Jared are taking a look at what the DevOps environment looks like for the C# Compiler. They take a look at how the source code is organized, the configuration process, some of the challenges they’ve run into and how they’ve solved them, as well as Jared’s career journey with Microsoft.
The C# Compiler is a highly depended on, complex, widespread piece of software — so tune in to get all the behind-the-scenes insight with Jared Parsons!
Topics of Discussion:
[:39] Be sure to visit AzureDevOps.Show for past episodes and show notes!
[:49] Jeffrey gives some announcements and lets you know where to get a hold of his book, .NET DevOps for Azure.
[2:13] About today’s guest, Jared Parsons.
[2:27] Jeffrey welcomes Jared on to the podcast!
[3:17] Jared speaks about his background with Microsoft and how long he has been with the C# Compiler Team!
[4:09] Jeffrey and Jared begin to discuss what the DevOps environment looks like for the C# Compiler, starting with how the source code is organized.
[4:51] Is everything public on GitHub?
[5:15] If someone clones the Roslyn .NET compiler repository, will they be able to build it locally?
[6:44] Besides the compiler, what other components are included?
[7:35] Do they use Azure DevOps Services?
[8:13] Do they have branching models?
[9:47] Is it YAML-based?
[11:44] Jared explains the goal of their CI build, as well as all that they do in CI.
[13:25] Some of the early issues they ran on to on the Roslyn project.
[13:55] Jared dives back into describing the DevOps environment for the C# compiler.
[15:28] What platforms are the fastest to do this process with?
[15:53] A word from Azure DevOps Podcast’s sponsor: Clear Measure.
[16:20] Jared continues the conversation about CI.
[20:06] After the CI build, Jared speaks about what’s next in the configuration.
[21:12] After the CI build finishes, Jared explains how they package it up and release it.
[22:27] Do they use Azure Artifacts to store the result of the build? And what format of Artifacts have they chosen?
[23:53] Jared explains the final step in their release pipeline.
[25:33] Jared explains the next pipeline that’s kicked off after they complete their release pipeline.
[26:02] Jared shares how they enforce compatibility.
[26:50] Does Jared have static code analysis in place in their pipeline?
[30:08] Where to find everything Jared has been talking about today.
[31:13] Do they use any third party Visual Studio add-ins?
[31:54] How are they planning on targetting a platform that runs from a URL?
[34:17] Jeffrey wraps up this week’s podcast and thanks Jared for joining!
[34:39] Jared recommends a few resources for those looking to learn more.
Mentioned in this Episode:
Clear Measure (Sponsor)
.NET DevOps for Azure, by Jeffrey Palermo
bit.ly/dotnetdevopsbookforcommunity — Visit to get your hands on two free books to give away at conferences or events!
Jeffrey Palermo’s Youtube Channel
GitHub.com/dotnet/Roslyn-Analyzers
Want to Learn More?
Visit AzureDevOps.Show for show notes and additional episodes.