Applied AI Engineer · LLM & RAG Systems · MLOps · Berlin
I build LLM/ML systems that ship and run within budget — and I know when not to use AI.
🇹🇼 Taiwan-born · 🇩🇪 Berlin-based · Full unrestricted work authorization in Germany
🗣️ Chinese (native) · English (C1) · German (B2→C1) · French (B2)
📄 LinkedIn · 📚 Published research
Logistics Document Automation — Supervised-Autonomy IDP Pipeline
n8n orchestration (HITL, retries, error workflow) + FastAPI extraction engine for invoices and customs forms.
Deterministic-first strategy (checksum-validated regex → LLM fallback only where rules fail) vs. a pure-LLM control on a 50-doc synthetic corpus:
79.5% of fields resolved at zero token cost · 67% lower cost per doc ($0.00589 → $0.00196) · ~60× lower median latency · identical 99.7% field accuracy
100% auto-approve precision (43/43) on synthetic data · 14% human-intervention rate.
Then stress-tested it against real invoices and receipts (DocILE, SROIE, CORD v2): rule-layer coverage fell 79.5% → 21.7%, and auto-approve precision fell to 42.9–64.3% — the honest finding was that a model's self-reported confidence isn't a trustworthy auto-approval signal on its own, which now drives per-deployment required-field configuration instead of a fixed default.
n8n FastAPI GPT-4o Vision PostgreSQL Prometheus Docker pytest GitHub Actions
BürgerChat — Production RAG for German Bureaucracy
Explains German social-services rules (Bürgergeld, Kindergeld, Wohngeld) in B1-level plain language, across 13 languages, always citing official sources.
~36K searchable passages from ~6,100 official government documents · FAISS + LLM-rerank reaching 100% golden-retrieval recall across 3 evaluated languages · live PVOG API routing users to the correct authority across ~11,000 German municipalities.
Shipped like a real service: CI on every push, daily production smoke tests, weekly automated re-crawl via Daytona sandboxes, dependency-vulnerability gating (pip-audit + Dependabot).
Submitted to the SPRIND "Deutschland, was geht?" federal hackathon (270 teams).
FastAPI Next.js FAISS OpenAI Docker Railway GitHub Actions
AWS AI/ML Knowledge & Analytics Agent — Multi-Agent RAG + Text-to-SQL
A LangGraph supervisor multi-agent system that decomposes two-part questions across a RAG specialist and a Text-to-SQL specialist and decides what order they run in — not just a router picking one.
On a 30-question evaluation set: SQL accuracy 60% → 90%, answer relevancy 0.487 → 0.780, order accuracy 87% → 100%. A bounded self-repair loop plus a human-in-the-loop confirmation gate for generated SQL push adversarial-query accuracy to 100%. Multi-turn conversation resolution: 100% vs. 20% without history.
Ran a cost/quality ablation across 3 candidate self-correction loops and shipped only the one with measured ROI — the other two added 2.2 LLM calls and 1.36s of latency for a gain inside the evaluation judge's noise band.
LangChain LangGraph RAG Text-to-SQL ChromaDB OpenAI RAGAS pytest
Electricity Price Forecasting — End-to-End MLOps Pipeline
Full MLOps lifecycle for German day-ahead electricity prices (DE_LU, 5 years hourly): ENTSO-E ingestion → feature engineering → MLflow tracking & model registry → FastAPI serving → Kubernetes HPA → Prometheus/Grafana → GitHub Actions CI/CD.
LightGBM Test MAE: 7.23 EUR/MWh — chosen over LSTM and XGBoost after Optuna-tuned benchmarking; documented why LSTM underperformed once lag/rolling features encoded the temporal structure.
LightGBM LSTM XGBoost Prefect 3 MLflow FastAPI Docker Kubernetes Prometheus Grafana
MuseXR — AI Museum Companion 🏆 XRCC 2026 · 2nd Place, Meta IWSDK Track
FastAPI backend deployed mid-hackathon (Railway): GPT-4o Vision exhibit recognition, FAISS RAG, and a rule-based context router (gaze × crowd level) selecting between four response modes.
Chose deterministic solutions over GenAI where reliability and cost mattered — filename matching for exhibit IDs, lookup tables instead of RAG for 56-route navigation: zero token cost, zero added latency on the hot path.
Also shipped a same-weekend Android app integrating Ray-Ban Meta AI Glasses via the Meta Wearables DAT SDK.
FastAPI GPT-4o Vision FAISS LangChain Kotlin Meta Wearables DAT SDK Railway Docker
MSc Thesis — Published in Mathematics (2025)
A Deep Learning Framework of Super Resolution for License Plate Recognition in Surveillance Systems
Built a real (non-synthetic) dashcam LR/HR dataset; designed two novel perceptual losses (Swin Transformer– and CRNN-based) so the model optimizes downstream OCR accuracy, not pixel-level proxies like PSNR/SSIM.
+9.6 pp OCR accuracy improvement (75.6% → 85.1%)
PyTorch SwinFIR (Swin Transformer) CRNN Perceptual Loss Computer Vision
From SASRec to TIGER — Sequential Recommendation, Rigorously Evaluated
A verified SASRec reproduction plus a semantic-ID generative recommender on the same backbone, so the item-representation swap is a clean single variable.
Found that one RecBole default hyperparameter (dropout) outweighs the architecture difference it's used to demonstrate; showed two SASRec implementations that agree to +0.61% HR@10 under sampled evaluation diverge to +40% HR@10 under full-catalog ranking — mostly explained by training objective alone via a loss-only ablation. Semantic IDs reach 71% of SASRec's accuracy at 13.7% of the parameters and recover items an atomic embedding table structurally cannot (7.25% HR@10 on unseen items vs. 0%). Every margin is checked against a measured seed-noise floor and asserted in CI.
PyTorch SASRec Semantic IDs RecBole MLflow
- Multi-Actor-Critic — Recurrent DDPG (GRUCell actor-critic) for futures trading (FIMTX / Mini Taiwan Stock Index Futures); risk-adjusted reward via Differential Sharpe Ratio, a realistic futures cost model (tax/fee/delivery), and behavior cloning with a Q-filter bootstrapped from a prophetic expert policy; benchmarked against Buy & Hold (NYCU coursework final project)
- AI Brand Visibility Tracker — Async multi-LLM monitoring (OpenAI / Anthropic / Gemini); spaCy NER + LLM-as-judge sentiment; LightGBM R² 0.80; BigQuery · FastAPI · Plotly Dash
- Parallel Hyperband HPO on Cloud Sandboxes 🏆 3rd Place, Daytona Hackathon — 9 parallel Daytona sandboxes, Hyperband early-stopping, tool-using Claude agent that reads run history and launches sandboxes autonomously; MAE 7.23 → 7.18
- Customer Churn Prediction — Config-driven CatBoost pipeline; 0.762 weighted F1; ~$190K/cycle ROI framing; two-container Docker architecture
- Stable Diffusion X4 Upscaler on Azure — Production inference API on Azure Container Instances; HuggingFace Diffusers PR #622 merged by the core team
- AI Parenting Assistant — German-language RAG over 750+ expert-vetted articles; FastAPI + Docker Compose (AI for Impact Hackathon)
Diabetic Retinopathy Detection (ResNet) · Conditional DDPM · Conditional VAE for Video Prediction · EEG Classification
💬 Open to AI Engineer / LLM Engineer / Applied AI Engineer / MLOps Engineer roles — Berlin or fully remote (Germany / EU)




