Hello, I’m

FETHI
OMUR

Forward Deployed

Forward Deployed AI Engineer, AI Architect, AI Designer

About Me

AI Engineer building multi-agent systems and LLM-powered products with the Claude Agent SDK and MCP, grounded in deep learning. Always up for AI research collaborations.

WHAT
I DO

ENGINEER

Description

I build multi-agent systems and LLM-powered products: Claude Agent SDK and MCP orchestration, retrieval pipelines, fine-tuning and evaluation, shipped on Cloud Run and Azure.

Skills & tools
  • Claude Agent SDK
  • MCP
  • Python
  • PyTorch
  • TensorFlow
  • LLM Fine-tuning
  • Gemini API
  • RAG
  • Azure AI
  • Docker

DEPLOY

Description

I ship what I engineer — an iOS app on a live 3D globe, a Flutter app live on the App Store, and web products that stay up.

Skills & tools
  • Swift
  • SwiftUI
  • Flutter
  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • Cloud Run
Skip the story

How I work

4,000+ hours in Claude Code. I run software like a tech lead whose team is AI agents: written contracts, isolated worktrees, adversarial review, and nothing called done without evidence.

Always evolving · September 2026

I rebuild this workflow as the tools change.

New models and agent tools arrive every few weeks. I test them as they land, keep what makes the work better, and change how I work — staying current is part of the job. What never changes: a written plan, independent review, and proof before anything ships.

Workflow changelog

  1. One orchestrator session plans; executor sessions build in isolated worktrees.
  2. Model tier chosen per task difficulty.
  3. Whole-task briefs with a finish line; one reviewer; test only what changed.
  4. One strong model family for every agent; a second lab's model reviews read-only.
  1. I write the plan.

    A brief becomes a plan, split into packages that never touch the same file.

    The main session is an orchestrator. It plans at full effort, and every package names the files it owns and the files it must leave alone.

  2. It becomes a workflow.

    The orchestrator writes the workflow. The graph is what runs.

    A planner drafts, a critic attacks the draft, and the revised plan fans out to executors. Architecture calls get a read-only second opinion from another model family.

  3. AI agents build it in parallel.

    Executors work in parallel, each in its own git worktree, each under a written contract.

    Every brief says what done means, when to stop and ask, and which command proves it. Executors cannot spawn agents, add dependencies, commit or push.

  4. Another AI reviews every change.

    A reviewer re-runs every command and blocks what would ship wrong.

    Findings come with a file, a line, why it is wrong and how to show it fails. At most two fix rounds, then the orchestrator decides.

  5. Nothing ships without proof.

    Nothing is done until the orchestrator re-runs the checks. Every call lands in the ledger.

    Agent reports are claims. The acceptance commands are run again before any merge, and each non-obvious decision becomes a dated ledger row with its reason and its undo.

My 3D avatar, on a round podium, conducts eight orange Claude Code blocks and three white Codex knots with a baton; each wakes on its cue.
Me, conductingI conduct the agents.I set the tempo, and every agent comes in on its cue.
BriefPlanFan-outAdversarial verifySynthesisBriefownerPlanplannerCritiquecriticcamera-arcexecutorscreen-handoffexecutorsectionexecutorphone-posterexecutorReviewadversarialVerifyorchestratorMergedevelopLedgerD-323
The workflow graph: a brief is planned and critiqued, fans out to executors working in parallel, passes adversarial review, and is verified before it is merged and recorded in the ledger.
numbered decisions
334
engineering gates
51
test files
162

My tech stack

The tools I build with, and how I use them: Claude Code plans and edits, Codex gives a read-only second opinion, and every technology below is tied to the projects that run it.

