Become a Better Developer with me!

Master software development and your career

Ardalis is Steve Smith

Ardalis is Steve Smith

Proven Expertise

Steve Smith has been recognized by Microsoft as a Most Valuable Professional (MVP) since 2002, and was a member of Microsoft’s Regional Director program for 10 years. He is also a founding member of the ASPInsiders, an external advisory group for the ASP.NET product team. As Microsoft launches their new version of ASP.NET, he has been contributing to the product and authoring many sections of the official documentation on GitHub.

How can I help you

I offer various different professional services that includes private training for corporate customers, accelerate your project with a bit of mentoring or even a home like inspection for your code and a software application.


You or your team can benefit from Steve’s experience with ASP.NET using SOLID development principles, proven design patterns, and Domain-Driven Design (DDD).

“Our team could spend many hours with other developers figuring out a problem or best practice, or we could set up a meeting with Steve.”

[Steve] is able to quickly understand the problems we are trying to solve and then works with us to solve the problems.”

Read more…

Online Training

Steve has published many courses on Pluralsight, covering topics from N-Tier architecture to Refactoring to Domain-Driven Design. You can also follow Steve on YouTube for more online video content. See what others say about Steve’s courses.


Quickly learn where your application could be improved with an application assessment from Steve. An assessment will reveal “low hanging fruit” that will add the greatest value for the least effort, and can identify security and performance issues as well as maintainability anti-patterns and technical debt. Read more…


Look for Steve’s workshops on software craftsmanship, ASP.NET 5, and Domain-Driven Design at an upcoming conference, or schedule one for your team. Contact Steve for more details.

Speaking Engagements

Steve is a regular speaker at tech conferences like Codemash, Stir Trek, DevIntersection, and more. You can find some of his past presentations on SlideShare and SpeakerDeck.

Watch Steve discuss Software Quality on Channel 9 with Seth Juarez:

Interviews and Podcasts

Listen to interviews with Steve Smith on various industry shows and podcasts.

Latest Articles

I've been programming web applications using the MVC pattern for a very long time. What's more, I've been helping companies dig themselves out of technical debt for an even longer time, and I work with a wide variety of teams every year. So, I've seen things. And while I would absolutely never want to return to the old Web Forms way of building apps, I can tell you that more often than not, MVC…

Keep Reading →

Time for a recap of stats and important (and not so important) milestones from 2020, the year of the COVID-19 pandemic. Here are some other year-in-review recaps for reference and a checklist for writing your own: My 2017 Year in Review My 2018 Year in Review My 2019 Year in Review My Year in Review Post Checklist Blogging Last year I added 41 articles to my blog - the same as the year before…

Keep Reading →

There is some debate about whether the movie Die Hard (1988) should be categorized as a Christmas movie. On the one side are those who point to its central Christmas theme, music, and messaging, all of which add to and in many instances are critical to its plot and theme. On the other side are those who are wrong. Here are a number of reasons why Die Hard most certainly should be considered a…

Keep Reading →

A common feature of distributed architectures is message-based communication between systems or microservices. Whether using a message bus or queue, messages provide a means of reducing coupling between systems, allowing overall systems to remain available even when some subsystems are not. However, when designing the messages that will be used in such systems, care must be taken to include…

Keep Reading →

EF and EF Core DbContext types implement . As such, best practice programming suggests that you should wrap them in a block (or new C# 8 using statement). Unfortunately, doing this, at least in web apps, is generally a bad idea. I work with a lot of clients who are migrating from .NET Framework to .NET Core and .NET 5. Some of them weren't using dependency injection in their legacy apps, or weren…

Keep Reading →

Little's Law was first described in 1954 and later proved by John Little in 1961. It is typically expressed as: L = λW L represents the "long term average" number of customers in a stationary system λ represents the "long term average effective arrival rate" of new customers W represents the average time a customer spends in the system It's important to recognize that Little's Law is used in the…

Keep Reading →

CAP Theorem (wikipedia) is a classic "given 3 choices, choose 2" topic. The three choices are Consistency, Availability, and Partition Tolerance. You can't have all three. CAP Theorem Given distributed data or systems, the choice mostly comes up when there is a network partition, meaning two nodes of the system can't communicate immediately with one another. At that point there is a partition, and…

Keep Reading →

Tim Heuer recently published an article showing how to create your own dotnet CLI templates for generating GitHub action YAML files. I thought I'd give it a try and see how it worked, so here's my experience with it. It works by adding a template to the list of available templates used with the command. Install the template To install custom templates, you run this command and specify a NuGet…

Keep Reading →

This is the fifth and last of the 5 Laws of Software Estimates. I expanded on the fourth law of software estimates in my previous article. Like all things, how you view estimates is heavily context-dependent. If you're a developer who wants to maximize the amount of value you provide by building software, estimates do little to support this directly. As already covered by the previous 4 laws of…

Keep Reading →

I'm assuming you're here because you are seeing this error and are wondering why: The reason is most likely due to a Windows Update that restricted access to certain ports on Windows machines. The details are here. You can view a list of which ports are excluded from your user by running this command: On my Windows 10 machine I get this output: Specifically, I had an ASP.NET Core web app that…

Keep Reading →


Copyright © 2021