Building an AI Circuit Breaker in .NETCircuit breakers in .NET are good at recognising technical failure. They can stop calls when a service begins returning HTTP 500 responses, timing out or refusing connections. This works because conveSep 15, 2026·16 min read·23
Preventing Broken Object Level Authorisation in ASP.NET Core APIsAn authenticated user calls your API with a valid access token. The token contains the right role and the endpoint requires authorisation. Everything appears secure. The user then changes /claims/8d61Jul 18, 2026·10 min read·155
Cutting AI Prompt Tokens by Turning Text into Images with .NETSending text to an AI model as an image sounds like it should cost more. The application has to render the text, encode a PNG and send a much larger payload over the network. Yet for the right kind ofJul 18, 2026·12 min read·196
Building SSRF-Resistant HTTP Clients in .NETApplications increasingly accept URLs from outside their own code. A webhook tester calls an endpoint supplied by a customer. An image service downloads a remote avatar. A document pipeline retrieves Jul 17, 2026·12 min read·176
What If Your Pull Request Had a Blast Radius Score?Some pull requests look harmless until they reach production. Then someone notices the change touched authentication, a shared response contract, an EF Core migration, and one production config value Jul 7, 2026·18 min read·136
Building a tiny IRC client in C#IRC is old, plain, and surprisingly useful as a teaching tool. You open a TCP connection. You send text commands. The server sends text lines back. The connection stays open. If the server sends PING,Jun 24, 2026·12 min read·187
The Most Dangerous Line in a .NET Background WorkerEvery production system has a few lines of code that look too simple to question.In a .NET background worker, one of them is usually this: while (true) { await DoWorkAsync(); } It looks ok. It loJun 20, 2026·12 min read·415