Fethi in the centre, connected to the tools and languages he builds with, in 8 groups: Builds AI agents with, Models & APIs, Trains & fine-tunes, RAG & data, Evaluates & observes, Writes code in, Ships apps with, Deploys on; and a card of the 4 languages he speaks.
My stack at a glance The tools and languages I build with, from my résumé and projects.
  • Builds AI agents with
    • Claude Code
    • Codex
    • Claude Agent SDK
    • MCP
    • LangGraph
    • LangChain
  • Models & APIs
    • Claude API
    • OpenAI API
    • Gemini API
    • Hugging Face Transformers
    • vLLM
  • Trains & fine-tunes
    • PyTorch
    • TensorFlow
    • LoRA · QLoRA · PEFT
    • RLHF · DPO
    • scikit-learn
  • RAG & data
    • pgvector
    • Pinecone
    • FAISS
    • PostgreSQL
    • Supabase
    • SQLite
    • Firecrawl
  • Evaluates & observes
    • Langfuse
    • Ragas
    • DeepEval
    • pytest · CI
  • Writes code in (Languages)
    • Python
    • TypeScript
    • Swift
    • Dart
    • C#
    • C++
    • SQL
  • Ships apps with
    • SwiftUI · iOS
    • Flutter
    • React
    • Next.js
    • three.js
    • FastAPI
    • Unity
  • Deploys on
    • Docker
    • Kubernetes
    • Google Cloud
    • AWS
    • Azure AI Studio
    • n8n
  • Speaks
    • Turkish (native)
    • English (C1)
    • Azerbaijani (C1)
    • Italian (B1)

Logos are trademarks of their owners.

Agents

Claude Code
Since Feb 2025 · 5 projects and roles use it · 77.3 % CPU index (depth of experience)
An AI engineer that writes and tests code while I direct it. 4,000+ hours so far.
My main engineering tool, with 4,000+ hours behind it. It plans, edits and runs the checks; I review and decide.
  • This portfolio Runs this build as the orchestrator: plans, hands packages to executor sessions in their own worktrees, re-runs every check and logs 334 numbered decisions.
  • RR Ajans Eight persistent sessions, a director and seven specialists, run a small marketing agency with human approval gates.
  • Fethiverse The coding sessions follow the project's written rules, including a live probe that proves a new agent tool is really called.
  • RouteRush website Built RouteRush's marketing site with me: the live-map hero, six languages and the share-link worker.
  • Takvapp Paired on Takvapp's Flutter code: the prayer-times update and the qibla screen's layout fix.
Codex
Since Aug 2026 · 2 projects and roles use it · 22.7 % CPU index (depth of experience)
A second AI, from another lab, that double-checks the work.
A second model family. It reads, it does not write: a read-only second opinion before I merge.
  • This portfolio Read-only second opinion on architecture calls before a package is merged.
  • RR Ajans A read-only review of App Store copy against its screenshots, then still images for carousel slides.
Claude Agent SDK
Since Mar 2026 · 1 project or role uses it · 19.5 % CPU index (depth of experience)
A toolkit for building teams of AI agents that work on their own.
Agents with their own sessions, identities and tools, controlled by a Python pipeline.
  • Fethiverse Ten agents, each its own SDK session with a persistent identity, peer messages and an editor's scored review loop.
MCP
Since Jan 2026 · 4 projects and roles use it · 52.3 % CPU index (depth of experience)
A standard plug that lets AI agents use apps, files and data safely.
How my agents reach tools and data: design files, research sources, analytics, read-only where it matters.
  • AI and full-stack role, 2026 Moved the design-to-code workflow onto Figma MCP end to end, from days to hours.
  • Fethiverse 50+ agent tools served in-process to the content agents.
  • RR Ajans Research and analytics agents read their data through MCP servers, with publishing tools denied.
  • This portfolio Drove Blender live through an MCP server to fix the 3D avatar, every step logged and replayed as scripts.

AI & data

Gemini
Since Jan 2026 · 5 projects and roles use it · 62.3 % CPU index (depth of experience)
Google's AI models, for reading long documents, answering and making images.
Long-context extraction, generation, embeddings and images across my retrieval work.
  • Admissions RAG One long-context call per programme that must quote its evidence or return nothing; Gemini Embedding 2 for retrieval.
  • The Faculty Writes exam questions; a second model re-solves the ones the blind solver was unsure about.
  • AI Tutor Gemini Embedding 2 for the vectors, and Italian answers with cited sources.
  • Fethiverse Scene images for carousel slides.
  • RR Ajans Still images through the Gemini image model.
