AI Engineer — Learning Science × AI

Alperen Cengiz Öztürk

Systems that focus on metacognition —
transforming how people learn with AI.

building absolutepath.net prev TRAI, Quanted

Everything I've built, sized by weight. Click any node for the full story.

Learning Tech · live

AbsolutePath

A learning workspace built on learning science

Watching a video feels like learning; usually it isn't. AbsolutePath turns the YouTube videos you already watch into real practice — it primes you before you press play, pauses for checkpoint questions, then asks you to recall, explain, and come back later.

The loop around every video before → during → after → later
  1. beforePrimeA short intro gives attention a direction
  2. duringWatch & checkCheckpoint questions and timestamped notes
  3. afterRecallYou answer first; feedback comes in stages
  4. afterExplainFeynman explanation, typed or spoken
  5. laterSpaced reviewTopics return on expanding intervals
right but unsure? it comes back sooner

Pathways turn a goal into ordered objectives and videos checked against their transcripts. Find My Gaps runs the same loop over your own videos, PDFs, and notes.

  • PathwaysA learning goal becomes ordered objectives and selected videos, verified against their transcripts, that you review before starting.
  • Retrieval practiceYou commit to an answer before any feedback, and the feedback arrives in stages.
  • Feynman explanationsExplain an idea in your own words, typed or spoken, and see what your explanation is missing.
  • “Are you sure?”Confidence checks turn lucky guesses into reviews instead of false mastery.
  • Spaced reviewEvery answer schedules its own return, sooner when you were right but unsure.
  • Find My GapsA formative check over your own material that shows what still needs another pass.

From the research to the product

  1. Meaning matters when we encode

    Craik & Tulving

    Priming before the video and notes during it give attention a direction.

  2. Feeling fluent is not proof of learning

    Deslauriers et al.

    A finished video never counts as understanding; checkpoints and feedback sit inside the flow.

  3. Trying to remember is part of learning

    Roediger & Karpicke

    You answer before you see feedback, and Find My Gaps asks you to explain, not to re-read.

  4. Leave room to return

    Cepeda et al.

    Answers come back as spaced reviews — sooner when you were right but unsure.

Watching and note-taking stay free; the AI steps run on an allowance. Bilingual, Turkish and English.

Next.js / TypeScript / Vercel AI SDK / Neon Postgres / Better Auth / Upstash / next-intl

Learning Tech · live

ATPLPrep

Theory exam preparation for pilots

Student pilots build practice exams from the ATPL and PPL theory subjects they choose, review every answer right after submitting, and retest what they missed — with explanations that read like a good instructor and point to the textbook page.

One study session
  1. Build an examBy subject, chapter, wrong, or unseen
  2. Timed examThe real exam's rhythm
  3. ReviewLands straight on every answer
  4. ExplanationAnswer · why · why not the others · remember
  5. Re-testRetake what you missed, or start fresh
missed questions feed the next exam
How an explanation is made
  1. RetrieveFrom that subject's own textbook, never its answer keys
  2. WriteClaude agents draft the four-part explanation
  3. VerifyA gate checks it, and the answer must match the database
  4. CiteBook and page stored beside the text
  • Explanations like an instructor'sThe answer, why, why not each other option, and one thing to remember.
  • Study assistantA RAG chatbot that answers study questions with page references to the training books.
  • Grounded in the booksRetrieval searches only the subject's own book and skips the books' question banks.
  • A gate that was tested firstThe verification gate had to catch a deliberately planted error before it checked real explanations.
  • Figure questionsDiagrams appear in the exam and the review, click to enlarge.
  • Retest loopRetake only what you got wrong, or start a fresh exam on the same subjects.

I own and operate the platform: took it in-house, hardened it for launch, and built its AI explanation and retrieval layer, working with flight-training faculty at Özyeğin University.

React / Vite / TypeScript / Node.js / SQL Server / Claude agents / BM25 retrieval

At work · consulting at TRAI

AI Consultancy for Enterprises

From a wall of AI ideas to one buildable architecture — with priority guidance

As a forward deployed engineer at TRAI, I worked with member enterprises on adopting agentic AI. One case in depth, anonymized: a large, licensed online sports-betting platform in Türkiye brought the AI ideas from its ideation workshop — four departments, 65 use cases, every idea rated top marks — and asked what to build, in what order, and how to keep it safe. I grouped the ideas by the data they read and the decision they make, drew them as four connected flows on one shared core (23 building blocks), split every step into a fast typed decision or a reasoning model, and ranked them.

