I build production AI systems end to end: retrieval, LLM applications, AI agents and the data pipelines and evaluation underneath them. I care most about the parts that decide whether an AI feature can be trusted in production: honest evaluation, quality bars fixed before results are seen, human review for risky decisions, guardrails, cost tracking per call and reproducible runs.
Since my MSc in Data Science I have shipped independent AI systems that are live and public, from a hybrid RAG system over 8.84M passages to a multi-tenant AI support SaaS built in seven days, and a GraphRAG engine on Neo4j that I benchmarked against a strong hybrid retriever with a pre-registered, run-once test.
I work like a product engineer: understand the problem first, ship the simple version, measure it, then harden what production exposes.
Open to: AI Engineer, LLM Engineer, NLP Engineer, ML Engineer and AI & Data Engineer roles across Germany. Available immediately, open to relocation.
GraphRAG Engine | Knowledge graph retrieval, benchmarked honestly
A GraphRAG system on Neo4j, benchmarked against a strong hybrid retrieval baseline on 2WikiMultiHopQA. The goal is not a demo but a fair answer to one question: when does a knowledge graph actually help multi-hop question answering, and when does it not?
| Stack | Python, Neo4j, E5, BM25, cross-encoder reranker, gpt-oss-120b, Docker |
| Scale | 2,049 documents, 12,547 extracted relations, 500 questions in dev and test splits |
| Performance | On 375 held-out test questions, exact match 0.57 (hybrid RAG) to 0.79 (GraphRAG): +0.22 (95% CI +0.17 to +0.27). Hypothesis pre-registered, test split run once |
| Quality | Extraction recall 0.75, slot precision 0.89 (strict, 247 dev triples); entity resolution 49 of 50 hand-checked merges correct; LLM judge agrees with hand check on 29 of 30 |
| Reliability | Quality bars fixed before results, hand checks, pinned providers, every LLM call cached and logged with cost |
| Impact | Largest gain where hybrid retrieval struggles: bridge-comparison questions went from 0.07 to 0.81 exact match on test. Full report in BENCHMARK.md |
| Repository | graphrag-engine |
Extraction uses strict JSON schema output and deterministic post-processing. Entity resolution keeps same-name entities apart by design and records why every merge happened. The full extraction cost 0.35 USD, and every LLM call in the project went through OpenRouter for 1.82 USD in total.
shipment-intake-ai | LLM freight email intake with human review
A service that reads freight emails in German and English, extracts shipment details with an LLM and either auto-accepts them or routes them to a human review queue.
| Stack | Python, FastAPI, SQLite (WAL), Gemini, Pydantic, pytest |
| Scale | Job queue with workers, attempts history and stuck-job recovery |
| Performance | Recovered automatically from provider overload with retries and backoff |
| Security | Prompt injection defence with random delimiters; dangerous goods always go to a human |
| Impact | The model extracts, plain rules decide, so the model never makes the business decision |
| Repository | shipment-intake-ai |
Idempotent deduplication by Message-ID and content hash, a review queue for approve, correct or retry, an evaluation set in German and English, and 175 tests.
Hybrid RAG System | MSc thesis, 8.84M passages
| Stack | Python, FAISS, BM25, E5, FastAPI, Docker, Kubernetes, AWS EC2 |
| Scale | 8.84M MS MARCO passages |
| Performance | 93% Recall@10 at fusion weight alpha 0.70: +2.9 pts over alpha 0.5 (p = 0.002, 95% CI +1.1 to +4.7), +11.4 pts over BM25 only |
| Evaluation | 11 alpha experiments on 100 stratified dev queries, paired t-test |
| Impact | Live demo and API, deployed with 2 Kubernetes replicas |
| Repository | AI-Powered-Rag-System |
The same repository includes a 4-agent LangGraph research pipeline (live) and a ReAct agent with tool use (live).
AI Customer Support Platform | Multi-tenant AI SaaS in 7 days
| Stack | FastAPI, PostgreSQL, pgvector, Docker, Railway, JavaScript widget |
| Scale | Multi-tenant, with an embeddable chat widget for customer websites |
| Performance | Real-time answer streaming over SSE |
| Security | JWT authentication, per-tenant data isolation |
| Impact | From idea to live product in 7 days, with 12 tests in CI and Prometheus monitoring |
| Repository | ai-support-platform |
BauWächter | Germany construction radar
| Stack | React, Leaflet.js, FastAPI, asyncio, Groq, OpenStreetMap, Vercel |
| Scale | 3,197 live roadworks across Germany |
| Performance | Parallel data fetching, loads in under 5 seconds |
| Data | Live public government data with LLM-written summaries |
| Impact | Built and deployed in 6 days |
| Repository | bauwatcher |
n8n-nodes-autobahn | Open-source data tool for AI agents
| Stack | TypeScript, Node.js, n8n, GitHub Actions |
| Scale | 612 live events per request from the German Autobahn API |
| Quality | Typed output, linted, 10 unit tests in CI |
| Impact | Turns a messy public API into clean records that AI agents can use, with compact output that saves tokens |
| Repository | n8n-nodes-autobahn |
QLoRA Fine-Tuning & LLM Evaluation Dashboard
| Stack | PyTorch, HuggingFace, PEFT, QLoRA, Gradio |
| Performance | TinyLlama 1.1B training loss 2.47 to 0.89 (64% reduction), 0.089% of parameters trained. RAGAS dashboard: Faithfulness 0.909 on 10 test questions |
| Repository | Model |
AI Engineer | Independent Projects, Berlin
April 2026 - Present
Building and shipping production-style AI systems end to end, with a focus on retrieval, agents, reliable LLM pipelines and honest evaluation.
- Built a GraphRAG engine on Neo4j that raised exact match from 0.57 to 0.79 over a hybrid RAG baseline on 375 held-out test questions (pre-registered, run once, 1.82 USD total LLM cost)
- Built an LLM email intake service with a job queue, retries, guardrails, a human review queue and 175 tests
- Shipped a multi-tenant AI SaaS in 7 days with auth, streaming, CI tests and monitoring
- Released open-source tooling that gives AI agents clean, typed data
MSc Thesis, Retrieval and LLM Systems | University of Europe for Applied Sciences, Potsdam
March 2024 - March 2026
MSc thesis: AI-Powered Retrieval-Augmented Assistant for Evidence-Based Question Answering.
- Hybrid retrieval over 8.84M passages reaching 93% Recall@10; alpha 0.70 beat alpha 0.5 by 2.9 pts (p = 0.002) and BM25 only by 11.4 pts
- RAGAS evaluation pipeline, QLoRA fine-tuning and deployment on AWS EC2 and Kubernetes
| Result | Details |
|---|---|
| 93% Recall@10 | Hybrid retrieval on 8.84M MS MARCO passages, +2.9 pts over alpha 0.5 (p = 0.002) |
| +22 points EM | GraphRAG vs hybrid RAG on 375 held-out test questions, 95% CI +17 to +27 |
| 12,547 relations | Extracted from 2,049 documents for 0.35 USD |
| 175 tests | LLM email intake service with guardrails and human review |
| 3,197 roadworks | Tracked live across Germany in BauWächter |
| 7 days | Multi-tenant AI SaaS from idea to production |
learning:
- Graph retrieval and path scoring on Neo4j
- Model Context Protocol (MCP) and agent tool integration
- Azure AI and responsible AI governance
building:
- Applying the GraphRAG benchmark method to agent evaluation
- A governed AI agent with tool access rules and audit logging
exploring:
- Evaluation methods for agents and multi-hop retrieval
- Cost and reliability patterns for production LLM systems
open_to:
- AI Engineer, LLM Engineer, NLP Engineer, ML Engineer roles
- Germany, on-site, hybrid or remote, available immediately