Ardalis (Steve Smith) speaking at Techorama 2024
Ardalis (Steve Smith)

Software Architect โ€ข Microsoft MVP โ€ข Clean Code Advocate

MVP Architect Author Speaker Trainer
Work With Me โ†’

Helping other software professionals to keep improving!

Recent Blog Posts

How Software Developers Fail

How Software Developers Fail

“Software developers fail in two ways: they build the thing wrong, or they build the wrong thing.”

These two separate failure modes are worth exploring independently, because they have different root causes and very different consequences. And Agentic AI “developers” face the same challenges, but can do both much more rapidly than their human counterparts.

The Two Ways Developers Fail

1. Building the Thing Wrong

Building the thing wrong means the technical execution is flawed. The requirements may have been understood correctly, but the implementation was flawed.

Read More โ†’
Claude Throttling and the Cloud

Claude Throttling and the Cloud

One of the foundational promises of cloud computing is elastic, near-infinite scalability. You pay for what you use, and when demand spikes, the cloud scales with you. It was supposed to be the end of capacity planning, the death of “we need to buy more servers” conversations. So why is Anthropicโ€”one of the best-funded AI companies in the world, running on the infrastructure of Amazon and Googleโ€”throttling its users during peak hours?

Read More โ†’
Own What Makes You You

Own What Makes You You

If you want to stand out, you need to have your own identity. This is true whether you’re talking about you, the person, individually, or your business. You can’t really have your own distinct identity if everything about you is just vanilla, off-the-shelf stuff that anyone else could easily do if they chose to do so. I’m mainly focusing on businesses and their branding and positioning here, but you’ll see parallels that apply to personal brands as well.

Read More โ†’
.NET Conf Most Popular Sessions Tool

.NET Conf Most Popular Sessions Tool

DotNetConf (.NET Conf) is a long-running virtual conference hosted each November with the release of a new version of .NET. Its sessions are published to YouTube each year. What have been the top sessions each year? I wrote a tool to pull the stats year by year (since 2021) to see.

Also, why do I keep giving (updated) versions of the same session, Clean Architecture, each year (like last November as covered by Jeremy Sinclair)? There are some who have found it a bit… repetitive (though I do mix it up year to year):

Read More โ†’
AI Benefits - But at What Cost?

AI Benefits - But at What Cost?

In 2026 we can all agree that AI and agentic development are certainly exciting topics which many see yielding great productivity gains. But as the investor-subsidized pricing of these services gives way to realistic and profitable business models, where will the real costs land?

As many businesses downsize staff or pause hiring to see how these new models and tools actually perform in the real world, the trillion dollar question is:

Read More โ†’
Use Asciinema and Powersession on Windows

Use Asciinema and Powersession on Windows

Introduction

I recently became aware of Asciinema when I saw that the Aspire docs are using it to document installing their CLI. As someone who creates a lot of content (or used to, anyway) and docs, this seems like a really useful tool! But it doesn’t “just work” on Windows, so I figured I’d document how to get it working on Windows for future me.

Asciinema Itself

There are basically two parts to Asciinema:

Read More โ†’
Llms Need Mark as Answer

Llms Need Mark as Answer

Introduction

Today’s LLMs have already ingested basically all of the publicly available information they can to build their models. In order to improve further, they’re going to need to seek out additional sources of information. One obvious such source is the countless interactions they have with their users, and while privacy concerns are certainly relevant here, for the purposes of this article I want to focus on another issue: quality signals. How will these LLMs know whether a given exchange led to a solution (defined however the user would define it)? Without this knowledge, there’s no way for LLMs to give more weight to answers that ultimately were fruitful over answers that were useless but the user gave up and ended the session.

Read More โ†’
Why a Free Market Fire Department System Beats the Archaic Public Model

Why a Free Market Fire Department System Beats the Archaic Public Model

By a devoted advocate for individual choice


Introduction: Fire Protection, Reimagined ๐Ÿš’

In a nation that prizes personal responsibility, it’s time to ask whether a single, taxpayer-funded fire department model still serves us best. A market of competing fire protection providers would let every household choose the coverage, response times, and perks that match their unique risk profile and budget. What’s more, it would allow individuals and households to prioritize how they want to spend their money, rather than leaving it up to big government and its known inefficiencies. Let the invisible hand of the market sort out which fire departments offer the best value for their rates, and which properties people find worth protecting with fire extinguishing services.

Read More โ†’
Single File Test Suites in Dotnet Csharp

Single File Test Suites in Dotnet Csharp

This article is part of the 2025 Advent of C# Code Calendar, which publishes 2 C# articles every day in December leading up to 25 December.

NOTE: Originally targeted xUnit v2; now updated to xUnit.v3.

Introduction

One of my favorite new features in .NET 10 is C# file-based apps (or file-based C# programs if you prefer). With this feature, we can create individual .cs files and then run them using dotnet run <file.cs>. On Unix OSes you can go even further and mark the files as executable and include a shebang (#!) directive as the first line to tell the OS what to run it with and then you can run the files directly without even calling dotnet run.

Read More โ†’