Practice — Data
Get the data right first. Everything interesting comes after that.
Most analytics problems are not analytics problems. The numbers exist, but they live in five tools, two of them disagree, nobody trusts the third, and the person who needs the answer cannot write the query. No interface fixes that — the layer underneath has to be boring, typed and reproducible first.
This page is where I keep the data side of my practice: how I build foundations, and where I think this is heading. It is a working position, not a pitch.
- BigQuery
- Postgres
- GA4
- Semantic layer
- Evaluation
- Agents
- Layer
- Ingestion, modeling, semantics, access, evaluation
- Tools
- Postgres, BigQuery, GA4, dbt-style modeling, TypeScript
- Applies to
- Creators with an audience, small and mid-size companies
- Stage
- Building in public — no product, no waitlist, yet
01The order of operations
There is a tempting shortcut in every data project: build the interface, wire it to whatever tables exist, demo it. It works for exactly one demo, on one dataset, with the person who built it holding the mouse. The order below is slower and holds up.
- 01Ingest. Boring connectors, idempotent loads, replayable history.
- 02Model. Explicit grain, explicit keys, explicit definitions.
- 03Name the metrics once, in a typed layer that humans and models both read.
- 04Only then put conversational access on top.
- 05Only then let agents act — and score every action against outcomes.
02Why conversational access matters
The bottleneck in most teams is not the dashboard, it is the translation step: someone has a question in business language and someone else has to turn it into a query. Removing that step changes who is allowed to be curious. But it only works if questions resolve against a semantic layer instead of raw tables — otherwise you have built a machine for producing confident mistakes.
03Evaluated agentically
Once agents act on data, "does it feel right" stops being an acceptable answer. I treat an agent run like a landing page variant: define the outcome, record the whole run, score it on three axes, keep what wins.
- 01Correctness — did it resolve against the semantic layer, or invent a column?
- 02Cost — tokens, latency, tool calls. A right answer in ten seconds is a different product than in one.
- 03Consequence — did the action move the metric it claimed it would?
04Who this is for
The same foundation serves a creator with one audience and a mid-size company with fifty accounts. Different scale, identical questions: what is working, what is it worth, what should happen next. That overlap is the part I find genuinely interesting.
05Selected work
All work →06Writing
All writing →- Data first, product secondWhy I refuse to build the chat interface before the data layer is boring, typed and trustworthy.
- Evaluate agents the way you evaluate landing pagesGrowth teams already know how to judge a system they cannot fully explain. Agentic evaluation is the same discipline with a different unit of work.
07Contact
Data that should be easier to ask questions of?
I am always up for comparing notes on modeling, semantic layers and agent evaluation — whether or not there is a project attached.