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

If you don't like reading, here's my YouTube video with samples that covers why these 5 rules will help you write better DTOs: What's a DTO? A DTO is a Data Transfer Object. Its job is to transfer data, and it can be used both to send data and to receive it. Often, data transferred will use different types (possibly even different programming languages and technology stacks) on each end of the…

Keep Reading →

As I'm writing this the Internet is out. When that happens, it makes it very difficult to work on development projects that have NuGet dependencies, especially when it comes to adding anything new to a project. A local NuGet server that kept up-to-date with my commonly used packages would be helpful right now. NuGet already has a local NuGet cache. You'll find it in your user profile folder. Here…

Keep Reading →

In the world of software architecture, finding the perfect balance between complexity and simplicity can often feel like an elusive quest. Developers and architects are constantly navigating the spectrum between traditional monoliths, known for their simplicity but criticized for their scalability and maintainability issues, and microservices, praised for their scalability and flexibility but…

Keep Reading →

Integrating .NET Core with MongoDB in a Dockerized Environment Hello, fellow developers! Whether you're building a new project or integrating into an existing one, this guide is your starting point for a "hello world" level application in the .NET 8 plus MongoDB stack. Let's get to it! Prerequisites Before we begin, ensure you have the following installed on your machine: Docker .NET SDK (I'm…

Keep Reading →

Integrating Redis Caching in .NET 8 Applications Redis is an open-source, in-memory data structure store, used as a database, cache, and message broker. It's known for its speed and flexibility, making it an excellent choice for caching in modern applications. In this article, we'll explore how to use Redis for caching in a .NET 8 application, covering both setting up Redis using Docker on a…

Keep Reading →

I ran into a weird problem with how Visual Studio was sending API requests. I was trying to use a bearer token, and it worked fine in Swagger, but from an .http file the Authorization header was simply being ignored, resulting in a 401 Unauthorized. The Problem I'd built a simple ASP.NET Core webapi project using the default template. I was using the built-in support for .http files to execute…

Keep Reading →

Recently I ran into a weird problem with how Visual Studio was sending API requests and I really wanted to see exactly what headers were being sent to my ASP.NET Core app. So I wrote this simple bit of middleware to do the job. What is Middleware If you're not familiar with middleware, it's a set of functions ("request delegates") that are executed in a particular order as part of every request…

Keep Reading →

Now that CodeMash is over (I had a workshop and 2 talks, including a new one), I can focus enough to write up this review post. For those who care to see how things have progressed over the years, a brief history of similar such posts is listed below. If you want to write your own such article, I have a checklist linked at the bottom of the list. My 2017 Year in Review My 2018 Year in Review My…

Keep Reading →

Scaling up and scaling out, originally application terms, offer a fresh perspective on team development. In team contexts, scaling up involves enhancing existing members' skills, offering depth and cost efficiency, whereas scaling out adds new members for diverse skills and increased capacity. The choice hinges on project needs and long-term goals, each strategy presenting distinct benefits and…

Keep Reading →

I keep wanting to do this and forgetting how, so I'm writing it down. Here's how to embed a YouTube video in a GitHub ReadMe markdown file. Thanks for this Stack Overflow answer for the tip. Step 1: Get the YouTube Video ID The YouTube video ID is the part of the URL after the . For example, in the URL , the video ID is . You'll need that for the next step. Step 2: Embed the Video To embed the…

Keep Reading →