LLM fine-tuning
Since 2024 · 2 projects and roles use it · 50.0 % CPU index (depth of experience)
Teaching an AI model new skills with carefully prepared examples.
Data pipelines, augmentation and quality control behind fine-tuned models, and the evaluations that check them.
  • Mobile & AI Developer role, 2024 Built the fine-tuning and end-to-end pipelines for various models and served them on Azure AI and AWS.
  • AI data trainer role, 2025 Fine-tuned LLMs alongside AI researchers and ran reasoning and grading evaluations.
Python
Since Apr 2025 · 7 projects and roles use it · 94.5 % CPU index (depth of experience)
The programming language behind my data and AI pipelines.
The language of my pipelines: crawling, extraction, validation, agents and the tools around them.
  • Admissions RAG The agentic crawl, the extraction and the chat backend.
  • The Faculty The question pipeline and its sixteen deterministic validators.
  • Fethiverse The pipeline that runs the ten agents and the learning loop.
  • RR Ajans Small tools for the ad pipeline, and the check that proves every agent's setup.
  • LLMetric An extraction proof of concept for new benchmark data.
  • This portfolio Headless Blender scripts that prepare, check and rebuild the 3D avatar.
  • RouteRush website The build that writes the site's five translations from its English source.
Firecrawl
Since Jan 2026 · 5 projects and roles use it · 62.3 % CPU index (depth of experience)
Collects pages and PDFs from the web so an AI can read them.
Crawling and scraping for retrieval: pages, PDFs and change tracking.
  • Admissions RAG Maps and scrapes admission pages and PDFs, and watches them for changes.
  • AI Tutor A monthly sitemap-driven scrape of the course pages and their PDFs.
  • Fethiverse One of five news sources the research agent scans.
  • RR Ajans Web research behind the daily content proposals.
  • This portfolio Research agents fetch licence and trademark pages through it before a decision is recorded.
pgvector
Since Jan 2026 · 1 project or role uses it · 22.3 % CPU index (depth of experience)
Lets an AI search your own documents by meaning.
Vector search inside Postgres, with filters, so an answer can cite the page it came from.
  • Admissions RAG Retrieval filtered by university, with page-level citations that are checked after generation.

Apps & web

FastAPI
Since Apr 2025 · 4 projects and roles use it · 64.5 % CPU index (depth of experience)
Puts an AI pipeline behind a simple web address other apps can call.
Small, typed Python APIs in front of pipelines and chatbots.
  • Admissions RAG The chat API: retrieval, query rewriting and a citation guard.
  • The Faculty The API in front of the question pipeline.
  • Fethiverse A small chat API beside the content pipeline.
  • LLMetric The first benchmark API, later replaced by a managed backend.
TypeScript
Since Apr 2025 · 4 projects and roles use it · 64.5 % CPU index (depth of experience)
JavaScript with safety checks, for websites and back ends.
Strict TypeScript for the web, backends and scheduled jobs.
  • This portfolio This site, strict mode, no any.
  • AI Tutor The backend and the monthly scrape-and-embed job.
  • Fethiverse Part of the stack, next to Python.
  • LLMetric The comparison app.
React
Since Apr 2025 · 3 projects and roles use it · 54.5 % CPU index (depth of experience)
The building blocks of modern web interfaces, including this site.
Interfaces, from chat widgets to this site, usually straight from a design file.
  • This portfolio React 19 and Next.js, with server-rendered sections and one client shell.
  • AI Tutor The chat widget on the course pages, answers rendered with their sources.
  • LLMetric A Next.js app with a head-to-head radar chart.
SwiftUI
Since Nov 2025 · 1 project or role uses it · 25.0 % CPU index (depth of experience)
Apple's toolkit for building iPhone apps.
Native iOS, built and shipped to the App Store.
  • RouteRush The whole app: a live 3D globe, runs that claim streets, leagues and an AI coach.
Flutter
Since 2024 · 2 projects and roles use it · 50.0 % CPU index (depth of experience)
Google's toolkit for building one app for both iPhone and Android.
One codebase for iOS and Android, with BLoC state, shipped to both stores.
  • Takvapp Started the codebase and its BLoC architecture, then built the home screen, prayer times, the qibla compass, the tesbih counter, the calendar and the data layer.
  • Mobile & AI Developer role, 2024 Designed the backend architecture behind the company's Flutter app.
