It Is Still My Code, Even When AI Writes It
How AI has shifted my development work toward planning, standards, review, and maintaining the mental model of the software I am still responsible for.
Software engineer, consultant, and writer covering .NET, architecture, testing, and software craftsmanship.
How AI has shifted my development work toward planning, standards, review, and maintaining the mental model of the software I am still responsible for.
How to create an Azure PostgreSql Server automatically that uses Microsoft Entra authentication, migrates the database using Entity Framework Core, and deploys out the infrastructure automatically with Bicep.
A short manifesto of what I believe makes a leader.
Starting in 2019, I unknowingly embarked on a journey that led me to lead the most productive software development team I have ever worked on.
A guide to running and testing .NET projects without Dockerfiles using .NET Aspire and TUnit.
A guide to running and testing .NET projects without Dockerfiles using TestContainers.NET and Respawner.
How to configure Entity Framework to handle concurrency with .NET 7 or greater.
How to work with Timers in TimeProvider and how to migrate existing timers to them.
Creating a HTMX and .NET Minimal API from scratch and adding necessary features like validation and error handling.
How to create an Azure SQL Server automatically that uses Microsoft Entra authentication, migrates the database using Entity Framework Core, and deploys out the infrastructure automatically with Bicep.
A comprehensive comparison with a breakdown of features that are present in GitHub and have been missing in AzDo for years.
I combined some of my favorite things by creating some game extensions for TaleSpire, which I use to facilitate Dungeons & Dragons games.
How keyed services can smooth over the factory pattern in dependency injection scenarios.
A short manifesto of what I believe quality code means.
A common authentication pattern with Azure AD comes to a screeching halt because of backwards compatibility.
A different approach compared to a dominating architecture in our industry - Clean Architecture.
I use Bogus to demonstrate how fake factories can be used to easily create useful, random data, whether it be primitive types or complex objects, for use in testing and non-production data seeding.
These myths, damaging to the Agile movement, are propagated out of negligence of what Agile is - either inadvertently, through laziness, or old-school skepticism - by all types of people at organizations.
A step-by-step guide to take your MVC project and spice it up with Blazor components - or even Blazor pages!
Identifying some examples of common patterns and anti-patterns with comments.
Drawing parallels from the four basic principles of art to bring order to the code we write.
By default, EF Core’s DbContext is scoped. This will cause issues with asynchronous components accessing data in Blazor Server.
Offering some tips on how to name things so other people, including yourself at a later date, can understand it.
Explaining Test-Driven Development through the lens of a video game.
Creating a personal GitHub readme that "plays" Dungeons & Dragons
A case for an ORM compared to traditional ADO.NET and/or raw SQL scripts.
Learning, using, and extending the FluentValidation library.
Replacing Visual Studio with Visual Studio Code for ASP.NET Core MVC development
Learning, using, and extending the specification pattern in C#.