Full-Stack Developer · Ankara, Türkiye
I build AI-powered SaaS products, end to end.
Data model, auth, billing, background jobs, tests and deployment. Mostly Next.js, TypeScript and PostgreSQL. Right now at Vizio AI, where I’ve shipped products in legal tech, hiring, customer support and e-commerce, usually as the lead or only developer.
Selected work
Most of this is client work. I describe each product by what it does rather than who it’s for, and I’m happy to go deeper in a conversation.
AI legal research platform
Lawyers ask questions in plain Turkish and get answers that cite the court decisions and statutes they come from.
- Built the full product: team workspaces with roles and MFA, streaming chat with cited sources, petition drafting and credit-based billing.
- Connected it to a hybrid-search RAG service (vector + full-text + reranking) over millions of court decisions through a signed, retryable job API.
- Wrote the crawler that keeps the corpus fresh: idempotent queue jobs, retries, adaptive throttling and rotating proxies.
AI recruiting platform
An applicant tracking system where companies post jobs, run their own hiring pipeline and interview candidates by video or chat.
- Multi-tenant ATS with custom pipeline stages, AI-scored candidate evaluations and AI-written job descriptions.
- Video interviews, two-way candidate email with reply routing, Indeed and LinkedIn job feeds, and a white-label careers site per company.
AI customer-support platform
Support teams turn their documents, inboxes and meeting notes into a knowledge base, and get AI-drafted replies to tickets.
- Built the web app: white-label help centres and ticket portals, AI replies and article generation, team billing.
- Wrote a queue worker that streams very large mailbox exports (PST, mbox, Gmail, Office 365) into structured data in chunks.
Live auction marketplace
A mobile marketplace that sells liquidation stock through timed auctions, with payments and pickup handled in the app.
- NestJS backend with idempotent bidding, anti-sniping, automatic closing, second-chance offers and account freezes for unpaid wins.
- Core rules live in Postgres functions so they hold under concurrent bids; covered by unit and end-to-end tests.
- Staff console for auctions, orders, returns and audit logs, with live updates over server-sent events.
Training credential platform
Hospitality staff earn a portable training record that employers can verify; venues invite staff and track compliance.
- Provider-neutral LMS integration with scheduled sync and renewals, plus a deterministic mock for testing.
- Stripe entitlements applied only from verified webhooks; database rules proven with pgTAP and flows with Playwright.
Document translation & speech pipeline
Upload a document, get it back in several languages, plus narrated audio for each one.
- Background workers chunk long texts and retry each chunk with backoff, so one bad request never fails a whole job.
- Containerised the app and workers and deployed them to Azure Container Apps.
Freelance
Websites and CMS for two accounting firms
Public sites with a custom admin panel for circulars, announcements, blog and Q&A. Later moved from MongoDB to Supabase with row-level security, and added an editor with autosaved drafts, conflict detection and Word import.
Side projects
- FX difference calculator Reads Turkish e-invoice archives in the browser, matches payments to invoices first-in-first-out and reports exchange-rate differences.
- Bulk e-invoice processor Upload a ZIP of invoices; BullMQ workers parse each one with retries and live progress.
- DevLink Spring Boot API with JWT security for developer link pages. I recorded the build on YouTube.
How I work
I use AI coding agents every day. They make me faster, but they don’t decide the data model, where the security boundaries go, what has to be tested or whether a change is ready. Those calls are mine, and I read every diff before it ships.
I like to put rules where they can’t be skipped: row-level security in the database, payment state changed only by verified webhooks, auction logic inside Postgres functions. Then I write tests that prove those rules hold.
Experience
- Sep 2025 – now
Full-Stack Developer at Vizio AI
AI product studio. I build client SaaS products, usually as the lead or only developer.
- Jul – Sep 2025
Full-Stack Developer at RNX Teknoloji
Multilingual task and staff management for a multi-office firm.
- Oct 2024 – Mar 2025
Project Lead at Medyanes360
Ran planning for several teams and built an operations system for a furniture manufacturer.
- Aug – Oct 2024
Full-Stack Intern at Medyanes360
Promoted to team lead within three months.
- Mar – Jun 2023
Frontend Intern at Paramount Students
UI work in a distributed international team.
Economics, Ankara University · Computer Engineering, Ahmet Yesevi University
Stack
- Frontend
- Next.js, React, TypeScript, Tailwind CSS, TanStack Query, Vue
- Backend
- Node.js, NestJS, Express, Spring Boot, REST, SSE, WebSockets
- Data
- PostgreSQL & Supabase (RLS, SQL functions), pgvector, MongoDB, Prisma, Redis
- AI
- OpenAI, Azure OpenAI, Gemini, Vercel AI SDK, RAG, streaming chat, TTS
- Infra
- Vercel, Azure Container Apps, AWS, Cloudflare, Docker, BullMQ, Stripe
- Testing
- Playwright, Vitest, Jest, pgTAP, Sentry
Contact
The quickest way to reach me is email: firatkill.is@gmail.com. Or leave a message here.