turanhakanaydin.com
// ready
ProjelerDeneyimİletişim LinkedIn
© 2026 Turan Hakan Aydın

Turan Hakan Aydın

Kurumsal portal ve e‑ticaret projelerinde .NET Core + React/Next.js ile geliştirme yapıyorum. BPM entegrasyonları, performans/UX, test otomasyonu ve CI/CD benim standart setim.

.NET CoreReactNext.jsTypeScriptPostgreSQLRedisPythonReact NativeDockerCI/CD
İletişime geç

Projeler

Seçilmiş işler, kısa özet ve teknoloji etiketleriyle.

Kurumsal Bayi Portalı

Rol tabanlı yetki, onay akışları ve BPM entegrasyonlarıyla modüler portal. React + .NET Core.

.NET CoreReactMSSQLBPM
  • Modüler mimari, domain bazlı yetkilendirme
  • Onay akışları, SLA takibi ve bildirimler
  • Redis cache, audit log, E2E testler
  • CI/CD ile tek tuşta sürümleme

E-Ticaret Katalog & Sipariş Uygulaması

Çok mağazalı ürün yönetimi, sepet, ödeme ve kargo entegrasyonları.

Next.js.NET CorePostgreSQLRedis
  • Elasticsearch ürün araması, filtreleme
  • 3D Secure ödeme, kupon/indirim motoru
  • Kargo entegrasyonları ve durum takip
  • Admin paneli: stok, kampanya, raporlar

Kurumsal E-posta Şablon Seti

MJML/Tailwind tabanlı responsive HTML e-postalar; marka uyumlu ve hafif.

MJMLTailwindHTML
  • Dark mode desteği ve 40+ istemci uyumluluğu
  • CDN + inline base64 görsel stratejisi
  • UAT ortamında görsel/regresyon testleri

OMS Entegrasyonu

Sipariş işleme, PDF etiket birleştirme ve durum senkronizasyonu için servisler.

.NET CoreHTTP APIsBackground Jobs
  • Webhook listener ve güvenli imza doğrulama
  • Retry queue ve idempotent işlem
  • JSON şema validasyonu, merkezi loglama

Mobil Görev Yönetimi (iOS/Android)

Saha ekipleri için offline-first görev, konum ve bildirim özellikleri.

React NativeExpoSQLitePush
  • Offline senkronizasyon ve çakışma çözümü
  • Harita üzerinde görev/rota
  • Gerçek zamanlı bildirim ve aktivite beslemesi

Yapay Zekâ İçerik Asistanı

LLM tabanlı metin üretimi, RAG ve moderasyon katmanları.

PythonFastAPIVector DBNext.js
  • Prompt şablonları ve guardrails
  • RAG ile kurumsal bilgi tabanı arama
  • Önbellekleme ve kullanım limitleri
const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); const api=async(u,b)=>fetch(u,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(b)}); function sum(a,b){return a+b}; const delay=(ms)=>new Promise(r=>setTimeout(r,ms)); 

Deneyim

Kurumsal ve ürün projelerinden seçmeler.

Rol
Şirket
Teknolojiler
Dönem
Detay
Full-stack Developer
2021–present
Kurumsal
.NET Core, React, Next.js, TypeScript, PostgreSQL, Redis
Yan Projeler
AI/ML Engineer• 2024–present
Python, FastAPI, LLM, RAG, Vector DB, LangChain
Frontend Developer• 2019–present
React, Next.js, TypeScript, Tailwind CSS, Zustand
Backend Developer• 2021–present
.NET Core, PostgreSQL, Redis, Dapper, Hangfire
Full-stack Developer
Kurumsal
.NET Core, React, Next.js, TypeScript, PostgreSQL, Redis
2021–present
3 yan proje

İletişim

Birlikte üretelim. Aşağıdan mesaj bırak.

Bana Ulaşın

Mesajınızı en kısa sürede yanıtlayacağım

💼 Hizmet Alanlarım

Kurumsal Portal

BPM entegrasyonlu modüler sistemler

E-Ticaret

Katalog, sepet, ödeme, kargo

Mobil Uygulama

React Native cross-platform

AI/RAG Çözümleri

LLM entegrasyonu, vektör DB

Kurumsal E-Posta

Responsive HTML şablonlar

API Entegrasyon

RESTful, webhook, senkronizasyon

5+ yıldeneyim • 100+ proje