Patrick McVeety-Mill:

Loud & Abrasive

Posts on development, software, and technology including tips, troubleshooting, and "nobody-asked-you" commentary.

  • Reflections on Leading a Greenfield Project

    Today is my first day ‘off’ after leading a development project for a bit more than a year. Besides being a pretty long time for consulting, this was unique in being the first greenfield project I’ve tech-led. Overall it was a success, but as in all things, there were lots of lessons learned I am now reflecting on.

    Read On
  • Securing Cloud Infrastructure with Azure Managed Identities

    Of the Azure features I’ve becomes more acquainted with these past couple years, Managed Identities are one of my favorites. Managed Identities are system-managed service principals that allow for a level of security control I hadn’t considered before, where keys and passwords can be ‘eliminated’ or rotated so frequently that no human has (at-ready) access to resources, without requiring (even automated) code or configuration changes for applications. They are super easy to set up in .NET Core, and I recently layed out how for Headspring’s “Developer Corner”

    Read the whole article at and Check out the sample app on Github

    Read On
  • Database Migrations For Azure SQL Elastic Pools Using RoundhousE

    Databases are important for most applications, but keeping their schemas consistent across versions and environments can become a sticky date pudding without proper care. Tools like RoundhousE provide streamlined, repeatable, script-based migrations and work like a charm out of the box. If using the very cool and atmospheric Azure SQL Elastic Pools, however, the default behavior lands us adjacent to the pool, not in it. Let’s not be hasty to abandon database host nor migrator; it’s easy to correct this with little configuration.

    Read On
  • Deploying Multiple WebJobs in Azure DevOps

    Unsurprisingly, App Services are one of Azure’s more useful and persistent offerings. Somewhat surprising (to me at least) is that WebJobs stand firmly beside them, after seeming like a tack-on, albeit a cool one. The way they are developed has evolved, however, now leveraging the same SDK that Azure Functions is built on. From a user’s perspective, WebJobs’ deploy-and-run-time is conversely unchanged. Unfortunately, that means deploying them is primarily advertised as a manual process from Visual Studio, the Azure Portal, or using Powershell. We know better, though, and can integrate WebJobs with our App Services in Azure DevOps Pipelines, even if we’re straying from the happy path.

    Read On