AI product developer & full-stack product engineer. Mechatronics engineer by training, business owner for seven years, now building AI, data and geospatial products end to end in TypeScript and Python.
I spent 2018–2025 running hospitality businesses — purchasing, cost control, staff, sales, angry customers at 11pm. That background is why I build software the way I do: I start from the operator's problem, not the framework. Today I ship production platforms as the sole engineer, which means I also own the data model, the auth, the security review, the deploy and the pager.
Currently building TerraLot for VegaWest under a paid contract. Open to remote roles (worldwide) and relocation to the EU.
Own end-to-end development: parcel discovery, underwriting, competitor monitoring, owner outreach and owner-financed resale workflows.
- Geospatial ingestion and research pipelines covering 565,930+ off-market leads across 15 states and 213 counties, 477,699 mailable leads, 208,442 comparable sales and 1.3M+ live-measured vacant parcels
- Production Next.js platform: 120 pages, 79 API routes — mapping, property scoring, provider abstraction, resumable jobs, retries, circuit breakers, usage caps and data-quality safeguards
- Built to run unattended on a VPS and survive interruption, after local execution proved unviable at this data volume
Low-latency voice agent — Claude + Fish Audio S2 Pro conversational system with true streaming, ~1.0 s time-to-first-audio, automatic call records and fast fallback responses.
LegaFetch (legal AI) — Citation-grounded legal RAG with hybrid retrieval, PII masking, deliberate abstention behaviour, document analysis, petition generation and legal calculators.
Nocturn Data Hub — Multi-site event analytics on PostgreSQL with HMAC-signed ingestion, replay protection, deduplication and sensitive-field rejection.
Contributions to projects I actually use, with the diagnosis attached — most of my value there has been in reproducing and explaining failures maintainers could not reproduce.
Merged
- honojs/hono#5248 — documented an RPC promise-chain type-inference limitation in the Context JSDoc
- honojs/website#897 — documented the same limitation in the official docs
- kutaygunal/kzip#1 — stopped a BufferPool from bloating by shrinking or discarding oversized buffers
- kutaygunal/kzip#2 — path-traversal guards, early CRC failure and streaming fixes
- marcelscruz/public-apis#1215 — catalogue entry
Open
- railwayapp/railpack#728 — semver range support for
package.json > engines; mise only understands prefix queries, so>=1.1.0 <1.3.0silently installed 1.4.0 - railwayapp/railpack#740 — Laravel builds cached a config without runtime env, sending first-deploy migrations to SQLite while Postgres stayed empty and the build reported success
- railwayapp/railpack#712 — made build planning respect
.dockerignoreacross every provider, not just Node - Also under review at oven-sh/bun, vercel/ai and modelcontextprotocol/typescript-sdk
| Project | What it is | |
|---|---|---|
| emlakakli | Turkish real-estate intelligence platform — market data, valuation tools, community forum | live |
| CryptoRadar | Crypto alerting on live Binance data — price/volume alarms, support-resistance detection | live |
| testereplus | E-commerce storefront for a power-tools retailer | live |
| toolcompare.net | Tool comparison platform — spec tables, filtering, lead capture | live |
| gelecekfinans | Finance news platform with an automated article pipeline | live |
| NocturnDev | My studio — diagnostics-first agency positioning | live |
Design-led front-end: Meşe Veteriner · Chia-ko · sector gallery · Çiğköfte B2B
Languages TypeScript, JavaScript, Python, SQL Front-end Next.js (App Router), React, Tailwind CSS, Framer Motion Back-end Node.js, Express, REST APIs, socket.io Data PostgreSQL, Prisma, Drizzle, row-level security, Redis, Qdrant (vector search) AI Claude API, RAG pipelines, Fish Audio, Replicate Infra Vercel, Docker, Linux VPS, GitHub Actions, self-hosted error monitoring Also Meta Marketing API, WhatsApp Business API, Stripe / iyzico, large-scale scraping & ETL, Capacitor (Android)
Security isn't a later phase. Rate limiting, secret hygiene, auth review and a row-level-security model before launch — not after. I wrote my own OWASP-oriented audit CLI to run static, live and dependency checks against my own deployments, because reviewing your own code without something that disagrees with you doesn't work.
Performance gets measured. Compute–database region alignment, parallelised queries, request-level deduplication, and a before/after TTFB number attached to every optimisation claim.
I verify the source before trusting the pipeline. Hard lesson from land data: a recorded sale price is not a purchase price, and a scraper is never the first move — the official bulk file usually already exists.
Education B.Sc. Mechatronics Engineering — Bahçeşehir University, Istanbul (2015) Languages Turkish (native) · English (professional working proficiency) · Spanish (A2)