One of the four flows — Flow A · Observe, the observation layer for the platform and its databases. Hexagons are System One typed decisions, dashed boxes are reasoning steps, shaded blocks are mini-projects: select one to read what it does.

Mini-projects in this flow — select one to highlight it and read what it does

streamnormalwarn / criticalcleanup / extendready / at riskper-check verdictsflagged checks onlyfindings of the daybaseline statisticsattributionshutdown recommended

alarm / metric_sample / log_event

System One: triage_decision

report

LLM · Incident Investigator [?]

disk_action
on-call approval

dr_check

System One: is this check normal?

finding

incident memory

LLM · Report narrative [?]

cloud_cost_sample

cloud_cost_anomaly

LLM · Shutdown method [?]

Select a mini-project

Flow A is the observation layer: metrics, logs and alarms from OEM, Zabbix and Grafana; a Health Check pass turns the stream into typed decisions; anything not normal goes to the Incident Investigator, which writes what it finds into a shared memory and one daily report.

Elsewhere at TRAI, I scoped enterprise requests — on-premise document intelligence for a major grocery retailer, image processing for a glass manufacturer, voice agents in finance — into prioritized building blocks and matched them with startups from Türkiye's AI ecosystem.

At work · Quanted, London

Multi-Agent Data Pipeline

From raw financial data to validated features

Multi-agent systems that onboard a new financial dataset end to end — checking it, profiling it, researching it against the literature, proposing features, writing the code, and validating what's worth keeping.

One dataset, end to end state saved after every node
  1. IntakePre-flight checks; questions to the provider
  2. ProfileAn agent profiles columns through tools
  3. ResearchPapers found by hybrid vector + keyword search
  4. ProposeFeatures from several angles
  5. Generate codeBuilt in stages, not one shot
  6. ValidateSandboxed run, statistical checks, report
  • Resumable by designEach node reads earlier state and writes only its own; a crashed run resumes from its last checkpoint.
  • Literature-groundedAcademic PDFs are parsed and indexed for hybrid retrieval before any feature is proposed.
  • Staged code generationScaffold first, then loader, missing-data handling, feature methods, and wrapper.
  • Statistical validationA Granger-based layer keeps only features with temporal predictive relevance.
  • Sandboxed executionGenerated code runs in an isolated container before anything is trusted.
  • Observable runsA live dashboard streams each run's decision log and model usage.

The question of how to make the feature-generation step itself improve became my research project — see Granger-Guided Autoresearch.

Python / LangGraph / Pydantic / Weaviate / GROBID / Docker / FastAPI + React

At work · TRAI · live

Ceviz.ai

A public knowledge assistant for Türkiye's AI ecosystem

A public Turkish assistant over everything TRAI has published — posts, reports, and recorded talks. Every answer cites the exact report page or video timestamp, and it declines when the material doesn't cover the question.

From archive to cited answer
  1. CollectPosts, reports, recorded talks
  2. Read & enrichTalks transcribed locally; tables and figures described
  3. IndexMeaning + keyword search on Postgres
  4. AnswerOnly from the passages retrieved
  5. Cite or declinePage or timestamp — or “not covered”
  • Citations you can checkEach claim links to a report page or a moment in a talk.
  • Declines honestlyWhen the archive doesn't cover a question, it says so instead of improvising.
  • Nothing left unreadTalks without captions were transcribed locally; report tables and figures were read and described before indexing.
  • Domestic modelAnswers run on a model hosted in Türkiye; its hardened client later powered the member assistant.

Postgres + pgvector / hybrid search / Whisper

At work · TRAI · live

TRAI Portals

A 500+ startup network, a members' dashboard with an AI assistant, and the console behind them

I built TRAI's ecosystem platform as its sole developer: a self-service portal for the 500+ startups in TRAI's network, a members-only dashboard where enterprises explore those startups with an AI assistant, and the console and agent worker the TRAI team runs on.

01 Three apps, one database — and row-level security decides who sees what.

Startup Portal

for founders in the network

  • Email-code verified signup
  • Field-by-field reviewed profile drafts
  • Versioned profiles
  • Teammates & AI-technology tags

Member Dashboard

for member enterprises

  • Startup directory with facets
  • AI use-case landscape & library
  • One-click intro requests
  • AI assistant on every page

