I build production LLM agent systems: multi-step agents with tool use, memory and reasoning, backed by retrieval pipelines and measured with proper evaluation.
As a Machine Learning Engineer, I take agents and agentic workflows from prototype to production. I design and ship multi-agent systems, containerise them as scalable services, and run them in production with CI/CD, monitoring and evaluation built in.
A big part of my work is document intelligence: end-to-end pipelines that turn unstructured documents into structured, queryable knowledge. These pipelines cover OCR, layout analysis, semantic chunking, LLM-based extraction and retrieval. I work with both open-weight and proprietary LLMs, choosing and tuning models for accuracy, latency and cost.
📍 Augsburg, Germany · 🎓 M.Sc. @ Technical University of Munich
- Agentic workflows: coding and document-processing agents with tool calling, structured outputs, automated verification and stateful orchestration
- Agent-ready retrieval: production RAG (OCR → layout analysis → semantic chunking → hybrid search → reranking), GraphRAG; +20% F1 in extraction accuracy through eval-driven optimisation
- Document AI & OCR: ingestion, OCR and layout analysis, embeddings and structured extraction from scanned documents; processing time cut from days to hours
- Evaluation & guardrails: reproducible harnesses (Langfuse, DeepEval), A/B benchmarking, prompt-injection mitigation, output validation, GDPR-aware data handling
- Prototype → production: containerised microservices on self-hosted and cloud GPUs (Docker, FastAPI, Celery/Redis, vLLM, MLflow, CI/CD), monitored for quality, latency and cost
- Fine-tuning: PEFT / QLoRA with TRL for domain-specific document intelligence, benchmarked against proprietary APIs
| Project | What it does |
|---|---|
| bundestag-lakehouse 🚧 | End-to-end data platform on the Bundestag open-data API: Bronze → Silver → Gold star schema with dbt, DuckDB and Airflow (in progress) |
| graph-versus-vector | GraphRAG (Neo4j knowledge graph) vs. vector RAG on multi-hop QA |
| llm-cache-lab | Measures prompt/KV caching: cost, TTFT latency and memory, with cold-vs-warm experiments on local Ollama |
| llm-guardrails-benchmark | Benchmarks NeMo Guardrails, Guardrails AI and LlamaGuard on safety, compliance and format adherence |
| literary-graphrag-ollama | Local GraphRAG with Ollama; no data leaves the host |
Evaluation Ragas · DeepEval · ChainForge · SHAP · LIME
Fine-Tuning & ML
TRL · PEFT / QLoRA · SentenceTransformers · DeepSpeed
Document AI / OCR Mistral OCR · Docling · LayoutLMv3 · PaddleOCR · PyMuPDF · Textract
I write practitioner-focused deep-dives on Medium:
- I Deployed Local LLMs in Production for a Year (Parts 1 & 2)
- Ollama vs vLLM: A Comprehensive Guide to Local LLM Serving
- PaddleOCR-VL 1.5: A Deep Dive into the 0.9B Model That Outperforms GPT-4o on Document Parsing
- The Architecture of Deception: How RAG Systems Lie to You in Production
- Graphify: Build a Knowledge Graph From Your Entire Codebase Without Sending Your Code to Anyone
- Transformers & LLMs, a 13-part series on attention, training and internals
Open to conversations about agent systems, RAG and LLM evaluation. Feel free to reach out.

