Hakkımda

Merhaba, ben Furkan.

Bir işletmenin günlük akışını taşıyan yazılımlar kuruyorum — kasadaki satıştan depodaki stoka, bayi siparişinden muhasebe kaydına.

2020'den beri teknoloji sektöründe, 2022'den beri profesyonel yazılım geliştiricisiyim. Son iki yılda 96 veri modelli çok şubeli bir perakende platformu, multi-tenant SaaS ERP, B2B bayi pazaryeri ve 10 dilli kurumsal CMS dahil sekiz sistem geliştirdim. React ve Next.js tarafındaki derinliğimi NestJS, Prisma ve PostgreSQL ile birleştiriyorum.

Yolculuk

Ağ kablosu çekmekten çok servisli mimarilere. Ayrıntılar CV'de.

  1. ÇilingirlerIT Destek UzmanıMart 2020 – Ekim 2021

    Yerel ağ, donanım desteği ve baskı üretimi — sektöre giriş.

  2. Apply.askuni.comFront-End GeliştiriciŞubat 2022 – Aralık 2024

    Vue, React ve Next.js ile uluslararası öğrenci başvuru platformu.

  3. Milkiile.comFront-End GeliştiriciMayıs 2024 – Ekim 2024

    Somali pazarı için Next.js + TypeScript e-ticaret arayüzü.

  4. FreelanceFull-Stack DeveloperAralık 2024 – Halen

    iBERRY, ECU Mapping, AKS ERP, MADDRent — mimariden canlıya uçtan uca.

  5. EndizoomFrontend DeveloperTemmuz 2025 – Eylül 2025

    B2B toptan pazaryerinde ürün ve sepet akışlarının frontend sahipliği.

  6. RE/MAX MySunIT Sorumlusu · Yazılım GeliştirmeAralık 2025 – Temmuz 2026

    10 dilli kurumsal gayrimenkul CMS ve emlak otomasyon sistemi.

Nasıl çalışıyorum

Para ve çok-kiracılılık gibi kritik alanlarda “dikkat ederiz” yerine doğrulanabilir garantiler yazıyorum.

ADR

Kararlar yazılı durur

Kritik mimari kararları ADR olarak belgeliyorum. Altı ay sonra “neden böyle yapmıştık” sorusunun cevabı dosyada duruyor.

CI

Sınırlar derlemede korunur

Modüller arası bağımlılık sınırlarını CI denetimine bağlıyorum; izinli liste dışındaki bir import derlemeyi kırar.

Decimal(18,4)

Para asla float değildir

Para alanlarını Decimal(18,4) üzerinde tutuyorum. Kuruş farkı aylar sonra bir raporda değil, ilk gün tipte yakalanır.

Idempotency

Aynı istek iki kez gelir

Kasada ağ koptuğunda ya da biri butona iki kez bastığında sonuç değişmesin diye tek şemalı hata kodu ve idempotency katmanı kuruyorum.

Araç kutusu

Diller
TypeScriptJavaScript (ES6+)PHPSQLSwift
Frontend
ReactNext.jsVueReact NativeTauriTailwind CSSMUI
Backend
NestJSExpressLaravelPrismaREST APIJWT / WebAuthn
Veritabanı
PostgreSQLPostGISSupabase (RLS)RedisMongoDB
Cloud / DevOps
Google Cloud RunCloud SQLVercelDockerGit
Mimari
Multi-tenantRBACbounded contextmikroservisoffline-firstidempotency

Şu sıralar

  • iBERRY perakende orkestrasyon platformunun mimarisi
  • Anadolu Üniversitesi — Yönetim Bilişim Sistemleri, son düzlük
  • Kişisel araçlar: TanKanban, TanQR, TanLink, TanWeather

Tanışalım

İlginç bir mimari problemi, bir proje fikri ya da sadece merhaba — hepsine açığım.