Internal Console

for the TRAI team

  • Startup inventory & review queues
  • Introductions CRM
  • Research requests to an agent worker
  • Assistant controls & usage

One Postgres database

row-level security policies · role-based routing · private storage · approved-field views · email-delivery tracking · usage written only through database functions

The startup portal

How a startup joins and stays current
  1. Sign upVerified by an emailed code
  2. File a startupUnknown emails get no access by default
  3. TRAI admitsAnd chooses member visibility
  4. Edit a draftThe team works on it together
  5. Fields approvedReviewed one by one
  6. Profile publishedA versioned snapshot, before/after
  • Safe open signupA database trigger gives an unrecognised email no role and no profile, and self-signup can never attach someone to an existing startup.
  • Profiles that stay trueFounders keep their own profile current; every change is reviewed and kept as a version.
  • Private by defaultLogos and files sit in private storage; ownership of every page is checked in the database.
  • Quiet rate limitsOver-limit responses look like normal ones, so they never reveal which emails exist.

The member dashboard and its assistant

One assistant turn answers are validated before they're sent
  1. QuestionFrom any page of the dashboard
  2. Limits & budgetEnforced inside the database
  3. Read as the memberNever with admin access
  4. Search toolsStartups, use cases, TRAI content
  5. Check every linkUnsourced links become plain text
  6. Answer, loggedMarked as AI-generated
  • Tools over a catalog, by choiceStartup descriptions are short and the catalog fits in context, so the assistant calls search tools instead of vector retrieval.
  • Confidentiality in the databaseStartup data reaches the model only through a view with an approved field list — no contacts, financials, client names, or private links.
  • Human-approved anonymizationMembers see team-written masked copies; if the original changes, the startup leaves the assistant until a person re-reads it.
  • No invented facts or linksEvery fact must come from a tool call in the same turn, and every link from that turn's results.
  • Clear boundariesIt declines valuations, contact details, and what other members are doing, and refusals are logged as refusals.
  • OperableA kill switch, a daily token budget, readable transcripts per company, and an evaluation set that scores facts, not wording.

The console and the agent worker

A research request, from form to report
  1. RequestMatchmaking, startup or ecosystem research
  2. QueuedA typed job in Postgres
  3. ClaimedOne worker per job, oldest first
  4. Claude skill runsInventory, research, report assembly
  5. Human reviewShortlists wait for approval
  6. Report backLive progress, signed download
  • Introductions CRMBoth sides of every introduction are linked records, and closed member intro requests file themselves.
  • One inboxA “Needs attention” view across signups, profile drafts, contacts, and email delivery.
  • Clear ownership of statusThe app only creates requests; only the worker moves them forward.
  • Protected reportsReports sit in private storage and open through short-lived links for the requester or an admin.

Next.js / React / TypeScript / Supabase (Postgres, Auth, Storage, RLS) / Resend / Claude skills / Python worker

Research · Özyeğin University × Quanted

Granger-Guided Autoresearch

Autonomous prompt optimization for agentic financial feature engineering

An LLM pipeline proposes financial time-series features and writes their code. A frozen statistical evaluator measures how often each feature's past helps predict future returns. An autonomous loop edits only the feature-generation prompt — and keeps an edit only when the overall score improves.

The autoresearch loop only the prompt moves
  1. OptimizerProposes one edit to the prompt
  2. GeneratorThe agentic pipeline regenerates features and code
  3. frozen

    1. EvaluatorRolling-window Granger tests vs forward returns
    2. Composite scoreWithin each dataset, then across
  4. Keep or revertOnly a strictly higher score survives
the best prompt so far becomes the next starting point
  • Only the prompt movesData loaders, targets, evaluator, and score stay locked — so any gain comes from the prompt.
  • A statistical judgeEach feature is tested in rolling one-year windows; the score is the share of stable windows where its past helps predict returns.
  • Careful windowsLags chosen by information criterion, series differenced when non-stationary, unstable windows excluded.
  • AuditableThe prompt, best score, and full history live in files, so the loop restarts and replays.
  • What the search foundThe best edits first simplified the prompt, then added targeted signal patterns.
  • Honest framingGains read as predictive relevance under a fixed evaluator — not causality, not trading profit.

The paper

Granger-Guided Autonomous Prompt Optimization for Agentic Financial Feature Engineering

