Presented by

  • Katie Bell

    Katie Bell

    Katie is a Lead Software Engineer at Campaign Monitor, where she's working on a bunch of different things focused around how to break monoliths and make legacy systems less terrible to work with. In her two years at CM she's learned to like C#/.NET and not-hate Windows, but it was a bit of a culture shock and she's still working on migrating everything to Linux. Before CM she was a developer at a startup called Grok Learning, bringing the joys of programming to masses of high school kids, and before that she spent six years working at Google, first a software engineer then as a site reliability engineer.


Running .NET Framework code on Linux used to be something that you would approach with caution, and only if you needed to, especially if the code was originally written to only ever work on Windows. With improvements to Mono and the release of .NET Core, this is now easier, more reliable and more officially Microsoft supported than ever. At Campaign Monitor we've got lots of Windows-specific C# .NET code, in particular we had these 78 http-serving and background task processing services that caused us some headaches. I and a couple of fellow engineers set out to convince management that a project to migrate them all to .NET Core (on Linux) was worthwhile, and convince them we did. I will take you through this six month project from its start as a crazy idea to its successful completion and results. We'll learn a lot about .NET Core on Linux and Docker, what is easy to migrate (and what is not), the expected and unexpected issues we encountered and how to get a project like this off the ground and done.