${esc(pick(entry.title, language))}
${esc(pick(entry.detail, language))}
From a7c4b6fc22d3553c32993f443339d821cb0d49dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Balc=C4=B1?= <138722058+UAJOP@users.noreply.github.com> Date: Thu, 20 Aug 2026 01:25:32 +0300 Subject: [PATCH 01/32] feat: add centralized portfolio content registry --- portfolio-data.js | 268 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 portfolio-data.js diff --git a/portfolio-data.js b/portfolio-data.js new file mode 100644 index 0000000..55ce4c1 --- /dev/null +++ b/portfolio-data.js @@ -0,0 +1,268 @@ +(function () { + const t = (en, tr) => ({ en, tr }); + + window.KAAN_PORTFOLIO = Object.freeze({ + version: "2.0.0", + updatedAt: "2026-08-20", + profile: { + name: "Kaan Balcı", + title: t("AI Designer & Software Developer", "AI Designer & Software Developer"), + location: t("Istanbul / Remote", "İstanbul / Remote"), + availability: t("Open for work", "İşe açık"), + direction: t( + "Applied AI, AI Solutions, Forward Deployed / Solution Engineering and product-minded software engineering.", + "Applied AI, AI Solutions, Forward Deployed / Solution Engineering ve ürün odaklı yazılım mühendisliği." + ), + resume: "https://drive.google.com/file/d/1eERVaYoP-ICuP3xfbzpaDaCo5amwqA8u/view?usp=sharing", + linkedin: "https://www.linkedin.com/in/balcikaan/", + github: "https://github.com/UAJOP", + email: "mailto:kaanb8776@gmail.com" + }, + projects: { + sinama: { + id: "sinama", + name: "SINAMA — AI Agent Reliability Lab", + status: t("Live MVP", "Canlı MVP"), + category: t("Applied AI / Reliability Engineering", "Applied AI / Reliability Engineering"), + role: t("Product Designer & Full-Stack Developer", "Product Designer & Full-Stack Developer"), + summary: t( + "A Turkish-first reliability lab for repeatable multi-turn agent testing, deterministic workflow evidence, regression comparison, version trends and release-readiness decisions.", + "Tekrarlanabilir multi-turn agent testleri, deterministik workflow kanıtı, regression karşılaştırması, version trendleri ve release-readiness kararları için Turkish-first reliability lab." + ), + stack: ["Next.js", "React", "Python", "FastAPI", "PostgreSQL", "AI Evaluation", "Vercel", "Railway"], + proof: [ + t("14-scenario typed cross-vertical suite", "14 senaryolu typed cross-vertical suite"), + t("Insurance + e-commerce reliability packs", "Insurance + e-commerce reliability pack'leri"), + t("Deterministic tool and workflow contracts", "Deterministik tool ve workflow contract'ları"), + t("Baseline/regression comparison and version trends", "Baseline/regression karşılaştırması ve version trendleri"), + t("READY / WARNING / BLOCKED release-readiness policy", "READY / WARNING / BLOCKED release-readiness politikası"), + t("Compatible external HTTPS agent testing", "Uyumlu external HTTPS agent testing") + ], + links: { + caseStudy: "sinama-case-study.html", + live: "https://sinama.kaanbalci.com", + github: "https://github.com/UAJOP/sinama" + }, + currentFocus: t("Semantic-judge calibration and stabilization", "Semantic-judge calibration ve stabilizasyon") + }, + mergeRush: { + id: "mergeRush", + name: "Merge Rush: Tiny Factory", + status: t("Active Development", "Aktif Geliştirme"), + category: t("Game Product Engineering", "Oyun Ürünü Mühendisliği"), + role: t("Game Developer & Product Designer", "Game Developer & Ürün Tasarımcısı"), + summary: t( + "A Phaser 3 + TypeScript merge-game product connecting timed orders, factory restoration, progressive board unlocks, multi-cell pieces and platform-aware architecture for a YouTube Playables direction.", + "Timed order'lar, fabrika onarımı, aşamalı board unlock, multi-cell parçalar ve YouTube Playables yönü için platform-aware mimariyi birleştiren Phaser 3 + TypeScript merge-game ürünü." + ), + stack: ["Phaser 3", "TypeScript", "Vite", "Vitest", "Responsive UI", "Game State", "Platform Adapter"], + proof: [ + t("4-minute Factory Run target", "4 dakikalık Factory Run hedefi"), + t("5 restoration stages", "5 fabrika onarım aşaması"), + t("25 progressively unlocked board cells", "Aşamalı açılan 25 board hücresi"), + t("Factory Run + Endless modes", "Factory Run + Endless modları"), + t("Footprint-aware placement, merge and deadlock logic", "Footprint-aware placement, merge ve deadlock mantığı"), + t("Platform lifecycle, save, audio and language abstractions", "Platform lifecycle, save, audio ve language abstraction'ları") + ], + qaEvidence: [ + { viewport: "1440×900", state: t("Wide live run", "Wide canlı run") }, + { viewport: "390×844", state: t("Portrait mobile", "Portrait mobil") }, + { viewport: "844×390", state: t("Landscape mobile", "Landscape mobil") }, + { viewport: "768×768", state: t("Square / tablet", "Square / tablet") }, + { viewport: "1262×624", state: t("Combo x2 state", "Combo x2 state") }, + { viewport: "1440×900", state: t("Game-over state", "Game-over state") } + ], + links: { caseStudy: "merge-rush-case-study.html", games: "games.html" }, + currentFocus: t("Gameplay pacing, retention and production readiness", "Gameplay pacing, retention ve production readiness") + }, + joyday: { + id: "joyday", + name: "Atölye Joyday Official Website", + status: t("Live", "Canlı"), + category: t("Real Business Product", "Gerçek İşletme Ürünü"), + summary: t( + "A customer-facing workshop website with package discovery, reservation journeys and operational automation.", + "Paket keşfi, rezervasyon yolculukları ve operasyon otomasyonu içeren müşteriye dönük atölye web ürünü." + ), + links: { caseStudy: "atolye-joyday-case-study.html", live: "https://atolyejoyday.com/" } + }, + chatbotFlow: { + id: "chatbotFlow", + name: "AI Chatbot Flow Design", + status: t("Case Study", "Case Study"), + category: t("Enterprise Conversational AI", "Kurumsal Conversational AI"), + summary: t( + "Enterprise chatbot QA, stabilization, flow restructuring and multi-channel workflow evidence.", + "Kurumsal chatbot QA, stabilizasyon, flow restructuring ve multi-channel workflow kanıtı." + ), + links: { caseStudy: "project-detail.html?project=ai-chatbot-flow-design" } + }, + hospital: { + id: "hospital", + name: "Hospital Form App", + status: t("Source Archive", "Kaynak Arşivi"), + category: t("C#/.NET Software", "C#/.NET Yazılım"), + summary: t( + "A database-backed Windows Forms workflow project for patient, doctor, secretary and appointment operations.", + "Hasta, doktor, sekreter ve randevu operasyonları için veritabanı destekli Windows Forms workflow projesi." + ), + links: { caseStudy: "hospital-system-case-study.html", github: "https://github.com/UAJOP/Hospital-System" } + } + }, + recruiterProfiles: { + "applied-ai": { + label: t("Applied AI", "Applied AI"), + profile: t("Applied AI / AI Reliability Engineer", "Applied AI / AI Reliability Engineer"), + focus: ["AI Agent Reliability", "LLM Evaluation", "Conversational AI", "Python / FastAPI", "Regression Testing"], + roles: ["Applied AI Engineer", "AI Solutions Engineer", "Forward Deployed Engineer", "AI Product Engineer", "Solution Engineer"], + skills: [ + t("Multi-turn scenario and agent evaluation", "Multi-turn senaryo ve agent değerlendirme"), + t("Deterministic tool/workflow contracts and regression evidence", "Deterministik tool/workflow contract'ları ve regression kanıtı"), + t("Python / FastAPI services and PostgreSQL persistence", "Python / FastAPI servisleri ve PostgreSQL persistence"), + t("LLM response, reasoning, code and multimodal evaluation", "LLM yanıt, reasoning, code ve multimodal değerlendirme"), + t("Enterprise conversational-AI workflow design", "Kurumsal conversational-AI workflow tasarımı") + ], + evidence: ["sinama", "chatbotFlow", "joyday"] + }, + "solution-engineering": { + label: t("Solution Engineering", "Solution Engineering"), + profile: t("AI Solutions / Solution Engineer", "AI Solutions / Solution Engineer"), + focus: ["Customer Workflows", "Conversational AI", "Automation", "API Integration", "Product Delivery"], + roles: ["Solution Engineer", "Technical Solutions Engineer", "Forward Deployed Engineer", "AI Solutions Engineer", "Implementation Engineer"], + skills: [ + t("Translating business requirements into testable workflows", "İş gereksinimlerini test edilebilir workflow'lara çevirme"), + t("Chatbot QA, stabilization and multi-channel handoffs", "Chatbot QA, stabilizasyon ve multi-channel handoff'lar"), + t("External-agent and API integration thinking", "External-agent ve API integration düşüncesi"), + t("Customer-facing product ownership", "Müşteriye dönük ürün sahipliği"), + t("Release-readiness and evidence-based delivery", "Release-readiness ve kanıt odaklı delivery") + ], + evidence: ["chatbotFlow", "sinama", "joyday"] + }, + software: { + label: t("Software", "Yazılım"), + profile: t("Software / Product Engineer", "Software / Product Engineer"), + focus: ["Python", "FastAPI", "TypeScript", "C#/.NET", "Databases"], + roles: ["Software Developer", "Backend Developer", "Product Engineer", "Junior Full-Stack Developer", "Technical Product Engineer"], + skills: [ + t("Backend APIs and persistence", "Backend API'ler ve persistence"), + t("TypeScript and responsive product interfaces", "TypeScript ve responsive ürün arayüzleri"), + t("C#/.NET and database-backed desktop workflows", "C#/.NET ve veritabanı destekli desktop workflow'lar"), + t("Automated quality gates and regression testing", "Automated quality gate'ler ve regression testing"), + t("Stateful product architecture", "Stateful ürün mimarisi") + ], + evidence: ["sinama", "hospital", "joyday"] + }, + game: { + label: t("Game / Interactive", "Oyun / İnteraktif"), + profile: t("Game / Interactive Product Developer", "Oyun / İnteraktif Ürün Geliştirici"), + focus: ["Phaser 3", "TypeScript", "Gameplay State", "Responsive UI", "Platform Architecture"], + roles: ["Game Developer", "Gameplay Programmer", "Interactive Developer", "Web Game Developer", "Technical Game Designer"], + skills: [ + t("Merge-game state, progression and timed-order systems", "Merge-game state, progression ve timed-order sistemleri"), + t("Footprint-aware placement and deadlock logic", "Footprint-aware placement ve deadlock mantığı"), + t("Responsive browser-game UI", "Responsive browser-game UI"), + t("Platform lifecycle, save, language and audio abstractions", "Platform lifecycle, save, language ve audio abstraction'ları"), + t("Playtesting-driven iteration", "Playtesting odaklı iterasyon") + ], + evidence: ["mergeRush", "hospital"] + } + }, + buildLog: [ + { + date: "2026-08-20", + area: "Portfolio", + title: t("Portfolio Architecture V2", "Portfolio Architecture V2"), + detail: t("Centralizing project truth, recruiter profiles, evidence and build status into one registry.", "Project truth, recruiter profilleri, evidence ve build status tek registry'de merkezileştiriliyor."), + status: "building" + }, + { + date: "2026-08-19", + area: "Portfolio", + title: t("SINAMA + Merge Rush flagship refresh", "SINAMA + Merge Rush flagship yenilemesi"), + detail: t("Refreshed the public portfolio around the two current flagship products.", "Public portfolyo iki güncel flagship ürün etrafında yenilendi."), + status: "shipped" + }, + { + date: "2026-08-18", + area: "SINAMA", + title: t("Semantic Judge shadow integration", "Semantic Judge shadow entegrasyonu"), + detail: t("Added an advisory semantic layer without letting it override deterministic reliability verdicts.", "Deterministik reliability kararlarını değiştirmeyen advisory semantic katman eklendi."), + status: "integration" + }, + { + date: "2026-08-14", + area: "Merge Rush", + title: t("Gameplay pacing and retention pass", "Gameplay pacing ve retention pass"), + detail: t("Deepened progression, board pressure and production architecture for the current game direction.", "Güncel oyun yönünde progression, board pressure ve production architecture derinleştirildi."), + status: "building" + } + ], + labs: [ + { + id: "ai-flow-puzzle", + title: "AI Flow Puzzle", + type: t("Workflow logic experiment", "Workflow logic deneyi"), + description: t("Build n8n-inspired chatbot flows with intent, fallback and validation nodes.", "Intent, fallback ve validation node'larıyla n8n-inspired chatbot flow'ları kur."), + url: "ai-flow-puzzle.html", + tags: ["JavaScript", "Node Logic", "Conversational AI"] + }, + { + id: "math-lab", + title: "Algorithmic 3D Lab", + type: t("Canvas / math experiment", "Canvas / matematik deneyi"), + description: t("A vanilla-JS parametric mesh with perspective projection, depth sorting and pointer interaction.", "Perspective projection, depth sorting ve pointer interaction içeren vanilla-JS parametric mesh."), + url: "labs.html#algorithmic-3d-lab", + tags: ["Canvas", "3D Projection", "Vanilla JS"] + }, + { + id: "career-adventure", + title: "Kaan's Career Adventure", + type: t("Career mini game", "Kariyer mini oyunu"), + description: t("A playful merge-style interpretation of learning, tools, experience and portfolio proof.", "Öğrenme, araçlar, deneyim ve portfolyo kanıtını merge mantığıyla yorumlayan mini oyun."), + url: "adventure.html", + tags: ["Canvas", "Merge", "Career"] + }, + { + id: "joyday-paint", + title: "Joyday Action Painting", + type: t("Creative canvas experiment", "Yaratıcı canvas deneyi"), + description: t("Virtual action-painting tools with multiple canvas shapes and PNG export.", "Birden fazla tuval formu, sanal action-painting araçları ve PNG export."), + url: "joyday-paint.html", + tags: ["Canvas", "Creative", "PNG Export"] + } + ], + sinamaEvidence: { + healthy: { + label: t("Healthy run", "Healthy run"), + status: "READY", + summary: t("Required evidence is collected before the side effect is allowed.", "Side effect'e izin verilmeden önce gerekli kanıtlar toplanıyor."), + conversation: [ + { speaker: "Customer", text: t("My car was damaged. Can you open a claim?", "Aracım hasar gördü. Hasar kaydı açabilir misiniz?") }, + { speaker: "Agent", text: t("I can help. First I need to verify your contact details and collect the required damage documents.", "Yardımcı olabilirim. Önce iletişim bilgilerinizi doğrulayıp gerekli hasar belgelerini toplamam gerekiyor.") }, + { speaker: "Customer", text: t("Okay, I can send the photos now.", "Tamam, fotoğrafları şimdi gönderebilirim.") } + ], + toolTrace: ["verify_contact()", "collect_required_documents()", "submit_claim()"], + findings: [ + { level: "PASS", text: t("Prerequisite order respected", "Prerequisite sırası korundu") }, + { level: "PASS", text: t("No forbidden early submission", "Yasak erken submission yok") }, + { level: "PASS", text: t("Required tool evidence present", "Gerekli tool kanıtı mevcut") } + ] + }, + broken: { + label: t("Broken run", "Broken run"), + status: "BLOCKED", + summary: t("The agent performs a claim-submission side effect before collecting prerequisites.", "Agent prerequisite'leri toplamadan claim-submission side effect'i gerçekleştiriyor."), + conversation: [ + { speaker: "Customer", text: t("My car was damaged. Can you open a claim?", "Aracım hasar gördü. Hasar kaydı açabilir misiniz?") }, + { speaker: "Agent", text: t("Sure. I am submitting the claim immediately.", "Tabii. Hasar kaydını hemen oluşturuyorum.") } + ], + toolTrace: ["submit_claim()"], + findings: [ + { level: "FAIL", text: t("Missing prerequisite: verify_contact", "Eksik prerequisite: verify_contact") }, + { level: "FAIL", text: t("Missing prerequisite: collect_required_documents", "Eksik prerequisite: collect_required_documents") }, + { level: "FAIL", text: t("Forbidden premature side effect", "Yasak premature side effect") } + ] + } + } + }); +})(); From f7eb1ec23c490106e01f1ff402a9d80e0035dfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Balc=C4=B1?= <138722058+UAJOP@users.noreply.github.com> Date: Thu, 20 Aug 2026 01:26:48 +0300 Subject: [PATCH 02/32] feat: add portfolio architecture v2 runtime --- portfolio-v2.js | 360 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 360 insertions(+) create mode 100644 portfolio-v2.js diff --git a/portfolio-v2.js b/portfolio-v2.js new file mode 100644 index 0000000..922b345 --- /dev/null +++ b/portfolio-v2.js @@ -0,0 +1,360 @@ +(function () { + const registry = window.KAAN_PORTFOLIO; + if (!registry) return; + + const state = { + role: "applied-ai", + evidenceScenario: "healthy" + }; + + const lang = () => (document.documentElement.lang === "tr" ? "tr" : "en"); + const pick = (value, language = lang()) => { + if (value && typeof value === "object" && ("en" in value || "tr" in value)) { + return value[language] || value.en || value.tr || ""; + } + return value ?? ""; + }; + const esc = (value) => String(value ?? "") + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); + + function applyUnifiedCopy() { + const language = lang(); + const pairs = [ + ["pv2", "data-pv2-en", "data-pv2-tr"], + ["flagship", "data-flagship-en", "data-flagship-tr"], + ["sinama", "data-sinama-en", "data-sinama-tr"], + ["mr", "data-mr-en", "data-mr-tr"] + ]; + pairs.forEach(([, enAttr, trAttr]) => { + document.querySelectorAll(`[${enAttr}][${trAttr}]`).forEach((node) => { + const value = node.getAttribute(language === "tr" ? trAttr : enAttr); + if (value !== null) node.textContent = value; + }); + }); + document.querySelectorAll("[data-pv2-aria-en][data-pv2-aria-tr]").forEach((node) => { + node.setAttribute("aria-label", node.getAttribute(language === "tr" ? "data-pv2-aria-tr" : "data-pv2-aria-en") || ""); + }); + } + + function projectLinkMarkup(projectId, language = lang()) { + const project = registry.projects[projectId]; + if (!project) return ""; + const href = project.links?.caseStudy || project.links?.live || "works.html"; + return `${esc(project.name)}${esc(pick(project.summary, language))}${language === "tr" ? "Kanıtı aç" : "Open evidence"}`; + } + + function getRoleFromUrl() { + const requested = new URLSearchParams(window.location.search).get("role"); + return requested && registry.recruiterProfiles[requested] ? requested : null; + } + + function setRole(roleId, { updateUrl = true, rerender = true } = {}) { + if (!registry.recruiterProfiles[roleId]) return; + state.role = roleId; + if (updateUrl) { + const url = new URL(window.location.href); + url.searchParams.set("role", roleId); + history.replaceState({}, "", `${url.pathname}${url.search}${url.hash}`); + } + if (rerender && typeof renderRecruiterDrawer === "function") renderRecruiterDrawer(lang()); + } + + function recruiterCopy(language) { + return language === "tr" + ? { + label: "İK MODU V2", + title: "Role göre kanıt özeti", + lead: "Aynı portfolyoyu hedef role göre yeniden sıralar; iddia yerine ilgili proje ve deneyim kanıtını öne çıkarır.", + choose: "Profil odağı", + primary: "Ana kimlik", + focus: "Odak", + skills: "Ana yetkinlikler", + roles: "Rol uyumu", + proof: "Önerilen kanıt", + cv: "CV'yi Görüntüle", + email: "E-posta", + close: "Kapat", + updated: "Portfolyo verisi" + } + : { + label: "RECRUITER MODE V2", + title: "Evidence summary by role", + lead: "Reorders the same portfolio for a target role and prioritizes project evidence over generic claims.", + choose: "Profile focus", + primary: "Primary profile", + focus: "Focus", + skills: "Core capabilities", + roles: "Role fit", + proof: "Recommended evidence", + cv: "View Resume", + email: "Email Me", + close: "Close", + updated: "Portfolio data" + }; + } + + function renderRecruiterV2(language = lang()) { + const drawer = document.querySelector("[data-recruiter-drawer]"); + if (!drawer) return; + const hadFocus = drawer.contains(document.activeElement); + const profile = registry.recruiterProfiles[state.role] || registry.recruiterProfiles["applied-ai"]; + const copy = recruiterCopy(language); + drawer.innerHTML = ` +
${esc(copy.label)}
+${esc(copy.lead)}
+${esc(pick(entry.detail, language))}
${esc(pick(item.description))}
${lang() === "tr" ? "Deneyi aç" : "Open experiment"}${esc(pick(scenario.summary, language))}
${esc(labels.conversation)}
${esc(pick(turn.text, language))}
${esc(labels.tools)}
${esc(tool)}${esc(labels.evaluation)}
AI Designer & Software Developer
-My work connects conversational AI, agent reliability, solution engineering, LLM evaluation, workflow automation and product development. I focus on systems that can be tested, explained and improved — not just demos that look good once.
- -My current direction combines Applied AI, agent reliability, solution engineering, conversational AI and hands-on software development. I focus on systems that can be tested, explained and improved.
+ +

What I do
I combine software logic, automation thinking and practical AI experience to design systems that are clear, usable and maintainable.
Multi-turn scenarios, deterministic workflow checks, regression evidence, release-readiness logic and advisory semantic evaluation.
Chatbot flows, intent and response logic, QA, fallback paths, IVR and multi-channel interaction design.
Python/FastAPI services, TypeScript interfaces, C#/.NET systems, APIs, persistence and product-focused frontend work.
Responsive browser games, gameplay state, progression systems, input design, platform adapters and product iteration.
Flagship work
SINAMA shows Applied AI and reliability engineering. Merge Rush shows interactive product, gameplay-state and platform architecture.
Repeatable multi-turn testing, deterministic workflow evidence, regression comparison, version trends and release-readiness decisions across insurance and e-commerce.
A Phaser 3 + TypeScript merge game with timed orders, factory restoration, progressive board unlocks, multi-cell pieces and platform-aware architecture.
Tech stack matrix
A quick matrix showing how technologies fit into real project work rather than a flat keyword list.
Scenario design, agent adapters, deterministic evaluation, regression comparison, semantic shadow evaluation and release evidence.
Automation systems, APIs, database-backed applications and maintainable backend logic.
Responsive products, customer journeys, dashboards, forms and user-facing application flows.
Gameplay architecture, progression, responsive UI, platform lifecycle and browser-based interactive experiences.
Currently building
One focuses on reliable AI systems; the other on product-minded game engineering. Both are being iterated with tests, architecture and real product constraints.
Live reliability product with insurance + e-commerce collections, regression comparison, version trends, release readiness and external agent testing. Current focus: calibration and stabilization.
Phaser 3 + TypeScript merge game with timed orders, factory restoration, staged board unlocks, multi-cell pieces and a YouTube Playables-oriented platform architecture.
Planning dashboards around reservation data, package demand, customer flow and operational tracking.
What I do
Multi-turn scenarios, tool evidence, regression analysis and release-readiness logic.
Translate customer and business requirements into clear workflows, integrations and implementation paths.
Python/FastAPI services, TypeScript products, databases, testing and maintainable product architecture.
Browser games, gameplay state, progression, responsive UI and platform abstraction.
AI workflow demo
Select a scenario and the page will generate a simple AI flow map. This lightweight demo shows how I structure intents, steps and user journeys.
Algorithmic 3D lab
A lightweight canvas demo built with vanilla JavaScript. The shape is generated from a triangular parametric mesh and rendered with perspective projection, depth sorting and mouse-controlled rotation.
Vanilla JS
The mesh is calculated with barycentric coordinates, animated through a wave function and projected onto the canvas without any external 3D library.
Recent experience
My recent work is centered around AI-powered chatbot systems, LLM evaluation, automation flows and real business products.
See ExperienceBuilding the studio’s website, reservation journey, automation workflows and digital product experience.
Contributed to enterprise chatbot QA, flow restructuring, multi-channel automation and an insurance claims intake POC.
Evaluated LLM responses, reasoning, code and multimodal outputs through structured quality-assessment tasks.
Featured AI case study
A Turkish-first reliability platform that runs repeatable multi-turn scenarios, captures tool traces, evaluates workflow contracts, compares agent versions and turns the evidence into release-readiness decisions.

Experience
Recent work spans enterprise conversational AI at CBOT, structured LLM evaluation, and a live customer-facing product at Atölye Joyday.
See ExperienceCustomer-facing digital product, reservation journey and operational automation.
Enterprise chatbot QA, stabilization, channel configuration and workflow restructuring.
Structured evaluation of LLM responses, reasoning, code and multimodal outputs.
Featured works
SINAMA demonstrates AI reliability engineering; Merge Rush demonstrates interactive product and game-system engineering. The rest of the catalog shows the breadth behind those directions.

Live AI reliability product with deterministic workflow evaluation, baseline/regression comparison, version trends, external agent testing and release-readiness evidence.
Active-development merge game connecting timed orders, factory restoration, board-space pressure, progression and platform-ready game architecture.
View Case Study
A live n8n-inspired browser game demonstrating chatbot flow structure, fallback logic, validation and user journey thinking.

A live digital product combining package-based reservation journeys, automated notifications and operational workflows.

A database-backed C# Windows Forms project demonstrating patient, doctor, secretary and appointment workflows.
Selected evidence
Enterprise conversational-AI workflow, QA and stabilization evidence.
View DetailsReal-business product ownership: web UX, package flow, reservations and automation.
View Case StudyC#/.NET and SQL Server workflow project preserved as a source archive.
View Case StudyMore experiments on GitHub
The main catalog highlights selected projects, while GitHub includes more university work, prototypes and experiments.
University and OOP practice repositories.
Automation, data and learning projects.
Frontend logic and UI practice.
JavaScript API and interface practice.
Latest build
Contact hub
I am especially interested in Applied AI, AI Solutions, Forward Deployed / Solution Engineering, Conversational AI and product-minded software roles.
Contact
Use Recruiter Mode for role-specific evidence, or open the full project catalog.