Alperen Cengiz Öztürk, David Forino, İsmail Arı · Özyeğin University · Quanted Technologies

Özyeğin University senior project, supervised by Prof. İsmail Arı and conducted with Quanted Technologies.

Python / LLM agents / Granger causality / VAR / RAG

Research · open source

Mentor–Mentee Graph Recommender

Explainable matching on a knowledge graph

Ranks mentor shortlists for a mentoring platform from a Neo4j knowledge graph of profiles, requests, and historical matches — helping the matching team find good candidates that rigid filters miss, while the final decision stays with a person.

From graph to explained shortlist
  1. GraphAnonymized profiles, requests, past matches
  2. DiscoverSeveral Cypher paths in one query
  3. ScoreCompetency fit, request intent, capacity
  4. RerankOne LLM call over a JSON shortlist
  5. ExplainA Turkish rationale per match; a person decides
  • Multi-path discoveryCandidates come from competencies, sectors, experience, departments, and prior requests.
  • Fit over volumeJaccard similarity rewards a tight match over a long list of competencies.
  • The LLM never touches the graphPython builds the payload; invalid JSON is retried with feedback.
  • Evaluated offlineReplaying historical matches exposes false negatives and guides each change.

Neo4j / Cypher / Python / Claude

Research · open source

Smart Document Retrieval System

Evidence from PDFs and spreadsheets, self-checked · KKB Agentic AI Hackathon finalist

A LangGraph agent that answers long questionnaires — built for ESG reporting — by retrieving evidence from PDFs and spreadsheets, then judging its own answers for faithfulness before submitting them.

ReAct to gather, Reflexion to check
  1. IngestPDFs, spreadsheets, URLs
  2. SupervisorPicks the next tool
  3. ToolsSearch, cell lookup, calculator
  4. GenerateA JSON answer with citations
  5. JudgeScores faithfulness to the evidence
below the bar → revise and retry
  • Spreadsheets as gridsFuzzy search finds candidate cells, the model picks the right label across Turkish and English, then reads the surrounding grid.
  • Split, then shareMulti-choice questions become yes/no sub-questions that share their evidence.
  • Anti-loop guardsDuplicate tool calls are blocked, and claimed calculations must actually run the calculator.

LangGraph / ChromaDB / pdfplumber / pandas / Streamlit

Open source

Absolute Orchestration

A workflow for AI-assisted software delivery

The way I build AbsolutePath, made reusable: persistent project memory, clear agent responsibilities, independent review, and evidence checks from implementation through deployment — so coding agents ship work you can trust.

Adoption, designed like a lesson paste one line into your coding agent
  1. AskWhich project, fresh or ongoing
  2. AssessOne bounded, read-only pass
  3. ScopeAssessment, pilot, or staged rollout
  4. You approveOnly missing pieces are added
  5. PilotOne small guided task teaches it
Status only moves with evidence
  1. Built
  2. Reviewed
  3. Merged
  4. Deployed
  5. Verified in production
  • Risk routingEach change's risk tier decides between a fresh reviewer, a named specialist, or human acceptance.
  • Independent reviewReview packets leave out earlier conclusions; findings live in their own register.
  • Fits what you haveIt works inside your project's existing files instead of imposing a layout.
  • Nothing to installA method and templates — no runtime, no dependency.

Claude Code / agent workflows / documentation-as-system

Open source

Listener

Local-first meeting intelligence

A Mac app that records, transcribes, and analyzes conversations while raw audio never leaves the machine — and remembers them, so you can ask across every meeting and get cited answers.

Listener meeting view: a transcript with timestamps and speaker labels, with tabs for memory, analysis, chat and analytics
The meeting view — timestamped, speaker-labelled transcript with Memory, Analysis, Chat, and Analytics tabs. Shown with sample meetings.
Where each step runs
  1. on your Mac

    1. RecordMic or imported file
    2. QueueYou choose what to process
    3. TranscribeWhisper, resumable
    4. SpeakersDiarized and aligned
  2. when you ask

    1. Analyze & rememberDecisions, owners, deadlines
  • Meeting memory bankDecisions, action owners, deadlines, and open questions stay tied to transcript timestamps.
  • Ask across meetingsQuestions over selected meetings come back with the source meeting cited.
  • Lanes that never blockRecording, transcription, and analysis run separately; the AI runs only when you press the button.
  • Built for TurkishMixed Turkish/English detection and full-text search that handles Turkish diacritics.
  • Edits surviveYour corrections persist when an analysis is regenerated.