three.js
Since Sep 2026 · 1 project or role uses it · 11.4 % CPU index (depth of experience)
3D graphics in the browser, like the scene at the top of this page.
Real-time 3D on the web, scrubbed by scroll.
  • This portfolio The 3D hero: the avatar at his desk and the camera move into this screen.

Infra

Docker
Since 2024 · 5 projects and roles use it · 80.0 % CPU index (depth of experience)
Packs software into a box that runs the same everywhere.
Every service and job ships as a container.
  • Mobile & AI Developer role, 2024 Containerised microservices around the fine-tuning pipelines.
  • The Faculty The pipeline's service image.
  • AI Tutor One image for the service and the monthly job.
  • Admissions RAG The chat backend's image.
  • LLMetric The first backend, database and cache in containers.
Google Cloud
Since 2024 · 4 projects and roles use it · 70.0 % CPU index (depth of experience)
Google's cloud, where those boxes run online without managing servers.
Cloud Run for services and scheduled jobs: serverless containers.
  • AI Tutor Cloud Run: the chat service plus a monthly job that rebuilds the corpus.
  • The Faculty Cloud Run: where the question pipeline was deployed.
  • Admissions RAG Cloud Run: the chat backend.
  • Mobile & AI Developer role, 2024 One of the role's clouds, next to Azure AI and AWS.
AWS
Since 2024 · 1 project or role uses it · 40.0 % CPU index (depth of experience)
Amazon's cloud, for running software and AI models online.
Serving fine-tuned models.
  • Mobile & AI Developer role, 2024 Served the quantised fine-tuned models.

Depth of experience = projects × time. % CPU here means depth of experience, not a measurement: 70% from how many of my 13 projects and roles use it (against the busiest), 30% from how long I have used it (against the longest). Counted from my case studies and work history, September 2026.

Also installed, not sampled: PyTorch, TensorFlow.

How I use them with my agents

Illustrative session, written for this site.

How an AI answer is made to show its sources, and why a second AI softened one rule.

Claude Code adds a citation guard to the chat API, so no sentence ships without a passage pgvector retrieved, and the tests pass. Codex, read-only, flags that one uncited summary sentence would now fail the whole answer. Claude Code turns that case into a warning and the tests pass again.

Claude Code
> No sentence in an answer ships without a retrieved source.
⏺ Update(app/citations.py)
  24 + if any(not markers(s) for s in sentences(answer)): raise Uncited()
  ⎿ pytest -q: 7 passed

Codex (read-only second opinion)
› Second opinion on the citation guard. Read-only.
• Explored citations.py, chat.py, test_citations.py
• citations.py:24 fails the whole answer on one uncited
  summary sentence. Models write those; warn, don't block.
─ Worked for 11s ─

Claude Code
> Codex: warn on uncited sentences, don't block the answer.
⏺ Update(app/citations.py)
  24 + warnings += [s for s in sentences(answer) if not markers(s)]
  ⎿ pytest -q: 8 passed
How a celebration animation in an iPhone app is made to respect people who turn motion off.

Claude Code animates the tier-up banner on the run summary in SwiftUI and runs the tests. Codex, read-only, flags that the spring still runs when Reduce Motion is on. Claude Code switches to a short fade in that case and the tests pass.

Claude Code
> Animate the tier-up banner on the run summary.
⏺ Update(TierUpBanner.swift)
  20 + .animation(.spring(duration: 0.4), value: tier)
  ⎿ xcodebuild test: 14 passed

Codex (read-only second opinion)
› Review the banner change. Read-only.
• Explored TierUpBanner.swift
• TierUpBanner.swift:20 still springs with Reduce Motion
  on. Read accessibilityReduceMotion and fade instead.
─ Worked for 8s ─

Claude Code
> Codex: honour Reduce Motion.
⏺ Update(TierUpBanner.swift)
  20 + .animation(reduce ? .easeOut : .spring(duration: 0.4), value: tier)
  ⎿ xcodebuild test: 15 passed
