A members-only community and private preparation workspace for people on the UK Global Talent, O-1, EB-1A, EB-2 NIW and H-1B routes, live at talentvisajourney.com in English and Turkish and operated as my sole proprietorship.
Solo-authored proactive AI assistant: a voice-first mobile product that reads signals from email, calendar and workspace to decide when something is worth surfacing, and stays quiet otherwise. Node/TypeScript server, Python/FastAPI AI service, React Native mobile client and a Next.js site.
One of two founding engineers at an early-stage AI platform automating guest communication and property operations for short-term rental operators (San Francisco & London), backed by a $1M seed round led by Revo Capital (announced February 2026).
Maya, an AI career agent: candidates don't apply, they get interview invites, matched through a dual-agent hiring network (London-registered, distributed team).
My first founding-engineer role: building a rule-based, global wholesale e-commerce platform from scratch for a USA-based company. Backend architecture in .NET Core (Onion Architecture), PostgreSQL and Python; frontend architecture in Next.js and React.
Full-stack development across a five-to-six-project portfolio (ATS vehicle management, GTS task management, a real-estate platform and their sub-projects) on a team run with kanban/scrum discipline and sprint performance scoring.
Volunteer AI and machine-learning work alongside full-time roles, on Interfarm, Interno's closed vertical-farming R&D venture at Ankara University Teknopark, funded under TÜBİTAK's competitive 1501 industrial R&D programme (Digital Agriculture call).
IT analyst across EU-funded programmes: kept programme data consistent and presented it through PowerBI, administered monitoring-and-evaluation portals and CRM/ERP systems, built an internal e-learning portal, and supported the team at field events.
GPA 3.92/4
In Redis Cluster, a pipelined command answered MOVED, ASK or TRYAGAIN during a slot migration was retried only with the whole batch, and only if no write had succeeded; otherwise it never ran. The maintainer agreed the design, benchmarked it and added a commit before merging it on 20 October 2026.
Deterministic linter for AI-writing tells in commit messages, pull requests and docs, with --compare to show which facts a rewrite lost. In a published head-to-head (Oct 2026) it came first on 12 public tasks against six other Claude Code skills and Claude with no plugin. MIT, npm, Claude Code plugin.
Turns a private git repository into a report of one author's work, with a hash a reader can check and no source code in it. MIT, npm, Claude Code plugin.
Agent skill and command-line checker that makes AI coding agents explain each commit and pull request in plain language, and warns when the message contradicts the diff. MIT, npm, Claude Code plugin.
Library that decides whether an AI agent may message a user right now (quiet hours, daily limit, consent, snooze) and records the reason when it may not. TypeScript, Python and Go. MIT.
Command-line tool that counts the lines each author still has in a git repository (git blame) next to their share of commits. Came first in total on a sealed held-out set and its public set in a published head-to-head (Oct 2026). MIT, npm, Claude Code plugin.
A scorer declared as a trajectory scorer was handed raw messages instead of a trajectory, and the error was swallowed as a silent score of 0: a gate that always failed and never said why. Merged by the maintainers on 2 September 2026 and shipped in @mastra/core 1.64.0.
On Windows the onboarding tests wrote into the developer's real configuration directory, because os.homedir() reads USERPROFILE and ignores the test's HOME override. Merged by the maintainers on 24 August 2026.
Open pull request, under maintainer review (not merged): makes Opik's LLM-as-judge metrics fail closed when the judge returns ambiguous JSON, instead of silently producing a score. Fixes issue #7848.
Bundled skills could not sync from read-only installations such as Nix or immutable containers: the copy kept read-only mode bits, the atomic rename failed and a staging directory leaked on every run. Merged by the maintainers on 12 August 2026 and released in v0.3.3, whose changelog credits me by name.