Built the data and AI systems behind a global operation at Duolingo. Two SaaS products, shipped solo.
Selected work
All work →Testing Operations Analytics Platform
The data and AI backbone of a global remote testing operation, built solo: ~195 scripts and 87K lines of code powering financial reporting, hours accounting, quality metrics, and automated per-person reporting.
- Python
- SQL
- BigQuery
- pandas
- scikit-learn
- Gemini
- OpenAI
- GCP
- AWS
- GitHub Actions
- Docker
Petica.app
A Croatian K-12 education platform, built solo end to end: a Next.js 16 + React 19 + Supabase + Payload CMS app powering AI grade summaries, exam prep, and auto-graded quizzes, built on a resilient authenticated integration client for the national e-Dnevnik gradebook, a provider-agnostic Gemini/Claude/OpenAI layer, AES-256-GCM credential vaulting, and an RLS-first multi-tenant model (170 policies across ~42 tables).
- Next.js
- React 19
- TypeScript
- Gemini
- OpenAI
- Claude
- Supabase
- Payload CMS
- Tailwind CSS v4
- Stripe
- Vercel
- pgvector
Lumina
A voice-first AI language tutor, built solo end to end: a Next.js 16 + React 19 + Payload CMS + Neon Postgres app for Spanish, Portuguese, Croatian, and English, built on real-time spoken conversation over Gemini Live (one native-audio model handling speech-to-text, reasoning, and speech-to-speech over a single bidirectional WebSocket, with ephemeral server-minted tokens so the API key never reaches the browser), AI-generated quizzes with resume-in-progress, Better Auth merged into the CMS user model, and server-locked gamification fields to keep the leaderboard honest
- Next.js 16
- React 19
- Typescript
- Payload CMS
- Better Auth
- Gemini Live API
- Neon Postgres
- Tailwind CSS v4
- Resend
- Vercel
Sitnice Bitnice
A full-stack bilingual (Croatian / English) recipe and editorial platform, built solo end-to-end: a legacy WordPress site rebuilt on Payload CMS 3 + Next.js 15, with an automated WordPress-to-headless migration pipeline, anonymous IP-hashed ratings, three-tier RBAC, and a multi-layer caching strategy on Vercel and Supabase.
- Next.js 15
- React 19
- Payload CMS 3
- TypeScript
- PostgreSQL
- Supabase
- Drizzle ORM
- Tailwind CSS
- shadcn/ui
- next-intl
- Lexical
- Resend
- Vercel
- pnpm