How an AI marketing team drafts tomorrow's post, with nothing published until I approve it.

The director session in Claude Code turns the picked proposal into a brief for tomorrow's carousel. Codex renders a still for the first slide and flags that the brief asks for a drawn app screen. The director replaces it with a request for a real capture; nothing is published without approval.

Claude Code
> Brief tomorrow's carousel from the proposal I picked.
⏺ Write(jobs/next-carousel/brief.md)
  ⎿ Wrote 38 lines, waiting for your approval

Codex (read-only second opinion)
› Still for slide 1: a runner at first light, 4:5, no text.
• Generated still-01.png, 1080 × 1350
• brief.md:14 draws an app screen on slide 3.
  Only real app UI: ask for a capture instead.
─ Worked for 34s ─

Claude Code
> Codex is right. Slide 3 uses a real capture.
⏺ Update(jobs/next-carousel/brief.md)
  ⎿ Slide 3 is now a capture request for the app-capture agent
How a second AI catches a slow memory leak in a 3D scene before it ships.

Claude Code swaps the desk's material in the three.js hero when the camera dives into the screen. Codex, read-only, flags that the old material and its texture are never disposed, so every scroll back leaks GPU memory. Claude Code disposes them and a test pins the texture count.

Claude Code
> Swap the desk material when the camera dives in.
⏺ Update(src/hero/desk.ts)
  43 + desk.material = diveMaterial(walnut, DIVE_TEXTURE)
  ⎿ vitest: 6 passed

Codex (read-only second opinion)
› Second opinion on this diff. Read-only.
• Explored desk.ts, heroController.ts
• desk.ts:43 replaces the material but never disposes
  the old one or its texture. Each scroll back leaks GPU memory.
─ Worked for 14s ─

Claude Code
> Codex: dispose what you replace.
⏺ Update(src/hero/desk.ts)
  42 + desk.material.map?.dispose(); desk.material.dispose()
  ⎿ vitest: 7 passed, texture count stays at 12 after 20 dives
How a crawler keeps going when one website fails, instead of losing the whole run.

Claude Code makes the discovery loop crawl again with model-proposed queries until a judge finds each university's admission call. Codex, read-only, flags that one failed crawl would end the whole multi-university run. Claude Code logs and skips failures and the run completes.

Claude Code
> Keep crawling until the judge finds each admission call.
⏺ Update(discovery/loop.py)
  32 + found += crawl(model.propose_queries(uni, found))
  ⎿ pytest -q: 9 passed

Codex (read-only second opinion)
› Read-only review of the discovery loop.
• Explored loop.py, test_discovery.py
• loop.py:32 lets one failed crawl raise and end the
  whole multi-university run. Log it and keep going.
─ Worked for 10s ─

Claude Code
> Codex: one flaky call must not stop the run.
⏺ Update(discovery/loop.py)
  32 + found += crawl(model.propose_queries(uni, found), on_error=skip)
  ⎿ pytest -q: 10 passed, still-missing universities are flagged
How I prove an AI agent really uses a new tool, not just that the code passes.

Claude Code gives the copywriter agent a fact-check tool and registers it. Codex, read-only, flags that the agent's identity file still lists only its old tools, so it may never call the new one. With the owner's approval the tool is added there, and a live, instrumented run proves the call happens.

Claude Code
> Give the copywriter a tool to check claims against the research.
⏺ Update(sdk/tools/research.py)
  ⎿ check_claim registered on the copywriter; 12 tests passed

Codex (read-only second opinion)
› Is the new tool really wired? Read-only.
• Explored agents.py, copywriter/identity.md
• identity.md:9 still names only the old tools.
  Registered and tested, but the agent may never call it.
─ Worked for 12s ─

Claude Code
> Approved: add it to the identity file, then prove the call.
⏺ Bash(python probe.py --agent copywriter --watch tools)
  ⎿ check_claim called 3 times in one live run
How a design in Figma becomes working code that stays true to the design system.

