01/Context
A startup outgrowing its tools
Sploot is a veterinary care startup growing clinic by clinic. I joined to run digital marketing — SEO, paid, CRM, social — and kept moving deeper into the engine: first lifecycle and retention, then the data foundation everything else stands on.
By the time the company was ready to scale, the tooling wasn't. Marketing, reporting, and messaging each ran on their own point solution, each with its own copy of the customer, each telling a slightly different story.
02/Problem
Nobody trusted the numbers
Every tool had its own version of a client. The same question — how many active patients do we have? — returned a different answer depending on where you asked it. Attribution was contested, dashboards disagreed, and every debate about performance turned into a debate about whose export was right.
Worse, the things we wanted to do next — real personalization, lifecycle messaging that respects consent, reporting the whole company could stand on — were impossible without unified identity. You can't personalize for a customer you can't consistently identify.
You can't personalize for a customer you can't consistently identify.
03/Approach
Buy the right primitives, own the model
The tempting move was another all-in-one platform. I argued for the opposite: composable primitives, each with one clear job. Segment as the event and identity engine. Snowflake as the source of truth. Mixpanel for reporting. Braze for messaging. Nothing owns the customer except the warehouse.
- 01Sequence foundations first: warehouse, then events, then activation. No campaigns on sand.
- 02Model the warehouse the Ralph Kimball way — facts and dimensions a growing team can actually learn, not a 400-column table only one person understands.
- 03Treat identity unification and consent as first-class product requirements, not compliance afterthoughts.
- 04Write it all down. A stack the team can't operate without me is a failed project.
04/What I built
The engine room
I didn't just spec this system — I built it. The tracking plan and event architecture in Segment. The dimensional models in Snowflake. Identity resolution across clinic software, marketing tools, and the website. The syncs that feed Braze and Mixpanel the same truth the dashboards read.
I write the SQL and build the models myself, with AI as leverage — I know the theory well enough to judge right from wrong, which means I can move at the speed of a team. Everything ships with naming conventions and documentation, because the real test of infrastructure is whether the next person can extend it.
05/Outcomes
One version of the truth
Teams now pull the same numbers from the same place. Lifecycle campaigns personalize on warehouse truth instead of tool-local guesses. And when a new clinic opens, the data model already knows what to do with it — that was the point: foundations that scale, and that a growing team can learn and maintain.
- 1
- shared definition of an active patient
- 100%
- of messaging fed from the warehouse
- 0
- dashboards arguing with each other