Writing

Longer pieces on how the work actually goes: what broke, what held, and what I would do again.

Building Portable, Governed Skill Packages for Microsoft 365 Copilot AgentsHow to package agent skills as self-contained folders, upload them to Agent Builder, govern them at the tool calls that load them, and check them in CI.copilotSmarter vs Faster in Microsoft Copilot Studio: An ROI Framework for Agent CreditsHow Copilot Credits stack up when an agent reasons, and a cost-per-request calculation that tells you when paying for the smarter path is worth it.copilotAI writes fast. Someone still has to check it.What I learned helping my engineering team start using AI: the writing got quicker, the checking did not, and that is where the real work is.aiAgentic Postmortems: Let the Logs Talk, Not the LLMWhen an AI agent breaks production, its own account of what happened is a hypothesis. A logs-first postmortem process for SREs, with the template fields and autonomy tiers that make it stick.sreEngineering Reliable Agentic Loops in ProductionIteration limits, idempotent tool calls, the cost-accuracy numbers behind four orchestration patterns, queue-depth autoscaling and pass^k, with runnable Python for each guardrail.aiLocal AI Setup on Mac StudioImagine having the power of a supercomputer on your desk, capable of running state-of-the-art artificial intelligence models without breaking the bank or consuming excessive energy. The Mac Studio, powered by Apple Silicon's unified memory architecture, makes this a reality. This guide will show you how to set up and run large language models (LLMs) locally on your Mac Studio.testingCost per Successful Task: how to measure what an AI agent really costsToken prices say what a call costs, not what a finished job costs. How to calculate Cost per Successful Task from production logs, and which levers lower it.aiOperational intelligence for SREs: treating incidents as reasoning problemsAlerts tell you something is wrong. Agents that recall past incidents, and a deterministic policy that decides how far they may act, close the gap to knowing what to do.sreAgentic Refactoring Playbooks: How Agents Took 300K Lines of Legacy C to Code Health 10What the CodeScene Street Fighter III case study shows about refactoring legacy code with agents, and a playbook-driven loop you can pilot on your own hotspots.aiMCP Moves the Security Boundary: What Integration Engineers Must Change in ConnectorsWith MCP the model picks a connector by reading text a server author wrote. Where the trust boundary now sits, how connectors change, and the controls to put on the host.aiPostgres SKIP LOCKED as a Job Queue: When You Don't Need RedisBuild a transactional job queue on Postgres with FOR UPDATE SKIP LOCKED, keep it healthy under MVCC, and know the numbers that say it is time for Redis.postgres