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'm a big fan of Markdown. It provides a simple way to richly format text without the complexity or security issues that would come from using HTML. Support for Markdown is ubiquitous within the software development industry, with native support everywhere from GitHub to StackOverflow. I've written everything from short documentation articles to several entire ebooks for Microsoft using Markdown…

Keep Reading →

I'm a big fan of Plex and have a lifetime subscription. If you're not familiar with it, it basically lets you have your own Netflix hosted on a computer in your house that you can watch from anywhere. If you've ever wanted to watch a movie or show that you already own, without having to deal with the discs, and it's not on one of your various streaming services, you understand the value. Also, if…

Keep Reading →

The Singleton Design Pattern is a fairly simple creational pattern used to ensure that there is only ever a single instance of a class in an object-oriented language. It's useful for ensuring expensive class instances are only created once and to eliminate the need to try and orchestrate between multiple class instances that are each trying to access a single shared resource, such as a file or…

Keep Reading →

I've been using a Stream Deck (affiliate link) for a while now and I keep finding more and more uses for the device. Recently, I started looking for more active buttons to display common utilities like CPU, Graphics Processor, and Network I/O graphs. It's easy to configure a button to just show the current CPU percentage, but I wanted an actual CPU graph in a Stream Deck button, and that wasn't…

Keep Reading →

When you're writing automated tests, whether you're following TDD or not, you want to avoid the possibility of testing the wrong thing. This is surprisingly easy to do if you're not careful, I can say from personal experience! One way this can easily happen is if you're quickly writing a series of tests, and doing so usingcopy-paste programming, like you might see here: This is from one of my…

Keep Reading →

It’s been a few years since I wrote about using a tool like Smtp4Dev for local test emails (and that article has issues), so here’s an update. If you’re working with code that should send emails sometimes, it’s really helpful to be able to let that code still run, but not actually send emails. That’s where running a local test email server on your development machine comes in. Here are a few…

Keep Reading →

It's worked quite well and is completely free for our needs. You can easily add bots and notifications from other systems, including your own ASP.NET web applications, using web hooks. One of the easier ways to configure notifications from things you care about as a developer to your Discord server is with GitHub web hooks. There's a great write-up on how to do this here, which I'm basically…

Keep Reading →

GraphQL is the new ORM, and your API endpoint is the new stored procedure. About fifteen years ago, a debate raged in the still-young .NET development world over how best to access data. On the one side were the traditionalists, among them database administrators (DBAs) and many experienced software developers with experience building efficient, performant applications. On the other were (mostly…

Keep Reading →

Azure App Services are a very easy and economical way to quickly deploy your ASP.NET/ASP.NET Core apps to the cloud. You can get started for free if you just want to try out something you're developing (without uptime considerations) and entry-level plans are pretty affordable: The docs for publishing to an Azure App Service are pretty good so I won't get into that here. I recommend configuring…

Keep Reading →

Recently I had one of my newsletter subscribers ask me a question about whether it was a good practice to use a boolean parameter to alter the behavior of a method. Martin Fowler describes (many of*) these as Flag Arguments. The topic is also covered in this StackExchange question. Clean Code also discusses it. On a slightly related note, the Flags Over Objects antipattern describes this same…

Keep Reading →


Copyright © 2020