Python / faster-whisper / pyannote / SQLite FTS5 / Flask / Claude

Open source

Dictator

Push-to-talk dictation for macOS

Speak instead of type: hold a key and Turkish or English speech lands at the cursor, entirely on-device — in Claude Code, a chat, or a document.

Dictator dashboard: words dictated, speed and streak, above a list of recent Turkish and English transcriptions
The local dashboard — every dictation by app, mode, and language, ready to copy or regenerate. Shown with sample dictations.
Hold, speak, release
  1. on-device · no network anywhere in the path

    1. Hold Right ⌥Push-to-talk, never always-on
    2. CaptureAudio kept in memory
    3. TranscribeWhisper, already loaded
    4. InsertAt your cursor
  • Built for coding agentsMade for Claude Code, which has no push-to-talk of its own.
  • Polite with your clipboardPastes by default, types where paste is blocked, and restores your clipboard afterwards.
  • Always legibleA menu-bar dot and start/stop chimes show its state.
  • Agent-installableAn AI agent can set it up by following the setup guide.

Python / faster-whisper / Quartz event taps / py2app / launchd

Open source

llmwiki

An autonomous Zettelkasten

Drop a URL into Obsidian and a background agent writes an interlinked web of notes about it — with you reviewing the source in between.

From a fleeting note to a linked vault
  1. Fleeting noteA URL, thoughts, an importance rating
  2. FetchThe agent pulls the raw source
  3. You reviewEdit the source before ingest
  4. IngestA skill writes the notes
  5. Linked vaultLiterature, permanent, reference notes
  • Skills as filesFetch, ingest, lint, query, and random-revisit are each a markdown skill.
  • Depth by importanceYour rating decides how deep the literature note goes.
  • Links that make senseNew notes link within their own domain; cross-domain links come from a separate revisit skill.

Bash / Claude Code CLI / Obsidian

Open source

editing

Raw footage → vertical shorts

A planner → critic → executor agent loop that turns raw Turkish footage into rendered 9:16 shorts with face-aware overlays.

Cached like a build system
  1. TranscribeWhisper, then cleanup
  2. Find facesFace-safe zones per shot
  3. Plan ⇄ CriticRevise until approved
  4. ComposeHTML/GSAP overlays
  5. RenderA 9:16 MP4
  • A strict criticIt returns approve or revise; on revise, the planner must fix every numbered point.
  • Locked beatsDirections you mark as locked can't be changed, and the critic checks them.
  • One plan, many looksSwappable design tokens give the same plan different styles.

Python / OpenCV / Whisper / Claude / GSAP

Open source

YouTube Watch-History Graph

Your viewing habits as a graph

An ETL that turns a Google Takeout watch history into a queryable Neo4j graph of channels, topics, and habits.

Takeout to graph
  1. ParseWatch history + subscriptions
  2. EnrichYouTube Data API, batched
  3. LoadNeo4j upserts
  4. ExploreA force-directed topic map
  • Three-tier topicsYouTube's topic data first, then Turkish and English keyword rules, then a fallback.
  • Weighted edgesChannel → topic links are weighted by how long you watched.
  • Re-runnableEvery stage writes a fixed output, so any subset can run again.

Python / YouTube Data API / Neo4j / D3

Experience

AbsolutePath

2026 — present

Founder & Engineer

TRAI — Türkiye Yapay Zeka İnisiyatifi

2026

Ecosystem Specialist & Forward Deployed Engineer

Quanted Technologies

2025 — 2026 · London

AI/ML Engineer

Özyeğin University — Deep-VIP Lab

2024

AI Researcher

Monocular height estimation — predicting building height per pixel from a single satellite image, with Huawei R&D as industry partner, for automated 5G network planning. Supervised by Prof. Hasan Fehmi Ateş.

Özyeğin University Racing Team

2025 — present

Autonomous Team Leader — Formula Student UK, driverless

B.Sc. Computer Engineering, Özyeğin University — High Honor.

Honors

1st place — SOCAR Türkiye × AWS AI Mini Bootcamp

Finalist & presenter — KKB Agentic AI Hackathon

Alperen Cengiz Öztürk

About

I build learning experiences where learning science meets AI. Teaching keeps me honest about it — I compete in and teach International Latin ballroom dance, and make videos about learning and AI on YouTube and Instagram.