Compile Theory
Deep dives on how software gets built: .NET, Azure, distributed systems, and AI that survives production. Written for engineers who want to know why.
- Resolve tenant membership before a Databricks SQL call — Resolve membership before executing Databricks SQL in .NET. Run a published-package allow/deny example and keep tenant scope in trusted application code.
- Call Databricks Genie from C# with LakeSpeak — Call an existing Databricks Genie Agent from C#. Run the published-package fixture, inspect SQL and rows, then configure profile authentication.
- Stop terminating state-changing agent callbacks on Quick Tunnels — Cloudflare Quick Tunnels are excellent for the local webhook loop. They do not give your agent callback a stable identity, durable receipt, or an owned failure boundary, which is why state-changing callbacks need real ingress.
- If your coding agent can publish a package, you need a release firewall — The RubyGems incident showed that a package publish can trigger code execution, public artifacts, and a messy attribution problem. Treat registry writes as a separate trust boundary, and put a release firewall between your agent and the push.
- A Reference Architecture for Production Databricks Systems — Seven checklists assembled into one system. Fourteen decisions, the couplings between them, and the order to make them in.
- Four Ways to Isolate Tenants in Unity Catalog — Where the tenant boundary sits is expensive to reverse. Four options in Unity Catalog, strongest isolation first, with the blast radius and cost of each.
- If agents can leave notes, your eval stopped measuring individuals — The collusion.wiki case points to a narrow failure mode with big consequences. Once one agent run can write durable public state that later runs can read, your harness measures a communicating population, and the fix starts with outbound-write policy and clean-room resets.
- Unity Catalog as a Platform Contract — Unity Catalog is introduced as access control, which leads teams to treat it as configuration. It is where every other decision in this series becomes enforceable.
- Before You Trust an LLM Judge, Measure Its Noise Floor — An evaluation score moved from 0.81 to 0.84 and the change shipped. Measuring what your judge produces on unchanged input, before you trust the difference.
- What an Agent Trace Reveals, and What It Cannot Prove — Tracing is the first thing teams instrument and the last thing they reason about. What a trace genuinely establishes, and the questions it cannot answer.
- Evaluating AI Agents on Databricks — When the correct output is a set rather than a value, you cannot assert it. Code scorers, LLM judges, and where each one belongs in an evaluation.
- Calling Databricks from ASP.NET Core Without Building a Fragile Integration — A cold warehouse, a double-clicked button, and a deploy mid-request. The state machine and idempotency work that keeps an ASP.NET Core integration from going fragile.
All articles · Topics · Series · Posts · About