Agentic RAG and routing
A retriever that decides how to retrieve
Built retrieval as an agent rather than a fixed pipeline: it decides whether to retrieve at all, which strategy fits the question, and whether what came back is enough to answer with.
AI Engineer / ML Engineer
Building production LLM systems at Bizzbee; M.Sc. research on generative world models and offline RL at Boğaziçi University.
Jan 2025 - now
Bizzbee
Production LLM systems for a multi-tenant AI customer service platform: retrieval, generation, safety and the evaluation loops around them.
Feb 2024 - Jan 2025
SQL Server administration: clusters, monitoring, upgrades, archiving.
Jun - Oct 2023
Diagnosed production database issues across SQL, Kibana and Azure.
Jan 2022 - Jul 2023
Taught block-based programming and Python across age groups.
Systems running for real users at Bizzbee: query routing, hybrid and graph retrieval, guardrails, and the evaluation around them. Diagrams first; the method is one click away.
Agentic RAG and routing
Built retrieval as an agent rather than a fixed pipeline: it decides whether to retrieve at all, which strategy fits the question, and whether what came back is enough to answer with.
“where is order 84-5512?”
An identifier has nothing to embed. Lexical search finds it exactly; the vector arm returns other order enquiries.
“my package never turned up”
No keyword shared with a policy written as “non-delivery”. The vector arm matches the meaning; lexical search returns nothing.
“which of my open orders are affected by the İzmir delay?”
Two hops (orders to warehouse, warehouse to incident) and no single chunk holds both. The first pass came back short, so the agent re-queried and walked the graph.
“can you repeat that in English?”
Everything needed is already in the conversation. Retrieving here would add latency and cost for nothing, so the router skips it.
Agentic RAG and routing
Built retrieval as an agent rather than a fixed pipeline: it decides whether to retrieve at all, which strategy fits the question, and whether what came back is enough to answer with.
Graph RAG
Extracted entities and relations from the corpus into a graph, so questions that need several facts connected can be answered by traversal rather than similarity.
Three facts in three documents, found by walking the graph
Evaluation
Built evaluation pipelines and feedback loops that quantify model behaviour in production, so each iteration is judged rather than guessed.
Every change is judged against the set before it ships. Representative example, not a production metric.
prompt v7 vs a 81% baseline
0%
pass rate so far
No performance figures appear on these three. The work is under NDA-shaped constraints and nothing was measured into a number I can publish and stand behind. The measured results are in the open-source work below, where anyone can reproduce them.
From LLM systems to ML experiments to generative models. Built outside work, deployed, and measured; each publishes what it found, including where the result went against me.
LLM systems
An OpenAI-compatible proxy that answers with a cheap model and escalates to a reasoning model only when five of its answers disagree, trading a little accuracy for a large cost saving.
−36%cost, at 67.3% vs 70.0% accuracy
Open the projectLLM systems
A text-to-SQL agent that reads tables and checks real values before it writes a query, on SQLite or PostgreSQL.
65.0%on 300 unseen BIRD questions, vs 57.7% one-shot
Open the projectHow many accounts who choose issuance after transaction are staying in East Bohemia region?
13in 7.65 s
ML / RL
A match-3 environment, a PPO agent trained on it, and an evaluation across forty levels: level difficulty depends on who is playing.
14% vs 78%careless vs careful player clearing level 27
Open the projectGreedy, level 20
42 tiles in 21 moves
Generative AI
Fine-tuned Stable Diffusion with LoRA to learn two artistic styles, and evaluated the outputs with a blind comparison.






The directions behind my M.Sc. thesis, and how they connect. This is where I am heading, not finished work: there are no results here yet.
A learned simulator to plan inside.
If the simulator is good enough, planning no longer needs the real environment.
A world model that generates plausible trajectories lets a policy be trained and tested without acting in the real environment. That matters most exactly where acting to learn is expensive or unsafe. The part I care about is constraint: a generated trajectory is only useful if it could actually have happened.
ts-worldmodel-lab benchmarking harnessWhat I have actually used, grouped by what it is for.
Open to AI engineering, ML engineering and data science roles.