Running GitHub Actions on my own computer: what ubuntu-latest was quietly doing for me16 October 2026
I moved my GitHub Actions jobs to a self-hosted runner in Docker to save minutes. Jobs first failed, then got slower, because every job downloaded what GitHub's hosted image already has. Putting those tools in the runner image brought a deploy from 2:00 to 1:28.
AI assisted development30 September 2026
AI helped me build a SignalR update that was broadcast to every connected client instead of just the relevant one. The first fix it suggested, filtering in React, was cosmetic. The real fix was one line in the backend.
Three Versions of a Blog-Post Counter17 September 2026
My blog counter went through three implementations in a week: fetching the whole article list to count it, a dedicated count endpoint that still cold-started the backend, and a Cosmos DB Change Feed keeping a Cloudflare KV value current so the read never touches origin. Plus a debugging story about one secret with three different names.
Adding Comments to This Blog: Cosmos, an Azure Function, and Cloudflare AI10 September 2026
How I added a moderated comment system to this blog: Cosmos DB's own Change Feed as the queue, an Azure Function scoring comments via Cloudflare Workers AI, least-privilege RBAC kept out of the CI pipeline on purpose, several real bugs found the hard way in production, and a mid-flight model upgrade after the small LLM proved unreliable.
Debugging Skills, Part 35 August 2026
Tracking down a TCP handler bug that looked like a race condition but turned out to be a stale variable surviving a handler replacement — root-caused through log correlation alone, fixed with a handler map, and a reminder that debugging discipline matters as much as tooling.
Debug Skills, Part 213 July 2026
Debugging Skills Part 2: using EF Core's TagWith() to label LINQ queries so they're identifiable in the generated SQL, then using Query Store to find which tagged query is driving high logical I/O or a bad execution plan.
Debug Skills, Part 16 July 2026
Debugging Skills Part 1: tracing a 2022 async memory-leak in a TCP handler system with a custom WithName() task-naming extension inspired by Jon Skeet, then fixing it with linked cancellation tokens.
Yesterday I created a build and push artifact CI/CD pipeline for AZ-400 practise in Azure DevOps!16 May 2026
Building a reusable Azure DevOps YAML pipeline for a small .NET helper library: AI-assisted (Aider + Qwen2.5) unit tests, automated SemVer NuGet packaging to GitHub Packages, restore caching, a dotnet format style gate, and the Cache@2 quirk that needed a manual mkdir to fix.
Disappointing first test with Foundry Local on Intel GPU29 April 2026
Foundry Local reaching GA raised hopes for a real Ollama replacement on Intel GPU — but both tested OpenVINO models hard-capped responses at 199 tokens regardless of the configured max_tokens, a blocker for agentic coding workflows like Aider.
Local LLM Coding Agent: Aider + Ollama on Windows (No Cloud, No Token Limit, Full Privacy)21 March 2026
A streamlined Windows setup for running Aider + Ollama fully locally on an Intel GPU: zero cloud dependency, unlimited context, and a qwen2.5-coder:14b model that handles .NET refactors, new endpoints, and unit tests as a genuine local pair programmer.
My multi Agent Hangman game is working now, check out my article!17 January 2026
The full write-up (and code) for the Semantic Kernel multi-agent Hangman game, promised as a follow-up to the earlier 'finally got it working' milestone post.
Finally got my multi agent Hangman game with Semantic Kernel working!15 January 2026
The first real working milestone for the Semantic Kernel Hangman game: switching to a bigger qwen2.5:32b-instruct model via IPEX-LLM Ollama and simplifying down to 2 agents (no host agent) finally got a full game to completion.
Quick follow-up on the Semantic Kernel practice project I mentioned in my last post. I thought it would be cool to let the agents play a hangman game.9 January 2026
Three small local models (llama3.2:3b, phi4-mini, qwen2.5:7b) and a host agent structure for the Hangman game — writing the game logic was easy, getting agents to reliably call functions and use tool output instead of hallucinating turned out to be the real challenge.