Claude Code reads a Figma frame through the Figma MCP server and writes the React component. Codex, read-only, flags hard-coded colours and radii where the frame uses design tokens. Claude Code switches to the tokens and the tests pass.

Claude Code
> Build the pricing card from the selected Figma frame.
⏺ figma · get_design_context (MCP)
  ⎿ Wrote PricingCard.tsx from 3 variants and 11 tokens

Codex (read-only second opinion)
› Second opinion on PricingCard.tsx. Read-only.
• Explored PricingCard.tsx, tokens.css
• PricingCard.tsx:22 hard-codes #0B1015 and 14px where
  the frame uses tokens. Take them from the design context.
─ Worked for 9s ─

Claude Code
> Codex: tokens, not literals.
⏺ Update(src/components/PricingCard.tsx)
  22 + background: "var(--surface-1)", borderRadius: "var(--radius-lg)",
  ⎿ npm test: 5 passed
How a second AI model double-checks only the exam questions the first one was unsure about.

Claude Code adds a second Gemini model that re-solves exam questions with shuffled options and flags a question when the two disagree. Codex, read-only, flags that it runs on every question, when only the blind solver's low-confidence ones need it. Claude Code gates it on confidence.

Claude Code
> Add a second model that re-solves the uncertain questions.
⏺ Update(validation/cross_model.py)
  12 + if second_model.solve(item.shuffled()) != item.key: item.flag()
  ⎿ pytest -q: 23 passed

Codex (read-only second opinion)
› Review the cross-model check. Read-only.
• Explored cross_model.py, validator.py
• cross_model.py:12 re-solves every question. Only the
  blind solver's low-confidence ones need a second model.
─ Worked for 13s ─

Claude Code
> Codex: gate it on confidence.
⏺ Update(validation/cross_model.py)
  11 + if item.confidence >= settings.cross_model_below: return
  ⎿ pytest -q: 24 passed, the second model runs on low confidence only
How a monthly update keeps last month's data when a website is down, instead of wiping it.

Claude Code writes the monthly job that re-scrapes the course pages and re-embeds only what changed, reusing the service's container image. Codex, read-only, flags that a site's old embeddings are deleted before its new scrape succeeds. Claude Code replaces them only after a successful scrape.

Claude Code
> Rebuild the course corpus every month without breaking it.
⏺ Update(jobs/refresh.ts)
  57 + await store.clear(site); await store.upsert(site, chunks)
  ⎿ npm test: 11 passed

Codex (read-only second opinion)
› Read-only review of the refresh job.
• Explored refresh.ts, store.ts
• refresh.ts:57 clears a site before knowing its scrape
  worked. A failed site ends up with an empty corpus.
─ Worked for 12s ─

Claude Code
> Codex: failure may only keep things, never delete them.
⏺ Update(jobs/refresh.ts)
  57 + if (scraped.ok) await store.replace(site, chunks)
  ⎿ npm test: 12 passed, a failed site keeps last month's corpus
How an app shows prayer times at once by not asking again for the same day and place.

Claude Code makes the home screen's BLoC fetch today's prayer times when it opens, and the Flutter tests pass. Codex, read-only, flags that it asks again on every open, even when the day and the area have not changed. Claude Code keeps the saved times and fetches only on a new day or a new place.

Claude Code
> Load today's prayer times when the home screen opens.
⏺ Update(lib/home_bloc.dart)
  41 + emit(HomeLoaded(await repo.fetch(today, area)))
  ⎿ flutter test: 12 passed

Codex (read-only second opinion)
› Review the home screen change. Read-only.
• Explored home_bloc.dart, prayer_repository.dart
• home_bloc.dart:41 asks again on every open, even when
  the day and the area are unchanged. Reuse the saved times.
─ Worked for 10s ─

Claude Code
> Codex: fetch only on a new day or a new place.
⏺ Update(lib/home_bloc.dart)
  41 + if (!saved.matches(today, area)) saved = await repo.fetch(today, area)
  ⎿ flutter test: 13 passed, a reopen on the same day asks nothing
How to keep an AI's test scores honest by never letting it see the exam.

