Available for new assignments from September 2026 Get in touch →
Own R&D project — not a client assignment

Case: an AI-driven knowledge system

To make the AI deep-dive from my sabbatical concrete, I built a personal knowledge and productivity system in .NET. Spoken notes and tasks enter the knowledge graph without any manual work: transcribed locally, extracted into structured data and automatically related to existing knowledge.

How it works

Architecture of the knowledge system: audio recordings go through local Whisper transcription to LLM extraction with structured output; the result fills properties in the knowledge graph and vector search creates relations with existing knowledge. Audio recording spoken note or task (push-to-talk) Whisper — speech-to-text runs locally: audio never leaves the device LLM extraction structured output: text → typed, validated data Filling properties entities (tasks, notes, people) in the knowledge graph Vector search finds related knowledge and suggests relations
The capture pipeline of the knowledge system: from spoken input to structured, related knowledge — without audio ever leaving the device.

A spoken note ("call Jan tomorrow at one o'clock about the contract") is transcribed locally by OpenAI Whisper — audio never leaves the device. An LLM call with structured output turns the text into typed data: entity type, title, date/time, people involved. That data fills properties in a knowledge graph of tasks, notes, people and projects. Vector search then finds semantically related entities and suggests relations — so the task automatically ends up linked to the right person and the right project.

For classification tasks, BERT runs alongside the LLM calls: where a question keeps coming back, a small local model is cheaper, faster and more consistent than calling an LLM every time.

The system in action

Screenshot of the knowledge system: a task 'Call with Jan' with a date, source audio, relations to a person and suggested links
A task captured by voice: properties filled by LLM extraction, the source audio as a reference, and relations to people in the graph. Screenshot with dummy content.

Architecture choices

Local transcription

Whisper runs locally instead of via a cloud API: personal audio is exactly the kind of data you don't want spreading around. The same trade-off applies to every enterprise integration.

Structured output, made robust

LLM answers are enforced and validated as typed data — no parsing free text and hoping for the best. Errors lead to recovery or rejection, not to polluted data.

BERT alongside LLM

Not every AI task deserves an LLM. Recurring classification runs on a small BERT model: lower cost, lower latency and more predictable behaviour.

Built with AI tooling

Developed in combination with Copilot and Claude — which also makes the project a daily exercise in AI-assisted development with guarded architecture.

What this does and doesn't prove

This is a personal R&D project: no client assignment, no production load, no team around it. What it does show: the full LLM pipeline — from unreliable input to structured, related data — built and working in .NET, with the same trade-offs (privacy, cost, robustness) that apply to enterprise integrations. A public demo project in modern .NET, focused on agentic workflows, is in development.