Skip to content
Blog

Engineering notes on AI, SaaS platforms and building software that ships.

Written from what we run in production across our own products and our clients'. For the long-form pieces, see Insights.

Multi-tenant RAG 6 min read

Multi-Tenant RAG: Stop One Tenant's Documents Leaking Into Another's

In a shared retrieval system, the worst bug is a correct answer built from the wrong customer's file. Where tenant leaks hide and how to test for them.

Read it →
Insurance claims software · 5 min

Insurance Claims Software: Queues, Evidence and Moving Reserves

A claim is not a ticket. It carries money that changes, evidence that must be kept, and deadlines set by regulators. Where generic workflow tools fall short.

SOC 2 and HIPAA · 5 min

What SOC 2 and HIPAA Add to a Build: Time, Cost, Architecture

Compliance is mostly decisions you make in the first month of the build. What these two frameworks actually require, and which parts you can defer.

Billing lifecycle · 6 min

Trials, Downgrades and Dunning: The Billing States Apps Skip

Most billing code models paid and unpaid. Real subscriptions pass through a dozen states, and the missing ones are where support tickets come from.

Prompt regression testing · 6 min

Model Upgrades Break Prompts: Build the Regression Suite First

Changing a model version is a code change that no unit test covers. Here is how to build the suite that catches it before your customers do.

batch inference · 5 min

Which AI Features Should Run Overnight: The Case for Batch Inference

Not every AI feature needs an answer in two seconds. Moving the right ones to batch jobs can cut cost and smooth load. Here is how to pick them.

studio booking · 5 min

Fitness and Studio Booking: Capacity, No-Shows and Recurring Billing

Class booking looks like a calendar problem. It is really capacity, waitlists, late cancels and memberships that bill on a schedule. Here is what breaks.

AI budgeting · 5 min

Budgeting an AI Feature: Why an Honest Quote Is a Range

A fixed price for an AI feature before anyone has seen your data is a guess. Here is what widens the range and how to narrow it cheaply.

queue fairness · 5 min

Noisy Neighbors in Background Jobs: Fair Queues for Multi-Tenant SaaS

One tenant imports 400,000 rows and every other tenant waits. How to keep a shared job queue fair without building a queue per customer.

agent retries · 5 min

Making Agent Retries Safe After the Tool Already Sent the Email

An agent that retries a timed-out tool call can send the email twice. Here is how to make side effects safe to repeat, and when not to bother.

Webhooks · 7 min

How to Build Webhooks That Survive Retries and Replay

Webhooks look simple until duplicates, out-of-order events, and dropped deliveries start corrupting production data.

Agent Memory · 6 min

What Your Agent Should Remember, Recompute, or Forget

A practical rule for deciding what an AI agent should keep as fact, what it should recompute, and what it should let go.