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

When it comes to effective software development strategies, two distinct approaches often lock horns: Trunk-Based Development and Long-Lived Feature Branches. Each has its unique merits and challenges, and knowing which one to adopt can significantly influence your project's success. In this post, we'll delve deep into the pros and cons of both approaches and even show you a C# example…

Keep Reading →

Introduction In the world of software applications, email sending functionalities are indispensable. From password resets to notifications, you can't afford to let a hiccup in the network or an SMTP server issue derail you. So how do you ensure reliability in email operations? In this post, we'll dive into creating a resilient email sending method in .NET using the class and incorporating retry…

Keep Reading →

I've just published a new version of my Clean Architecture Solution Template for ASP.NET Core applications. This is version 8 of the template, though to be clear it is still targeting the current version of .NET (.NET 7). I'll create another update once .NET 8 ships in November 2023. What's New This version introduces some pretty major changes, which I'll highlight here. The biggest ones have to…

Keep Reading →

Unit testing is a crucial part of modern software development. It ensures that code is working as intended and can be a lifesaver when refactoring or adding new features. It's like having a friendly guard dog that barks if anything suspicious is going on in your code! In the context of .NET, there are some unique considerations and tools that can help make your unit tests even more effective. In…

Keep Reading →

Mastering the Art of Managing Up: A Developer's Guide to Career Advancement Learn the essential skills behind "Managing Up" tailored for the software development world, with insights from Steve Smith. Uncover how this vital technique can pave your path to career success, giving you the leverage and influence in your organization. Dive into actionable tips, enriched examples, and the benefits for…

Keep Reading →

If for some reason you find yourself wanting to switch from Moq to another test double framework like NSubstitute, here's how to do it. Working with Moq I've used Moq for many years and am comfortable with it. I also appreciate that it has a short name, which makes it easier to type, say, etc. than longer names with 4+ syllable. I've heard of NSubstitute but never used it until literally today…

Keep Reading →

.NET Roadmap The latest version of .NET is 7. The current roadmap is for .NET 8. .NET 8 is scheduled to ship in November 2023 and will be an LTS release. Some organizations find it advisable to only use LTS releases, but be advised that staying on an older LTS release when a Standard (STS) release is available may mean missing out on security and performance fixes that shipped in the STS release…

Keep Reading →

When and How to Use Blazor Components Blazor is a powerful framework for building web applications using C# instead of JavaScript. One of the key features of Blazor is its component-based architecture, which allows you to create reusable and encapsulated UI elements. In this article, we will explore when and how to use Blazor components effectively. Why Use Blazor Components? Blazor components…

Keep Reading →

Most .NET apps use EF Core and a DbContext for data access, but maintainability can suffer when the use of a DbContext or an IQueryable derived from it is allowed to spread throughout an application. Let's briefly describe how IQueryable works with EF Core and then consider how restricting access to IQuerable (or not) affects the overall maintainability of an app. What is IQueryable The and…

Keep Reading →

I'm evaluating different approaches to data access and other cross-cutting concerns in .NET 7 Web APIs, both for clients and in preparation for an upcoming conference talk. I wanted to be able to load test endpoints locally as one way to assess performance. Looking for good local tools that aren't bloated and hard to use (yes I'm talking to you, JMeter), I quickly found K6. It seemed to serve my…

Keep Reading →