

Recent

A Polyglot App Is More Than a Process List
·2403 words·12 mins
Starting a frontend, an API, and a database is straightforward. Knowing which address each process should use, when its dependencies are ready, and where a failed request went is the harder part.
In the catalog companion, Load catalog can return HTTP 503 while the API and inventory service both report healthy. Nothing has to crash for the application to fail.

Stop Losing the Bug When You Restart Aspire
··1951 words·10 mins
You reproduce an intermittent failure, change one line, and restart the application. This time the request works. Now you need the old trace to work out why.
If it disappeared with the restart, you’re left comparing the new run with whatever you remember. Aspire 13.6’s dashboard keeps completed runs, so you can go back to the failed request instead.1

Automate Your Windows Dev Machine with WinGet DSC
·1481 words·7 mins
Stop manually installing tools on a fresh Windows machine — declare what you want and let WinGet DSC handle the rest.

Agent Skills, Plugins and Marketplace: The Complete Guide
·1714 words·9 mins
Extending GitHub Copilot with reusable, shareable AI capabilities

Microsoft Certification Renewals - March 2026
I just renewed six Microsoft certifications, keeping my skills current across Azure architecture, security, networking, and AI.

MITRE ATT&CK for Developers: Beyond OWASP
·839 words·4 mins
Most developers know the OWASP Top 10, but fewer know MITRE ATT&CK. OWASP tells you what can break. ATT&CK tells you how attackers actually operate. Together, they give you a complete picture of application security.
I’ll be presenting this topic at NDC Security 2026 in Oslo, March 2-5. If you’re attending, come check out my talk — MITRE ATT&CK for Developers — on Wednesday, March 4 at 10:20.