AI Tech
RAG Evaluation in 2026: Stop Guessing, Start Measuring
Six months into production, RAG failure is silent. Here is what to measure, how to measure it, and the LLM-as-judge tradeoffs nobody tells you about in 2026.
A working journal of software engineering, AI tooling, and the craft of building things that last.
.NET, C#, Blazor, ASP.NET Core, EF Core — production engineering on the .NET stack.
Cross-platform mobile, Dart, widgets, performance, and shipping apps to iOS and Android.
LLMs, agents, MCP, RAG, fine-tuning, and the new shape of software work.
Cloud, Docker, CI/CD, edge, static sites, and the actual cost of running things.
AI Tech
Six months into production, RAG failure is silent. Here is what to measure, how to measure it, and the LLM-as-judge tradeoffs nobody tells you about in 2026.
Dart FFI lets Flutter call C, Rust, and C++ directly. After shipping it in production, here is what works, what breaks, and the patterns I now use by default.
A working engineer's guide to building a custom AI skill for your codebase in 37 lines of code — the skill reviews a git diff and returns a structured critique covering bugs, security, style, and performance.
A working engineer's hands-on look at OpenCode — the open-source, AI-assisted coding tool that does most of what Claude Code does, ships with free models out of the box, and lets you wire up your own API providers without selling a kidney.
A working engineer's field guide to the new shape of AI-assisted development in mid-2026: the Model Context Protocol, the agent loop, model selection, and the engineering practices that turn agents into production teammates.
A working engineer's guide to the unified Blazor story in .NET 9 — what Blazor United actually changed, what stayed the same, where the framework wins in production, and where it still hurts.
A working engineer's field guide to Flutter in mid-2026 — the Impeller rendering engine, the widget model, what actually shipped, and the engineering practices that make Flutter apps feel right on iOS, Android, and the web.
A working engineer's guide to self-hosting a static site on a $4 VPS in 2026 — Caddy, Cloudflare, automated deploys, and the engineering practices that make a small site fast, reliable, and cheap to run.
A working engineer's guide to Minimal APIs in .NET 9 — when the endpoint-as-a-function model beats controllers, when it does not, and the small set of conventions that make a Minimal API codebase feel like one.
A working engineer's guide to calling Rust from Flutter in 2026 — FFI, flutter_rust_bridge, the cases where the pairing wins, and the cases where you should reach for something simpler instead.
A working engineer's guide to vector databases in mid-2026 — embeddings, ANN indexes, the choices that matter in production, and when you do not need a vector DB at all.
A working engineer's defense of using Postgres for async work in 2026 — the operational story, the at-least-once delivery pattern, and the surprising places where a dedicated broker is the wrong answer.
A working engineer's guide to edge compute in mid-2026 — what the edge is good for, where the regional cloud still wins, and the engineering practices that make edge functions feel right in production.