Experienced AI, software and platform engineer building scalable full-stack systems, cloud infrastructure, and agentic AI pipelines.
Shipped it as a ChatGPT app first to validate the idea and gather the first places and users, before committing to the MVP. A LangGraph agent plans its own tool chain, with a pgvector taste model on Supabase and an MCP server that packages it as the ChatGPT app. It runs on Kubernetes, traced end to end with LangSmith and OpenTelemetry, and extensively integration-tested.
Built a recommendation engine with six strategies (vector search, collaborative filtering, a live Places API, cold-start), ranked for variety. Hard timeouts make sure it always answers inside ChatGPT's time window.
Modelled each person's taste as a vector learned from their swipes (saves pull toward, skips push away), kept fresh by a background worker alongside a global taste baseline.
Stack: TypeScript, LangGraph, MCP / OpenAI Apps SDK, Supabase + pgvector, NestJS, BullMQ, Kubernetes, Terraform, Grafana / OpenTelemetry
Open in ChatGPT Open in ChatGPT
A live ChatGPT app: a LangGraph agent fetches, scores and summarises trending news on demand, streaming each result to the reader live as it is written. It builds a news archive that grows on its own and packages as a portable Kubernetes service that runs anywhere.
Runs on a four-tier model setup, local Ollama for most work and a Gemini tier for the heaviest, that downgrades on its own when a model is slow or rate-limited.
Traced end to end with LangSmith and a Grafana stack (logs, traces, metrics), so every run's steps, tools and errors are inspectable.
Stack: TypeScript, Python, NestJS, Next.js, LangGraph, LangChain, Ollama, Gemini, MCP / OpenAI Apps SDK, SSE streaming, PostgreSQL, Redis, BullMQ, K3s, Cloudflare, Grafana / Loki / Tempo, Turborepo
Senior AI Solutions Engineer 10/2024 - 08/2025
Compliance researchers were building each client's vendor register by hand, and that register is the product. I built an agent that does it on its own. For each vendor it runs five checks at the same time (where the data is hosted, the data-protection contact, the privacy policy, the tool's category), gives every answer a source, and turns minutes of manual work into seconds. A model I fine-tuned on our own tool data does the categorising. Now it keeps the register the product is sold on up to date.
Senior Platform Engineer 10/2023 - 10/2024
Led the company's move from ECS to Kubernetes, learning it myself, and cut production over with no downtime. Packaged it to run self-hosted or off US cloud, which matters for an EU data-compliance company. Set it all up as code, and brought the DevOps team up to speed.
Senior DX and Full-stack Engineer 01/2022 - 10/2023
As the first engineer, and the most active contributor that first year, I built the foundation the team still uses every day: the shared codebase and local setup, the architecture and boilerplate, the containerisation, and the CI and deployment that its 25+ microservices run on. I contributed to several of those services myself and folded existing ones (including an older Rails app) into the setup. I also hired and mentored the engineers, and built tools that made their daily work easier.
Stack: TypeScript, JavaScript, Python, NestJS, Nuxt, Vue, Rails, Kubernetes, EKS, Terraform, AWS (ECS, ECR, CloudFormation, EventBridge), Docker, GitHub Actions, OpenAI API, Tavily, PydanticAI
Deployed the group's AI and machine-learning models to Azure with GPU (CUDA) support, containerising the models and notebooks to run in production. Added secure company sign-on, and represented the Berlin office in the group's global software-architecture team.
Stack: Azure, Docker, Vue.js, TypeScript, GraphQL, Apollo, PostgreSQL, Azure Functions, GitHub Actions
As back-end architect, I refactored back-end services, profiled and fixed performance bottlenecks, and ran data migrations. I also improved how the system was containerised and released, so new versions shipped about every week.
Stack: Ramda, Node.js, React, Redux, GraphQL, AWS, Docker, MongoDB, TeamCity
Led the front-end team and pulled scattered components and design into one shared library, so engineers and designers finally spoke the same language. I packaged the team's shared tooling (ESLint, Babel, build) and brought in testing strategies, TDD and a functional-programming style, running the codebase in the open like an open-source project. The front-end kept modernising after I left.
Stack: React, GraphQL, Redux, AWS, Koa, MongoDB, WebPack, Magento
On a tool that finds stolen photos across the web, I replaced a fleet of always-on machines with a serverless queue on AWS Lambda, then barely out of beta. That left far less infrastructure to run and maintain. I owned the payments (Stripe), the background processing, and the database and Salesforce integrations, with behaviour-driven tests.
Stack: React, Redux, AWS Lambda, Koa, MongoDB, Stripe, SalesForce, Sentry
Led the front-end performance overhaul of ASDA's online store (Walmart's UK brand). Found where the load time was going and cut key page loads by up to 62%, so customers moved from browsing to basket to checkout faster.
Stack: Angular, JavaScript, Backbone, LoopBack, MySQL, MongoDB
NOD studios
11/2012 - 07/2015
My own studio: found my own clients (Les Benjamins, beIN Sports, ALJ Toyota, Mazda), delivered each project end to end, and managed freelancers.
01/2012 - 08/2012
Social apps and micro-sites for Samsung, National Geographic, Nokia, and FOX shows.
05/2009 - 06/2011
Turkcell's social platform on my own jQuery plugins, plus brand sites for Miller and Efes.
02/2008 - 04/2009
Türk Telekom's national-scale site, Garanti Mortgage rebuilt in custom .NET, plus Vodafone and Nokia.
Tribal DDB Worldwide
03/2009 - 05/2009
Front-end for Türk Telekom
Koçak Design
09/2007 - 03/2008
Front-end and design for the Yedinci Kent startup.
04/2005 - 08/2007
Front-end and design, including Best Western and other hotel sites.
Music • Swimming • Photography • Sci-Fi • 80s • Design