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

It's typical for API endpoints to call application or domain services. In the case of success, the API can simply return Ok and the result of the service call. But for non-success cases, should you use exceptions to communicate from the service to the endpoint, so that it can return an appropriate status code and response? Assuming you read the title of this article, you probably already know the…

Keep Reading →

Recording a short screencast video can be a very effective way to provide a demo to stakeholders or show how a bug can be reproduced. Follow this checklist to make sure you don't miss something important. In a previous article, I wrote about how to make better, faster demos using screencast videos. Once you've got that all sorted out and have chosen the technology you want to use to record and…

Keep Reading →

If you're writing blog posts, GitHub content, and/or Stack Over flow questions and answers using Markdown, it's often helpful to show code in code blocks of within code fences. Did you know these support many different languages to allow for proper syntax highlighting, including a diff 'language'? Markdown code fences Markdown is a great language to use to write content in, because it offers built…

Keep Reading →

The dotnet format tool is now a part of the dotnet CLI with .NET 6, and you can use it to easily adopt the new file scoped namespace feature that ships with C# 10. dotnet format If you don't know the dotnet format tool, it's available as a separate install in previous versions of .NET, but ships as part of the .NET 6 SDK. It's used to format your codebase using rules specified in an file, and can…

Keep Reading →

Design patterns provide reusable approaches to common problems and allow for higher level discussions of software design. Learn the basics of design patterns, how to recognize and implement them, how to combine them, and how to learn them. Design Patterns - An Overview I've been meaning to write about this topic for over a year now but better late than never, I guess! I've always been fond of…

Keep Reading →

Do you ever need to demo your app to users, customers, or stakeholders? Is it part of your regular software delivery process? What about when you want to describe to a coworker how a new feature should work, or what the repro of a bug looks like? If pictures are worth 1000 words, videos are worth millions. Let's explore some scenarios in which video could be useful and usually far more efficient…

Keep Reading →

Although it's generally considered a best practice to assert only one thing per test, sometimes one logical "thing" may require multiple assertion statements to be executed. In such cases, it's helpful to be able to see all of the parts of the larger assertion that failed, so you don't end up chasing after them one by one. As an example, let's say you have a class that is initialized with its…

Keep Reading →

I use GitHub Actions a lot. They're a great tool for performing continuous integration (CI) and continuous deployment (CD) for your applications. However, by default they typically only are triggered by changes to your application's source code in the form of commits and/or merges/rebases. This means that to trigger a particular workflow, you usually need to make a commit, and obviously this can…

Keep Reading →

I like to use an index card as a bookmark when I'm reading non-fiction books, so that I can come back to interesting topics later or review certain points in an article of my own, like this one. Usually one index card is sufficient, but in reading Dependency Injection: Principles, Practices, and Patterns by Steven von Deursen and Mark Seemann(affiliate link) I filled two front and back. There is a…

Keep Reading →

A common question students ask when learning about Clean Architecture, SOLID, and/or Domain-Driven Design (DDD) is whether controllers (or razor pages or API Endpoints should work with repositories directly, or if they should only communicate with services. As with many questions in software, the answer is, "it depends", but I can offer some recommendations. A related question to this one, at more…

Keep Reading →


Copyright © 2021