How we engineer production AI.
The problems we target, the architecture we build, and the trade-offs behind them.
Your RAG Is Recommending an API You Deleted
A RAG freshness build. Your AI assistant keeps answering from documents that were changed or deleted weeks ago, confidently and with no error, because its search index is a snapshot that quietly fell behind the source. The fix is to keep the index in step with the source as it changes, and to measure how fresh it is instead of trusting last night's rebuild to have caught everything.
Nothing goes stale unnoticed: only changed content is re-processed, deletions take effect in minutes instead of overnight, and how fresh the index is becomes a number on a dashboard rather than a hope.
Read the case →Your RAG just showed the intern the HR files
A permission-aware retrieval build. The fix for RAG that leaks: enforce access control at the retrieval layer, before the model sees a thing, because vector search retrieves by similarity, and similarity does not know about permissions.
Access denied by default: unauthorized passages never reach the model, and every retrieval is logged.
Read the case →A serving stack that keeps GPUs busy without making users wait
A self-hosted large language model (LLM) is only cheap if its graphics cards stay busy, and only usable if they stay fast. This reference build is the serving stack that holds both at once: the GPUs never idle, and no user waits longer than you promised.
GPUs run busy at a fixed latency SLO, so cost per token falls as load rises instead of climbing with it, with no change to the model.
Read the case →A caching layer that cuts an LLM bill without touching the model
An LLM app pays to reprocess the same prompt on every call. This is a reference build of the caching layer that stops it, and stays correct while it saves.
Cost and latency fall with traffic instead of volume, and the cache never quietly answers wrong.
Read the case →Running private data through an LLM without losing control
A reference architecture for putting sensitive data through a large language model (LLM) while control stays architectural, not contractual: a gateway that redacts (masks out values) or tokenizes before anything leaves the perimeter (the systems you control), retrieval that respects who may see what, guardrails on the way in and out, private deployment for the crown jewels, and an audit trail that proves it. The model still does the work; the data stays governed.
Sensitive data stays in the perimeter; the LLM still does the work
Read the case →A RAG evaluation harness that catches what the demo hides
A reference build for measuring RAG quality instead of eyeballing it: a fixed test set, the finding and the writing scored separately, an automatic gate that blocks regressions, and live monitoring that feeds failures back in. The point is to tell a retrieval problem from a generation one, and ship on evidence.
Retrieval regressions caught before they ship; every failure traced to retrieval or generation
Read the case →Detecting ransomware in near real time, from block IO alone
A near-real-time ransomware detector that reads only the block IO stream — a thin host interceptor, a cloud sliding-window feature pipeline, and an incrementally trained model on watsonx. It catches an attack while it is still small, with almost no load on the host.
Near-real-time verdicts, minimal host overhead
Read the case →The AI Cost Teardown
How we read a production AI bill, find the waste, and switch it off in order of risk. The diagnostic that opens a cost engagement, before the careful work of implementing it. Figures illustrative.
~3x cheaper, same answers (illustrative)
Read the case →