diff --git a/.github/workflows/site-preflight.yml b/.github/workflows/site-preflight.yml index a3088d7..38c11f2 100644 --- a/.github/workflows/site-preflight.yml +++ b/.github/workflows/site-preflight.yml @@ -34,6 +34,16 @@ jobs: - name: Prepare reports directory run: mkdir -p qa-results + - name: Check JavaScript syntax + run: | + set -e + for file in ./*.js; do + node --check "$file" + done + + - name: Check portfolio architecture consistency + run: npm run qa:portfolio + - name: Validate HTML continue-on-error: true run: npm run qa:html 2>&1 | tee qa-results/html-validation.txt diff --git a/.pa11yci b/.pa11yci index d733f4b..1c00895 100644 --- a/.pa11yci +++ b/.pa11yci @@ -3,16 +3,8 @@ "standard": "WCAG2AA", "timeout": 30000, "wait": 750, - "viewport": { - "width": 390, - "height": 844 - }, - "chromeLaunchConfig": { - "args": [ - "--no-sandbox", - "--disable-setuid-sandbox" - ] - } + "viewport": { "width": 390, "height": 844 }, + "chromeLaunchConfig": { "args": ["--no-sandbox", "--disable-setuid-sandbox"] } }, "urls": [ "http://127.0.0.1:4173/index.html", @@ -20,6 +12,8 @@ "http://127.0.0.1:4173/games.html", "http://127.0.0.1:4173/sinama-case-study.html", "http://127.0.0.1:4173/merge-rush-case-study.html", + "http://127.0.0.1:4173/labs.html", + "http://127.0.0.1:4173/now.html", "http://127.0.0.1:4173/blog.html", "http://127.0.0.1:4173/single-work.html", "http://127.0.0.1:4173/request.html", diff --git a/PORTFOLIO_ARCHITECTURE.md b/PORTFOLIO_ARCHITECTURE.md new file mode 100644 index 0000000..307143c --- /dev/null +++ b/PORTFOLIO_ARCHITECTURE.md @@ -0,0 +1,167 @@ +# Portfolio Architecture V2 + +## Why this exists + +The portfolio grew from a static personal site into a product with Recruiter Mode, Ajoop, Command Palette, bilingual copy, case studies, games, request intake, accessibility QA and multiple active flagship products. + +The previous structure duplicated current project truth across HTML pages, the monolithic runtime and `flagship-copy.js`. That made drift likely whenever SINAMA, Merge Rush or career positioning changed. + +## Source-of-truth rule + +For new portfolio work, **current product facts, recruiter profiles, build status and evidence summaries live in `portfolio-data.js` first**. + +Do not add a new SINAMA / Merge Rush fact directly to Ajoop or Recruiter Mode without first adding it to the registry. + +### `portfolio-data.js` + +Owns: + +- Profile and contact truth +- Flagship project summaries +- Project status / stack / proof +- Role-specific recruiter profiles +- Build log entries +- Labs catalog +- Sanitized SINAMA Evidence Explorer examples + +### `portfolio-v2.js` + +Owns: + +- Unified EN/TR attribute copy (`data-pv2-en` / `data-pv2-tr`) +- Runtime synchronization of Ajoop with registry facts +- Recruiter Mode V2 rendering +- Role-specific URLs such as `?role=applied-ai` +- Build Log rendering +- Labs rendering +- SINAMA Evidence Explorer rendering +- Browser-side request receipt note +- Command Palette extensions for Labs, Build Log and recruiter deep links + +### `portfolio-v2.css` + +Owns UI for the V2 runtime surfaces. New V2 components should be styled here instead of growing `style.css` unless they are true global primitives. + +## Runtime compatibility layer + +The old monolithic runtime is preserved byte-for-byte as `legacy-script.js`. + +`script.js` is now a small bootloader. + +On pages explicitly migrated to V2, the HTML already declares `portfolio-data.js` before `script.js` and `portfolio-v2.js` after it. The bootloader detects that setup and synchronously inserts only `legacy-script.js`, preserving execution order. + +On older pages that still contain only ``, the bootloader inserts: + +`portfolio-data.js → legacy-script.js → portfolio-v2.js` + +It also adds `portfolio-v2.css` when missing. + +This keeps current Recruiter Mode and Ajoop evidence available on older case studies, certificates, 404 and mini-game pages without forcing a risky all-at-once HTML rewrite. + +Future refactors can extract focused modules from `legacy-script.js`; the compatibility bootloader gives that work a stable migration boundary. + +## Ajoop scope + +Ajoop is deterministic in this release. It maps portfolio questions to curated evidence-backed answers and links. + +V2 improves its grounding by sourcing current SINAMA, Merge Rush, role-fit and build-status facts from the central registry, but **does not claim a live LLM, semantic retrieval or RAG backend**. + +A future semantic assistant should be a separate, explicit product step with source citation, safe fallbacks and clear runtime boundaries. + +## Role deep links + +Supported role ids: + +- `applied-ai` +- `solution-engineering` +- `software` +- `game` + +Example: + +`https://kaanbalci.com/?role=applied-ai` + +A valid role parameter selects that evidence profile and opens Recruiter Mode. + +## Page hierarchy + +### Professional narrative + +1. `index.html` — concise landing page +2. `works.html` — curated professional evidence +3. `sinama-case-study.html` — flagship Applied AI proof +4. `merge-rush-case-study.html` — flagship game / interactive product proof +5. `blog.html` — professional timeline +6. `about.html` — profile and capability map +7. `request.html` — project inquiry + +### Supporting surfaces + +- `now.html` — living build log +- `labs.html` — technical experiments that should not dilute the main career story +- `games.html` — actual game / playable work +- `project-detail.html` — dynamic archive detail route; intentionally `noindex` +- `single-work.html` — training / certificates + +## Evidence policy + +Prefer evidence over quantity metrics. + +Good proof: + +- Implemented product behavior +- Test suites / regression logic +- Release-readiness rules +- Real customer workflows +- Responsive QA evidence +- Architecture boundaries +- Live product links + +Weak proof should not lead the homepage: + +- Tutorial-scale repositories +- Calculator / weather practice apps +- Unbuilt concepts +- Raw certificate counts + +These can remain in GitHub, Labs or archive surfaces. + +## SINAMA Evidence Explorer + +The explorer uses simplified, sanitized static examples. It is not a live evaluator and must never be presented as one. + +Its purpose is to make the product model understandable quickly: + +`Conversation → Tool Trace → Deterministic Findings → Release Verdict` + +## Merge Rush media policy + +The public case study may describe verified QA states from the private development record, but it must not invent gameplay screenshots. + +When real public screenshots or video are approved, add them to the public portfolio `assets/` folder and reference them from the case study. Keep the private repository private. + +## Request-form truth + +The current direct request endpoint uses Google Apps Script with `no-cors` browser submission. The browser cannot verify server-side receipt. + +The UI may show a **browser submission reference**, but must not call it a server confirmation until the endpoint returns a verifiable response with appropriate CORS handling. + +## QA + +The Site Preflight workflow remains the release safety net and now includes JavaScript syntax validation for all root JS files. V2 adds `labs.html` and `now.html` to Pa11y and Lighthouse coverage. + +Before merge: + +1. JavaScript syntax validation +2. HTML validation +3. spelling +4. mobile Pa11y +5. Lighthouse +6. broken-link scan +7. interaction review for Recruiter Mode V2, language switch, Ajoop, role deep links and SINAMA Evidence Explorer + +## Migration note + +`flagship-copy.js` was removed. Its responsibilities are now handled by the registry + V2 runtime. + +`legacy-script.js` is compatibility code, not the preferred home for new product facts. New current-state logic should enter through the registry or focused V2 modules first. diff --git a/README.md b/README.md index 99a583e..63e0d07 100644 --- a/README.md +++ b/README.md @@ -2,53 +2,112 @@ Source code for [kaanbalci.com](https://kaanbalci.com), the professional portfolio of **Kaan Balcı — AI Designer & Software Developer**. -## Professional focus +## Current positioning -- Conversational AI and chatbot flow design -- Solution engineering -- LLM response, reasoning, code and multimodal evaluation -- Workflow automation and n8n-style logic -- User-centered software products -- Python, C#/.NET, JavaScript, PHP and SQL +The public portfolio is centered on: -Game development, mobile development and interactive projects remain part of the wider portfolio, while the main public positioning is centered on AI and software roles. +- Applied AI and AI Agent Reliability +- AI Solutions / Solution Engineering +- Conversational AI and workflow design +- LLM evaluation and evidence-based QA +- Python / FastAPI / PostgreSQL product work +- TypeScript product and interactive systems + +Two current flagship products lead the portfolio: + +- **SINAMA — AI Agent Reliability Lab** +- **Merge Rush: Tiny Factory** + +## Portfolio Architecture V2 + +Current product truth is centralized in `portfolio-data.js` and consumed by `portfolio-v2.js`. + +This registry powers or synchronizes: + +- Recruiter Mode V2 +- Role-specific recruiter deep links +- Ajoop evidence answers +- Build Log +- Kaan Labs +- SINAMA Evidence Explorer +- Shared bilingual V2 copy + +See [`PORTFOLIO_ARCHITECTURE.md`](PORTFOLIO_ARCHITECTURE.md) before adding new flagship facts or recruiter evidence. + +## Runtime boot sequence + +`script.js` is now a small compatibility bootloader rather than the monolithic application runtime. + +On pages already migrated to V2 it keeps parser order intact and loads the legacy runtime between the registry and the explicit V2 runtime: + +`portfolio-data.js → script.js bootloader → legacy-script.js → portfolio-v2.js` + +On older pages that still include only `script.js`, the bootloader injects the full stack automatically: + +`portfolio-data.js → legacy-script.js → portfolio-v2.js` + +It also injects `portfolio-v2.css` when a legacy page does not already include it. This keeps Recruiter Mode, Ajoop and current portfolio evidence synchronized across older case studies, certificates, 404 and mini-game pages without rewriting every HTML file at once. ## Main pages -- `index.html` — Landing page, focus areas, recent experience, selected work and contact hub -- `works.html` — Filterable project catalog -- `games.html` — Interactive web games catalog -- `adventure.html` — Career Adventure mini game -- `joyday-paint.html` — Joyday Action Painting experience -- `ai-flow-puzzle.html` — n8n-inspired chatbot workflow puzzle -- `project-detail.html` — Dynamic project detail page -- `blog.html` — Professional experience timeline -- `single-work.html` — Training and course certificate gallery -- `about.html` — Professional profile and capability map -- `request.html` — Project request form -- `script.js` — Navigation, EN/TR translation, Ajoop, Recruiter Mode, Command Palette and dynamic project content -- `style.css` — Responsive site styling +- `index.html` — concise landing page led by flagship evidence +- `works.html` — curated professional project catalog +- `sinama-case-study.html` — Applied AI / reliability flagship case study + evidence explorer +- `merge-rush-case-study.html` — game / interactive flagship case study + QA evidence +- `blog.html` — professional experience timeline +- `about.html` — profile and capability map +- `request.html` — structured project inquiry +- `now.html` — living product / engineering build log +- `labs.html` — technical experiments separated from the main professional narrative +- `games.html` — active game product + playable browser work +- `single-work.html` — training and certificates +- `project-detail.html` — dynamic archive project detail route (`noindex`) + +## Core files + +- `portfolio-data.js` — source of truth for current flagship/project/recruiter/build data +- `portfolio-v2.js` — V2 runtime and evidence surfaces +- `portfolio-v2.css` — V2 component styling +- `script.js` — global compatibility bootloader +- `legacy-script.js` — preserved pre-V2 global runtime: navigation, theme, historical translations, dynamic archive details, chatbot shell, command palette, request/game utilities and other established interactions +- `style.css` — global styling primitives and legacy component styles + +`flagship-copy.js` has been retired; its responsibilities moved to the registry + V2 runtime. + +## Recruiter deep links + +- `/?role=applied-ai` +- `/?role=solution-engineering` +- `/?role=software` +- `/?role=game` + +A valid role parameter selects the matching evidence profile and opens Recruiter Mode. + +## Ajoop scope + +Ajoop remains deterministic and portfolio-focused. V2 grounds its current SINAMA, Merge Rush, role-fit and build-status answers in the central registry. It is **not** presented as a live LLM/RAG assistant in this release. ## Resume -All public resume actions use one centralized resume URL in `script.js`: +The public resume URL is mirrored in the registry and in the preserved legacy runtime: -```js -const resumeLink = "https://drive.google.com/file/d/1eERVaYoP-ICuP3xfbzpaDaCo5amwqA8u/view?usp=sharing"; -``` +`https://drive.google.com/file/d/1eERVaYoP-ICuP3xfbzpaDaCo5amwqA8u/view?usp=sharing` -Public buttons use labels such as **View Resume** or **Download Resume**. Role-specific application CVs are intentionally not exposed on the website. +Role-specific private application CVs are intentionally not exposed. -## Current links +## QA -- Portfolio: [kaanbalci.com](https://kaanbalci.com) -- Resume: [View Resume](https://drive.google.com/file/d/1eERVaYoP-ICuP3xfbzpaDaCo5amwqA8u/view?usp=sharing) -- LinkedIn: [linkedin.com/in/balcikaan](https://www.linkedin.com/in/balcikaan/) -- GitHub: [github.com/UAJOP](https://github.com/UAJOP) -- Email: [kaanb8776@gmail.com](mailto:kaanb8776@gmail.com) +GitHub Actions Site Preflight checks: + +- JavaScript syntax for every root `.js` file +- HTML validation +- spelling +- mobile WCAG 2 AA with Pa11y +- Lighthouse performance / accessibility / best practices / SEO +- broken links + +V2 adds `labs.html` and `now.html` to automated accessibility and Lighthouse coverage. ## Deployment The repository is configured for GitHub Pages with the custom domain in `CNAME`. - -Keep the existing `assets` directory unchanged when replacing the updated code files, because the HTML pages reference the current portfolio images, certificates and logos from that directory. diff --git a/about.html b/about.html index f68da1d..4d8df38 100644 --- a/about.html +++ b/about.html @@ -1,230 +1,11 @@ - - - - - - - - - - - - - -About Kaan Balcı | AI Designer & Software Developer - - - - - - - - - - - -
-
-

About

-

Software logic, AI workflows and product thinking in one profile.

-

- I am building a career at the intersection of artificial intelligence, automation and software development. - My strength is combining technical execution with practical business understanding. -

-
-
-
-Kaan Balcı profile photo -
-AI Designer & Software Developer -Istanbul / Turkey -
-
-
-

Professional profile

-

Building practical AI systems, reliability workflows and user-centered software products.

-

I am an AI Designer and Software Developer focused on conversational AI, workflow automation, LLM evaluation, AI agent reliability and user-centered software products. My background combines software development with AI flow design, product thinking, testing and practical digital operations.

-

At CBOT, I worked on enterprise conversational AI projects involving chatbot QA, flow restructuring, multi-channel automation and an insurance claims intake POC. My work included testing, stabilization, channel configuration, voice and WhatsApp transitions, document collection and multi-step workflow logic.

-

Through project-based AI training work, I evaluated LLM responses, reasoning, code and multimodal outputs. As a co-founder of Atölye Joyday, I also built a live website, package-based reservation journey and automated operational workflows for a real customer-facing business.

-

In 2026, I expanded this direction with SINAMA, a live AI Agent Reliability Lab for deterministic multi-turn workflow evaluation, regression evidence and release readiness, while also developing Merge Rush: Tiny Factory as a Phaser 3 / TypeScript game product with progression, multi-cell board logic and a platform-aware YouTube Playables direction.

-

I am currently interested in Applied AI, AI Solutions, Forward Deployed Engineering, Conversational AI, Solution Engineering, LLM Evaluation, Workflow Automation and software development opportunities.

-
- -Email Me -
-
-
-
-
-

Milestone journey

-

From operations to AI-driven software products.

-

My background combines field operations, software projects, AI workflow design and real business product experience.

-
-
-
2020

Event operations foundations

Built practical experience in logistics, on-site coordination, team supervision and time-sensitive execution.

-
2023

Software foundations

Built university and personal projects across Java, Python, web interfaces and databases.

-
2024

Backend, data and game systems

Focused on C#, MSSQL, Python data analysis and Unreal Engine / Unity prototypes.

-
2025

AI Designer direction

Worked on chatbot flows, AI Flow logic, IVR awareness and LLM response quality evaluation.

-
2026

AI reliability & product ownership

Built SINAMA as a live agent-reliability product, continued Joyday’s digital workflows and developed Merge Rush as an active Phaser / TypeScript game product.

-
-
- -
-
-

Capability map

-

The areas I can contribute to.

-

- I can work across AI product logic, reliability testing, automation design, backend implementation, web interfaces and software quality workflows. -

-
-
-
-

AI & Reliability

-
    -
  • Conversational AI and chatbot flow design
  • -
  • Deterministic AI agent evaluation
  • -
  • Multi-turn scenario and regression testing
  • -
  • LLM response, prompt and code output review
  • -
  • Tool-call evidence and release-readiness thinking
  • -
-
-
-

Software Development

-
    -
  • Python and FastAPI backend systems
  • -
  • C#/.NET Windows Forms systems
  • -
  • JavaScript / TypeScript interfaces and products
  • -
  • PHP, MySQL and PostgreSQL-backed workflows
  • -
  • API integration, testing and maintainable architecture
  • -
-
-
-

Digital Products & Interactive Systems

-
    -
  • Responsive websites and user journeys
  • -
  • Reservation and automation workflows
  • -
  • Android apps with Java/Kotlin
  • -
  • Phaser, Unity and Unreal Engine prototypes
  • -
  • Product-oriented case studies and interaction design
  • -
-
-
-
-
-
-

How I work

-

I prefer clear requirements, testable logic and usable output.

-

- Whether it is an AI agent workflow, a dashboard, a website or a game mechanic, my process is to understand the user, - structure the logic, build the system and refine it through testing. -

-
-
-
-01 -
-

Understand the goal

-

Clarify the user need, business requirement, data source, risks and expected result.

-
-
-
-02 -
-

Design the logic

-

Map the flow, system structure, edge cases, evidence and core interaction path.

-
-
-
-03 -
-

Build, test and improve

-

Implement, validate, compare regressions, refine and keep the output maintainable for real usage.

-
-
-
-
-
-
-

Toolbox

-

Technologies I use.

-
-
-
-

Languages

-

Python, C#, JavaScript, TypeScript, PHP, Java, Kotlin, C++

-
-
-

AI & Automation

-

Conversational AI, AI Flow, n8n-style workflow logic, deterministic agent evaluation, LLM evaluation, prompt analysis and output review

-
-
-

Backend & Data

-

FastAPI, REST APIs, PostgreSQL, MySQL, MSSQL, SQLite, Firebase, Google Sheets workflows

-
-
-

Interactive & Game

-

Phaser 3, Unity, Unreal Engine, Blueprints, responsive game UI, gameplay logic and platform abstraction

-
-
-
-
- - - - +About Kaan Balcı | AI Designer & Software Developer + +

About

Software logic, AI reliability and product thinking in one profile.

I am building a career at the intersection of Applied AI, solution engineering and hands-on software development.

+
Kaan Balcı profile photo
AI Designer & Software DeveloperIstanbul / Turkey

Professional profile

I like turning ambiguous workflow problems into systems that can be tested.

My current direction combines conversational AI, AI agent reliability, workflow automation, LLM evaluation and product-minded software engineering. I care about what the system actually does, not only whether the interface looks convincing.

At CBOT, I worked on enterprise conversational-AI projects involving chatbot QA, stabilization, channel configuration, flow restructuring and an insurance-claims intake POC. Project-based AI evaluation work added structured review of LLM responses, reasoning, code and multimodal outputs.

In 2026, SINAMA became my strongest Applied AI / reliability-engineering product, while Merge Rush: Tiny Factory became the main game-system and interactive-product engineering track. Atölye Joyday remains a real-business example of customer-facing product ownership and automation.

+

Capability map

Where I can contribute today.

Applied AI & Reliability

  • Multi-turn scenario design and agent evaluation
  • Deterministic tool/workflow contracts
  • Regression evidence and release-readiness thinking
  • LLM response, reasoning, code and multimodal evaluation
  • Conversational AI and chatbot flow design

Solution & Software Engineering

  • Python / FastAPI backend services
  • TypeScript product interfaces
  • PostgreSQL, MySQL and SQL-backed workflows
  • C#/.NET desktop systems
  • API integration, QA and maintainable product logic

Interactive Product Engineering

  • Phaser 3 browser-game systems
  • Gameplay state and progression
  • Responsive game UI
  • Platform lifecycle abstraction
  • Playtesting-driven iteration
+

Milestone journey

From software foundations to reliability-focused product work.

2020

Operations foundations

Field coordination, logistics and team execution in time-sensitive environments.

2023

Software foundations

Java, Python, web interfaces, databases and university projects.

2024

Backend, data and games

C#/.NET, SQL, Python data work and Unity / Unreal prototypes.

2025

Enterprise conversational AI

Chatbot QA, workflow restructuring, multi-channel logic and LLM evaluation.

2026

AI reliability & product ownership

SINAMA, Merge Rush and continued real-business digital product work.

+

How I work

Understand → structure → build → test → compare.

01

Understand the real requirement

Clarify the user, business rule, integration boundary, risk and expected output.

02

Make the logic explicit

Map workflows, prerequisites, edge cases, state and evidence before hiding complexity behind UI.

03

Build and measure behavior

Implement, test, compare regressions and keep the system maintainable enough to iterate.

+

Toolbox

Current working stack.

Languages

Python, C#, JavaScript, TypeScript, PHP, Java, Kotlin, C++

AI & Automation

AI agent evaluation, conversational AI, LLM evaluation, workflow automation, AI Flow, n8n-style logic

Backend & Data

FastAPI, REST APIs, PostgreSQL, MySQL, MSSQL, SQLite, Firebase

Interactive

Phaser 3, Unity, Unreal Engine, Canvas, responsive gameplay and platform abstraction

+

Choose the evidence view

The same profile can be reviewed from different role angles.

+ \ No newline at end of file diff --git a/blog.html b/blog.html index b7e5081..d5bb956 100644 --- a/blog.html +++ b/blog.html @@ -1,193 +1,15 @@ - - - - - - - - - - - - - -Experience | Kaan Balcı - - - - - - - - - - - -
-
-

Experience

-

Professional timeline shaped by AI, software, operations and product thinking.

-

- I have worked across AI workflows, software development, event operations and entrepreneurship. - This combination helps me understand both technical systems and real business processes. -

-
-
- -
-
-
-
-Istanbul | Jan 2026 – Present -

Atölye Joyday – Co-Founder & Digital Product Developer

-

Co-founded a creative workshop studio and developed its digital product and operational experience. Built the responsive website, package-based reservation journey, application forms and automated notification workflows using HTML, CSS, JavaScript, Google Forms, Google Sheets and Apps Script.

-
EntrepreneurshipDigital ProductReservation JourneyApps Script
-Open Website -
-
-
-
-
-Istanbul | Sep 2025 – Oct 2025 -

CBOT – AI Designer

-

Worked on enterprise conversational AI projects across banking, insurance, municipal services and employee benefits. Contributed to live-chat QA, chatbot stabilization, channel configuration, large-scale flow restructuring and multi-channel automation processes. Designed, built, tested and presented an insurance claims intake POC involving voice interaction, phone verification, WhatsApp handoff, photo and document collection, and workflow coordination.

-
Conversational AIQA & StabilizationAI FlowMulti-Channel Automation
-Company Website -
-
-
-
-
-Remote | Apr 2025 – Aug 2025 -

Outlier AI – AI Training Specialist — Freelance / Project-Based

-

Evaluated LLM responses, reasoning, code outputs and multimodal interactions through structured AI training and quality-assessment tasks, focusing on correctness, clarity, instruction following and user relevance.

-
LLM EvaluationPrompt AnalysisCode Output ReviewMultimodal Assessment
-Company Website -
-
-
-
-
-Izmir | Jul 2024 – Sep 2024 -

Punto Organization – Software Development Intern

-

Developed a web-based event-management dashboard using PHP, JavaScript, HTML, CSS and MySQL. Built a database-backed interface for event creation, editing, tracking and reporting during a software development internship.

-
PHPJavaScriptMySQLDashboard
-Company Website -
-
-
-
-
-Izmir | Jul 2022 – Aug 2025 -

Punto Organization – Event Operations Supervisor — Part-Time

-

Coordinated on-site event operations, team supervision, logistics, customer experience and time-sensitive execution for congresses, seminars, corporate meetings and product launches.

-
Event OperationsTeam SupervisionLogisticsCoordination
-
-
-
-
-
-Istanbul | Jan 2020 – Jun 2022 -

Ocean’s Team – Event Operations Specialist — Part-Time

-

Supported event logistics, on-site coordination, task distribution and team supervision in fast-paced corporate event environments.

-
Event OperationsOn-Site CoordinationTeam SupervisionLogistics
-Company Website -
-
-
-
- -
-
-

Activities & Industry Events

-

Additional learning, competition and community experience.

-

These activities support my technical development but are separate from the professional experience timeline.

-
-
-
-

Gameathon — Game Development Hackathon

-

Led a four-person team during a 24-hour competition, supporting game mechanics, Git workflows and rapid Unreal Engine prototyping. The team placed 4th among 15 teams.

-
-
-

Mobidictum Conference

-

Attended game-industry sessions focused on development tools, game economy and studio operations, expanding practical industry awareness and professional connections.

-
-
-
-
- - - - +Experience | Kaan Balcı + +

Experience

A timeline shaped by enterprise AI, software and product ownership.

The useful pattern across these roles is translating real operational needs into clearer workflows, software or evaluation evidence.

+
+
Istanbul | Jan 2026 – Present

Atölye Joyday — Co-Founder & Digital Product Developer

Co-founded a creative workshop studio and built its customer-facing digital product experience: responsive website, package-based reservation journey, application forms and automated notification workflows using HTML, CSS, JavaScript, Google Forms, Google Sheets and Apps Script.

Product OwnershipReservation JourneyApps ScriptAutomation
View Case Study
+
Istanbul | Sep 2025 – Oct 2025

CBOT — AI Designer

Worked on enterprise conversational-AI projects across banking, insurance, municipal services and employee benefits. Contributed to live-chat QA, chatbot stabilization, channel configuration, large-scale flow restructuring and multi-channel automation. Designed, built, tested and presented an insurance-claims intake POC involving voice interaction, phone verification, WhatsApp handoff, photo/document collection and workflow coordination.

Conversational AIQA & StabilizationAI FlowMulti-Channel
View Portfolio Evidence
+
Remote | Apr 2025 – Aug 2025

Outlier AI — AI Training Specialist, Freelance / Project-Based

Evaluated LLM responses, reasoning, code outputs and multimodal interactions through structured quality-assessment tasks focused on correctness, clarity, instruction following and user relevance.

LLM EvaluationPrompt AnalysisCode ReviewMultimodal Assessment
+
Izmir | Jul 2024 – Sep 2024

Punto Organization — Software Development Intern

Developed a web-based event-management dashboard using PHP, JavaScript, HTML, CSS and MySQL, including database-backed event creation, editing, tracking and reporting.

PHPJavaScriptMySQLDashboard
+
Izmir | Jul 2022 – Aug 2025

Punto Organization — Event Operations Supervisor, Part-Time

Coordinated on-site operations, team supervision, logistics, customer experience and time-sensitive execution for congresses, seminars, meetings and product launches.

OperationsTeam SupervisionLogistics
+
Istanbul | Jan 2020 – Jun 2022

Ocean's Team — Event Operations Specialist, Part-Time

Supported event logistics, on-site coordination, task distribution and team supervision in fast-paced corporate event environments.

OperationsCoordinationTeamwork
+
+

Activities & industry

Supporting experience outside the employment timeline.

Gameathon — Game Development Hackathon

Led a four-person team during a 24-hour competition, supporting game mechanics, Git workflows and rapid Unreal Engine prototyping. The team placed 4th among 15 teams.

Mobidictum Conference

Attended game-industry sessions on development tools, game economy and studio operations, expanding practical industry awareness.

Independent product work

SINAMA and Merge Rush now extend the timeline with current evidence in reliability engineering, backend architecture, gameplay systems and product iteration.

+

Role mapping

Review the same experience through the role you are hiring for.

+ \ No newline at end of file diff --git a/cspell.json b/cspell.json index ba8c7bb..4c06ae7 100644 --- a/cspell.json +++ b/cspell.json @@ -1,86 +1,11 @@ { "version": "0.2", "language": "en,tr,tr-TR", - "import": [ - "@cspell/dict-tr-tr/cspell-ext.json" - ], + "import": ["@cspell/dict-tr-tr/cspell-ext.json"], "useGitignore": true, - "ignorePaths": [ - "assets/**", - "node_modules/**", - ".git/**", - ".lighthouseci/**", - "qa-results/**" - ], - "ignoreRegExpList": [ - "Url", - "Email", - "/(?:src|href|data-[\\w-]+)=\"[^\"]*\"/g", - "/data:image\\/[^\\s]+/g" - ], + "ignorePaths": ["assets/**", "node_modules/**", ".git/**", ".lighthouseci/**", "qa-results/**"], + "ignoreRegExpList": ["Url", "Email", "/(?:src|href|data-[\\w-]+)=\"[^\"]*\"/g", "/data:image\\/[^\\s]+/g"], "words": [ - "Ajoop", - "Atölye", - "automations", - "BALCI", - "Balcı", - "balcikaan", - "barycentric", - "Boxicons", - "CBOT", - "chatbot", - "chatbots", - "Çolakoğlu", - "Drivenfinity", - "drivenfinity", - "ecommerce", - "Firebase", - "frontend", - "Gameathon", - "GitHub", - "Hackathon", - "inspectable", - "Istanbul", - "JavaScript", - "Joyday", - "Kaan", - "kaanbalci", - "Kaanbalci", - "Kotlin", - "LinkedIn", - "LLM", - "LLMs", - "Mandelas", - "mandelas", - "Mobidictum", - "MSSQL", - "multimodal", - "MySQL", - "n8n", - "Natro", - "OOP", - "Outlier", - "parametric", - "Playables", - "playtesting", - "recruiter", - "responsive", - "Samancıoğlu", - "Schmedtmann", - "SINAMA", - "Supabase", - "Tkinter", - "toolbelt", - "Tristem", - "TypeScript", - "UAJOP", - "Udemy", - "Unreal", - "unscored", - "WCAG", - "wordmark", - "workflow", - "workflows", - "Yücedağ" + "Ajoop", "Atölye", "automations", "BALCI", "Balcı", "balcikaan", "barycentric", "Boxicons", "CBOT", "chatbot", "chatbots", "Çolakoğlu", "Drivenfinity", "drivenfinity", "ecommerce", "FastAPI", "Firebase", "frontend", "Gameathon", "gameplay", "GitHub", "Hackathon", "handoffs", "inspectable", "Istanbul", "JavaScript", "Joyday", "Kaan", "kaanbalci", "Kaanbalci", "Kotlin", "LinkedIn", "LLM", "LLMs", "Mandelas", "mandelas", "Mobidictum", "MSSQL", "multimodal", "MySQL", "n8n", "Natro", "OOP", "Outlier", "parametric", "Phaser", "Playables", "playtesting", "PostgreSQL", "recruiter", "responsive", "Samancıoğlu", "Schmedtmann", "SINAMA", "Supabase", "Tkinter", "toolbelt", "Tristem", "TypeScript", "UAJOP", "Udemy", "Unbuilt", "Unreal", "unscored", "Vercel", "Vitest", "WCAG", "wordmark", "workflow", "workflows", "Yücedağ" ] } diff --git a/flagship-copy.js b/flagship-copy.js deleted file mode 100644 index 2bb0c0c..0000000 --- a/flagship-copy.js +++ /dev/null @@ -1,214 +0,0 @@ -(function () { - function currentLanguage() { - return (document.documentElement.lang || "en") === "tr" ? "tr" : "en"; - } - - function applyFlagshipCopy() { - const lang = currentLanguage(); - - document.querySelectorAll("[data-flagship-en][data-flagship-tr]").forEach((node) => { - const value = lang === "tr" ? node.dataset.flagshipTr : node.dataset.flagshipEn; - if (typeof value === "string") node.textContent = value; - }); - - document.querySelectorAll("[data-flagship-aria-en][data-flagship-aria-tr]").forEach((node) => { - const value = lang === "tr" ? node.dataset.flagshipAriaTr : node.dataset.flagshipAriaEn; - if (typeof value === "string") node.setAttribute("aria-label", value); - }); - } - - function addUniqueKeywords(entry, keywords) { - if (!entry) return; - const known = new Set(entry.keywords.map((keyword) => keyword.toLowerCase())); - keywords.forEach((keyword) => { - if (!known.has(keyword.toLowerCase())) { - entry.keywords.push(keyword); - known.add(keyword.toLowerCase()); - } - }); - } - - function syncAjoopWithFlagshipProjects() { - if ( - typeof portfolioChatbotContent === "undefined" || - typeof chatbotKeywordMap === "undefined" - ) { - return; - } - - const sinamaLinks = { - en: [ - { label: "SINAMA Case Study", url: "sinama-case-study.html" }, - { label: "Open Live Product", url: "https://sinama.kaanbalci.com" }, - { label: "GitHub", url: "https://github.com/UAJOP/sinama" }, - ], - tr: [ - { label: "SINAMA Vaka Çalışması", url: "sinama-case-study.html" }, - { label: "Canlı Ürünü Aç", url: "https://sinama.kaanbalci.com" }, - { label: "GitHub", url: "https://github.com/UAJOP/sinama" }, - ], - }; - const mergeRushLinks = { - en: [{ label: "Merge Rush Case Study", url: "merge-rush-case-study.html" }], - tr: [{ label: "Merge Rush Vaka Çalışması", url: "merge-rush-case-study.html" }], - }; - - portfolioChatbotContent.en.quicks = [ - { id: "about", label: "Who is Kaan?" }, - { id: "sinama", label: "SINAMA" }, - { id: "mergeRush", label: "Merge Rush" }, - { id: "projects", label: "Best projects" }, - { id: "roles", label: "Role fit" }, - { id: "cv", label: "CV & contact" }, - ]; - portfolioChatbotContent.tr.quicks = [ - { id: "about", label: "Kaan kim?" }, - { id: "sinama", label: "SINAMA" }, - { id: "mergeRush", label: "Merge Rush" }, - { id: "projects", label: "En iyi projeler" }, - { id: "roles", label: "Role uygunluk" }, - { id: "cv", label: "CV & iletişim" }, - ]; - - Object.assign(portfolioChatbotContent.en.answers, { - sinama: { - text: [ - "SINAMA is Kaan's flagship Applied AI project: a Turkish-first AI Agent Reliability Lab for repeatable multi-turn testing, deterministic workflow evidence, regression comparison, version trends and release-readiness decisions.", - "SINAMA now proves the same reliability pipeline across insurance and e-commerce, including a typed 14-scenario cross-vertical suite. It can also test compatible external HTTPS agents.", - "The key SINAMA idea is simple: an agent can execute successfully and still behave incorrectly. The product inspects transcript and Tool Trace evidence rather than treating fluent text as proof of correctness.", - ], - links: sinamaLinks.en, - }, - mergeRush: { - text: [ - "Merge Rush: Tiny Factory is Kaan's active Phaser 3 + TypeScript game product. Timed orders feed a factory-restoration loop with staged board unlocks, multi-cell items, combos and Endless mode.", - "The project is also an engineering exercise: deterministic game state, footprint-aware placement, deadlock checks, responsive layouts and platform lifecycle abstractions are separated from presentation code.", - "Merge Rush is still in active development for a YouTube Playables direction. The private repository is not linked publicly; the portfolio case study documents the real implemented systems without presenting it as a finished release.", - ], - links: mergeRushLinks.en, - }, - projects: { - text: [ - "Kaan's two current flagship builds are SINAMA and Merge Rush: Tiny Factory. SINAMA is the strongest Applied AI / reliability-engineering proof; Merge Rush is the strongest current game-system and interactive-product proof.", - "For AI and Solution Engineering roles, start with SINAMA, then AI Chatbot Flow Design. For product/game engineering, start with Merge Rush. Joyday remains the strongest live real-business digital product example.", - "The broader catalog also includes AI Flow Puzzle, Joyday, C#/.NET hospital systems, Python/Tkinter software, data projects, Android work and Unity/Unreal prototypes.", - ], - links: [ - { label: "View Works", url: "works.html" }, - ...sinamaLinks.en.slice(0, 1), - ...mergeRushLinks.en, - ], - }, - roles: { - text: [ - "Kaan's strongest current direction is Applied AI / AI Solutions / Forward Deployed or Solution Engineering, supported by conversational AI, agent reliability, automation and hands-on software development.", - "SINAMA adds concrete proof in AI evaluation, backend architecture, test evidence and release discipline; CBOT adds enterprise conversational-AI experience; Joyday adds real product ownership.", - "For game or interactive-product roles, Merge Rush adds current Phaser 3 + TypeScript work on gameplay state, progression, responsive UI and platform architecture.", - ], - links: [ - { label: "Works", url: "works.html" }, - { label: "About", url: "about.html" }, - { label: "Contact", url: "mailto:kaanb8776@gmail.com" }, - ], - }, - }); - - Object.assign(portfolioChatbotContent.tr.answers, { - sinama: { - text: [ - "SINAMA, Kaan'ın flagship Applied AI projesi: tekrarlanabilir multi-turn test, deterministic workflow kanıtı, regression karşılaştırması, version trends ve release-readiness kararları için Turkish-first bir AI Agent Reliability Lab.", - "SINAMA artık aynı reliability pipeline'ını insurance ve e-commerce domain'lerinde kanıtlıyor; ayrıca 14 senaryolu typed cross-vertical suite ve uyumlu external HTTPS agent testing desteği bulunuyor.", - "SINAMA'nın ana fikri şu: bir agent teknik olarak çalışıp yine de yanlış davranabilir. Ürün akıcı metni başarı kanıtı saymak yerine transcript ve Tool Trace kanıtını inceliyor.", - ], - links: sinamaLinks.tr, - }, - mergeRush: { - text: [ - "Merge Rush: Tiny Factory, Kaan'ın aktif Phaser 3 + TypeScript oyun ürünü. Süreli siparişler; aşamalı board unlock, multi-cell item'lar, combo ve Endless mode içeren fabrika onarım döngüsünü besliyor.", - "Proje aynı zamanda mühendislik tarafını gösteriyor: deterministic game state, footprint-aware placement, deadlock kontrolleri, responsive layout'lar ve platform lifecycle abstraction'ları presentation kodundan ayrılıyor.", - "Merge Rush hâlâ YouTube Playables yönünde aktif geliştirme aşamasında. Private repository public olarak paylaşılmıyor; portfolyo case study'si gerçek sistemleri tamamlanmış release gibi göstermeden belgeliyor.", - ], - links: mergeRushLinks.tr, - }, - projects: { - text: [ - "Kaan'ın güncel iki flagship ürünü SINAMA ve Merge Rush: Tiny Factory. SINAMA Applied AI / reliability engineering için; Merge Rush ise game-system ve interactive-product engineering için en güçlü güncel kanıt.", - "AI ve Solution Engineering rolleri için önce SINAMA, ardından AI Chatbot Flow Design; game/product engineering için Merge Rush; gerçek işletme ürünü görmek için Joyday incelenebilir.", - "Daha geniş katalogda ayrıca AI Flow Puzzle, Joyday, C#/.NET hastane sistemleri, Python/Tkinter yazılımları, data projeleri, Android ve Unity/Unreal çalışmaları bulunuyor.", - ], - links: [ - { label: "Projeleri Gör", url: "works.html" }, - ...sinamaLinks.tr.slice(0, 1), - ...mergeRushLinks.tr, - ], - }, - roles: { - text: [ - "Kaan'ın güncel en güçlü kariyer yönü Applied AI / AI Solutions / Forward Deployed veya Solution Engineering. Bu yön conversational AI, agent reliability, otomasyon ve hands-on yazılım geliştirme ile destekleniyor.", - "SINAMA AI evaluation, backend architecture, test evidence ve release discipline tarafında somut ürün kanıtı; CBOT enterprise conversational AI deneyimi; Joyday ise gerçek ürün sahipliği sağlıyor.", - "Game veya interactive-product rolleri için Merge Rush; Phaser 3 + TypeScript, gameplay state, progression, responsive UI ve platform architecture tarafında güncel kanıt sunuyor.", - ], - links: [ - { label: "Projeler", url: "works.html" }, - { label: "Hakkımda", url: "about.html" }, - { label: "İletişim", url: "mailto:kaanb8776@gmail.com" }, - ], - }, - }); - - const existingIds = new Set(chatbotKeywordMap.map((entry) => entry.id)); - if (!existingIds.has("sinama")) { - chatbotKeywordMap.unshift({ - id: "sinama", - keywords: [ - "sinama", - "reliability", - "regression", - "readiness", - "scenario pack", - "test suite", - "tool trace", - ], - }); - } - if (!existingIds.has("mergeRush")) { - chatbotKeywordMap.unshift({ - id: "mergeRush", - keywords: [ - "merge rush", - "tiny factory", - "phaser", - "playables", - "factory run", - "endless", - "merge game", - ], - }); - } - - addUniqueKeywords( - chatbotKeywordMap.find((entry) => entry.id === "ai"), - ["agent", "agents", "applied ai", "solution engineering"], - ); - addUniqueKeywords( - chatbotKeywordMap.find((entry) => entry.id === "stack"), - ["typescript", "fastapi", "postgresql", "phaser"], - ); - - if (typeof updatePortfolioChatbotLanguage === "function") { - updatePortfolioChatbotLanguage(currentLanguage()); - } - } - - applyFlagshipCopy(); - syncAjoopWithFlagshipProjects(); - - const observer = new MutationObserver((records) => { - if (records.some((record) => record.type === "attributes" && record.attributeName === "lang")) { - applyFlagshipCopy(); - syncAjoopWithFlagshipProjects(); - } - }); - - observer.observe(document.documentElement, { attributes: true, attributeFilter: ["lang"] }); -})(); diff --git a/games.html b/games.html index a8be7a3..6a1b752 100644 --- a/games.html +++ b/games.html @@ -1,69 +1,11 @@ - - - - - - - - - - - - -Games | Kaan Balcı - - - - - - - - - - - - - - - - - - - -
-
-

Games & Interactive

-

From portfolio mini games to a production-minded merge game.

-

The game side of my portfolio now has two layers: lightweight browser experiments and Merge Rush: Tiny Factory, an active Phaser 3 + TypeScript product focused on progression, responsive gameplay and YouTube Playables architecture.

- -
- - - -

Current direction

The priority is depth, polish and platform readiness.

Merge Rush is the current game-development focus. New mini-game ideas remain secondary while the core product is refined through playtesting, pacing work and production architecture.

-
- - - - - +Games | Kaan Balcı + +

Games & Interactive

One active game product, three playable portfolio experiments.

Merge Rush is the current game-development priority. Smaller browser experiments remain playable, while technical experiments that are not really games now live under Kaan Labs.

+ +

Current direction

Merge Rush gets the production attention; experiments get a dedicated lab.

The old Interview Run concept is no longer presented as active portfolio work. Future small experiments belong in Labs until they earn a place in the game catalog.

\ No newline at end of file diff --git a/index.html b/index.html index 15afac9..1c88e73 100644 --- a/index.html +++ b/index.html @@ -3,44 +3,31 @@ - - + + - - +Kaan Balcı | Applied AI, Solutions & Software + + + + + + + - + - -Kaan Balcı | AI Designer & Software Developer - + + + - - - - - - - - - - +