At work
Voice-of-Customer Portal
End-to-end subscriber feedback pipeline: LLM quality gate, embedding-based clustering, and a daily insight briefing agent delivered in Slack.
LLM pipelineembeddingsSlack agent
I build the internal tooling myself — it's how the standard gets set. A selection, each one in daily use.
At work
End-to-end subscriber feedback pipeline: LLM quality gate, embedding-based clustering, and a daily insight briefing agent delivered in Slack.
LLM pipelineembeddingsSlack agent
Every entry graded before it counts
Grouped by meaning, not keyword
Bubble size shows relative cluster size. Sample themes.
Delivered every morning
Sample briefing. Largest cluster today: sign-up friction.
Sample briefing. New this week: a coverage-request theme separated out of discovery.
Sample briefing. Nothing unusual in billing questions.
At work
Natural-language KPI access for the whole company — anyone can ask the data a question and get a governed answer.
Snowflake Cortex
Ask the data
governed answer
Sample answer. Weekly usage trends upward across the sample period, with a dip in week four.
Sample series — weekly, indexed, no unit
governed answer
Sample answer. Market C leads the sample period, with Market A second.
Sample series — indexed to period start
governed answer
Sample answer. The referral series compounds through the sample period.
Sample series — indexed, no unit
Definitions come from the shared metric layer, so two people asking the same question get the same number.
At work
Planning tool wired into Linear and Notion via MCP, keeping strategy and delivery in one view.
MCPLinearNotion
Now
SAMPLE-101
Sample initiative — onboarding rebuild
Activation
SAMPLE-104
Sample initiative — billing clarity
Retention
Next
SAMPLE-112
Sample initiative — discovery surface
Engagement
SAMPLE-118
Sample initiative — referral loop
Acquisition
Later
SAMPLE-130
Sample initiative — partner tooling
Supply
Strategy in one system, delivery in another, joined over MCP.
On my own time
German-learning PWA in daily use: Leitner spaced repetition, speech practice, offline-first.
Next.jsTypeScriptAnthropic APIClaude Code
Leitner boxes
Choose a card
die Verantwortung
Answer
responsibility
Correct → moves to Box 3 (weekly)
der Anspruch
Answer
claim, standard
Correct → moves to Box 2 (every 3 days)
nachhaltig
Answer
sustainable
Correct → moves to Box 5 (monthly)
die Entscheidung
Answer
decision
Correct → moves to Box 4 (fortnightly)