Full-stack engineer, 25 years. Paphos, Cyprus — remote since 2005.
I build cross-platform products end to end: one React and TypeScript codebase that ships as a Next.js web app and as native iOS and Android apps on Expo, with a PHP and MySQL backend underneath. On the product I work on now, roughly 60% of the repository's commits are mine.
For the last two years a large part of that has been AI in production — agent chat with streaming and tool calls, an agent runtime, LLM-as-judge evaluation, and a versioned agent skill registry shared across Claude Code, Cursor and Codex so the whole team works the same way.
React Native · Expo · React 19 · Next.js · TypeScript · PHP · MySQL · Redis · Node.js
- uniwind-style-probe — checks that Tailwind breakpoint and platform variants survive uniwind's native compilation, without building the app or touching a device.
- uni-stack/uniwind#668 — found that the same root cause behind leaking
ios:/android:variants also stripped responsive breakpoints: with tailwindcss merging@mediablocks, everysm:/lg:/xl:class after the first compiled tominWidth: 0and applied at every width. Fixed in v1.12.1.




