“In a five-minute break, walking to the bathroom and back, we were able to completely change the company strategy around support for Linux and open source.”
When I left the Microsoft .NET ecosystem in January 2018, my development experience was almost entirely Windows-based. I wrote C#/.NET Framework code on a Windows PC using Visual Studio and deployed applications to Windows servers running IIS through publish profiles or manual file deployments. At the time, .NET felt very much like a closed ecosystem—being a Windows developer essentially meant being locked into Windows tools, servers, and workflows.
When I left the Microsoft .NET ecosystem in January 2018, my development experience was almost entirely Windows-based. I wrote C#/.NET Framework code on a Windows PC using Visual Studio and deployed applications to Windows servers running IIS through publish profiles or manual file deployments. At the time, .NET felt very much like a closed ecosystem—being a Windows developer essentially meant being locked into Windows tools, servers, and workflows.
After moving to an open-source, Linux-based environment for seven years, I became a more well-rounded engineer. Without Visual Studio solving every problem with a push-button UI, I had to learn the command line and embrace tools that offered flexibility and control. I learned how to scale applications using Kubernetes and just how important robust caching is to any application at scale. That period challenged me to learn new skills and helped me grow as a developer.
Fast forward to 2024, and I find myself back in the .NET ecosystem—but it’s a completely transformed landscape. At first, I was skeptical. However, my co-founder and friend, Caleb Bertsch, who had returned to .NET Core a few years earlier, kept advocating for it. He assured me it was nothing like the ecosystem I had left behind. He was right.
Today, we write 99% of our .NET code on MacBooks, using Windows only for legacy .NET Framework applications. Applications are deployed to Azure on Linux containers, and we leverage Docker to run our apps and supporting infrastructure locally (Redis, MSSQL, etc.). Instead of the old publish profile model, we use GitHub Actions with YAML files to automate deployments to production. The shift is incredible.
One of the most exciting developments for me has been C# Blazor, which has completely changed my view on web development (this is coming from a huge PHP Laravel fan, which I still love, fwiw). Blazor, powered by WebAssembly (WASM), showcases the versatility and potential of building rich, client-side applications with .NET. It’s a game-changer. I can write fully interactive UIs without a line of JavaScript (mind blown).
This transformation didn’t happen by chance—it’s due to Satya Nadella’s leadership. By embracing a "high-velocity decision-making" approach (as popularized by Jeff Bezos in his annual letters to shareholders) and challenging legacy thinking, Microsoft has created a more open and innovative developer ecosystem. Nadella’s vision has truly redefined the future of .NET development. I couldn't be happier to be back in this ecosystem, taking advantage of the progress.
Here is how it all happened:
"The CEO also smashed through outdated corporate ideas, notably Microsoft’s aversion to open source software, which it saw as a threat to its model of locking in customers with proprietary tools. “Microsoft had totally neglected the open source world for a decade—in fact they’d been hostile to it,” says Nat Friedman, who in the early 2010s ran a company based on open source software. “While Microsoft’s relationships with developers have been central to the success of the company, it had lost a generation.”
Nadella wanted to win the next one. Even before he became CEO, when he was in charge of Azure, one trip set him on the course. He and his lieutenant, Scott Guthrie, met with a group of startups to sell them on the cloud service. All of them used Linux. When the Microsoft executives left the room for a break, Guthrie said that Microsoft really should support Linux. “Absolutely!” said Nadella, trash-canning years of Microsoft dogma. Guthrie asked whether they should review the decision with other Microsoft leaders. “No,” Nadella said, “let’s just do it.”
“In a five-minute break, walking to the bathroom and back, we were able to completely change the company strategy around support for Linux and open source,” says Guthrie. When Nadella later told Ballmer, who was in his final days at the company, he simply informed him of the policy shift. Then, two months after Nadella became CEO, Guthrie suggested that they change the name “Windows Azure” to “Microsoft Azure.” It was done on the spot, sending a signal that Microsoft would no longer assess every move based on its impact on Windows."