Systems I have designed and built, most of them running in production for a
15-location med spa group. The habit they share: each one ships with the
number that proves it, marked below with the seal. The thinking behind them
lives in Research.
One warehouse over the whole business
Zenoti, NetSuite, Salesforce, Rippling, Meta Ads, GA4 and Search Console landed into a single dbt-modeled Postgres warehouse: staging, marts and aggregate tables that the dashboards and the AI both read. Nightly API pulls plus a live webhook feed, with watermark incremental loads and deletion reconciliation, so the warehouse tracks the source instead of drifting from it.
about 1.3 million invoice lines; ingestion reconciled to 99.87% against source
Python·FastAPI·dbt·PostgreSQL·Redshift·AWS
Dashboards as specifications
Every dashboard is a JSON specification run by a deterministic engine: metrics, dimensions, filters, drill-downs, CSV export, caching. The engine is aggregate-aware, so common questions hit pre-built cubes and fall back to the fact tables when they must. Nothing renders that was not first validated as a specification, which is the property that later made an AI builder safe to add.
any dashboard in the product can be re-created from its specification alone
TypeScript·Next.js·ECharts·FastAPI
Lisa, an AI analyst with a refusal path
An in-product assistant that drafts widget specifications and answers analytical questions from governed marts. It writes SQL only against documented schema cards, inside guardrails: permission checks, cost ceilings, token metering and a spend cap. It is structurally prevented from computing figures, and questions it cannot answer safely get a clear refusal instead of an improvised number.
AI-built widgets parity-tested against hand-built ones, to the cent
Claude on AWS Bedrock·tool use·MCP·Python
Revenue recognition, kept honest
A model of what revenue means per line item: booked, recognized, collected and deferred kept apart instead of collapsed into one number. Recognition rules are authored data, not code, and they shape recognized revenue without ever touching net sales. Membership revenue is measured from what actually happened rather than assumed from the plan.
each revenue basis reconciles back to the invoice line
dbt·PostgreSQL
A commission engine that reconciles
Tiered, rule-driven commission computation at invoice-line grain: rate matrices per provider and item, rule precedence, and a reconciliation that compares the computed run line by line against the amounts actually paid. That reconciliation surfaced six-figure discrepancies in existing runs, traced to individual rate-configuration defects nobody had seen.
every amount traces to the invoice line and the rule that produced it
Python·PostgreSQL·FastAPI
Package liability, recomputed from first principles
Outstanding package liability rebuilt from prorated payments net of refunds, item by item, instead of trusting the packaged report. Recomputing the number from source is slower to build and much easier to defend, and it is how the errors were found.
surfaced three defects in the vendor’s own report
dbt·SQL
The platform as an MCP endpoint
The analytical tools exposed over the Model Context Protocol, per tenant, with scoped personal access tokens. Any MCP client can ask the same governed marts the same questions as the product UI, under the same permission checks, which turns the platform into infrastructure other AI systems can build on.
one permission model shared by the UI, the assistant and external clients
FastAPI·MCP·Python
This site
Astro, static HTML first. The brand mark is a guilloché rosette drawn as SVG paths and cut separately for each size, because nine fine rings composite to mud below 32 pixels. The only JavaScript is motion: the engraving draws itself in and turns very slowly, entries surface as you reach them, and every effect stands down when your system asks for reduced motion.