Claude Code prepares an instruction set for a fine-tune: augment, then split into train and eval. Codex, read-only, flags that splitting after augmentation puts paraphrases of one item on both sides, so the evals look better than they are. Claude Code splits first and augments the training side only.

Claude Code
> Prepare the instruction set for the next fine-tune.
⏺ Update(pipeline/prepare.py)
  18 + train, evals = split(augment(rows), 0.95, seed=7)
  ⎿ pytest -q: 9 passed

Codex (read-only second opinion)
› Anything wrong with the split? Read-only.
• Explored prepare.py
• prepare.py:18 augments before the split, so paraphrases
  of one item land in train and eval. Evals will look too good.
─ Worked for 9s ─

Claude Code
> Codex: split first, augment the training side only.
⏺ Update(pipeline/prepare.py)
  18 + train, evals = split(rows, 0.95, seed=7); train = augment(train)
  ⎿ pytest -q: 10 passed, no eval item has a twin in train

Claude Code is a product of Anthropic. Codex is a product of OpenAI. Used to show the tools I work with.

My Work

01Live iOS app

RouteRush

Territory running app for iPhone, live on the App Store: close a loop and the streets inside become yours.

Tools and features

  • SwiftUI
  • Mapbox 3D globe
  • Boldi AI coach

Map data © Mapbox © OpenStreetMap

02Multi-agent content system

Fethiverse

Ten specialised agents research, write, illustrate and review content end to end, across 50+ agent tools.

Tools and features

  • Claude Agent SDK
  • MCP
  • Python
  • TypeScript

03Live Flutter app

Takvapp

A Qur'an and prayer companion for iPhone and Android, co-built in a team of two and live on both stores.

Tools and features

  • Flutter
  • BLoC
  • Prayer times
  • Qibla compass
apps.apple.com

04Agentic RAG

The Faculty

Specialised agents turn source PDFs into exam questions, and a cross-model validator checks every item.

Tools and features

  • Python
  • Gemini
  • ChromaDB
  • RAG
  • Cross-model eval
  • pytest

05RAG chat widget

AI Tutor

Italian-language RAG assistant, deployed to the University of Ferrara course pages, answering with cited sources.

Tools and features

  • TypeScript
  • Fastify
  • React 19
  • Gemini
corsi.unife.it

06Agentic crawl & retrieval

Admissions RAG

An agentic crawl extracts admission rules with evidence checks, feeding a chatbot that cites its sources.

Tools and features

  • Firecrawl crawl
  • Gemini extraction
  • pgvector
  • FastAPI

07Benchmark comparison app

LLMetric

Compares LLMs head to head on a five-axis radar chart, with an AgentQL extraction prototype for new data.

Tools and features

  • Next.js
  • TypeScript
  • Supabase
  • Recharts
  • AgentQL

08Multi-agent marketing agency

RR Ajans

Seven AI agent sessions run RouteRush's marketing like an agency, and a human approves every brief and post.

Tools and features

  • Claude Code
  • Cross-session agents
  • MCP
  • Human approval gates

09Marketing website

RouteRush website

RouteRush's marketing site: a live 3D map you fly by scrolling, in six languages built from one English source.

Tools and features

  • Mapbox GL
  • HTML/CSS/JS
  • Python i18n build
  • Share-link worker
routerushapp.com

My journey &
experience

Mobile & AI Developer

Neurolanche X Labs

2024

Built fine-tuning and end-to-end pipelines, served models on Azure AI and AWS, designed the Flutter app’s backend architecture, and used STT/TTS for live voice chat.

Advanced AI Data Trainer

Outlier

2025

Fine-tuned LLMs alongside AI researchers, ran systematic reasoning and grading evaluations, and built the augmentation and quality-control pipelines behind them.

AI & Full-Stack
Developer

SmartCreative SRL

2026

Moved the design-to-code workflow onto Figma MCP end to end, cutting frontend delivery from days to hours, and built the agentic workflows around the rest of the process.

Open to
opportunities

Available

NOW

Put me on your team and I’ll ship the AI your customers actually need.Hire me

Contact

Availability

Open to opportunitiesHire me

Email

fethiomur@hotmail.com

Location

Torino & Milano, ItalyOpen to relocation