Monaf Horany
Monaf Horany portresi

Full-stack yazılım mühendisi · İstanbul

Bir katmanı değil, sistemin tamamı.

API'ler, web uygulamaları, yönetim panelleri, mobil uygulamalar, arka plan görev işleyicileri, medya işleme hatları ve bunların üzerinde çalıştığı altyapı — parçalardan birleştirilmiş değil, tek bir sistem olarak tasarlanıp teslim edilir.

Bunun altı yılı. Çoğu e-ticaretteydi, çünkü iş oradaydı — ama bu teknolojiler nereye yöneltildiklerini umursamaz. Bir mağaza, bir kurum içi araç, bir rezervasyon sistemi, bir video işleme hattı: aynı katmanlar, aynı problemler, aynı mühendis.

Full-stack pozisyonlarına açığım — uzaktan veya İstanbul

6yıl canlı ortamda
9yayınlanan uygulama
4kapsanan alan
3dil, RTL öncelikli

Kullandığım teknolojiler

  • TypeScript
  • NestJS
  • Flutter
  • PostgreSQL
  • Docker
  • Next.js
  • Prisma
  • Redis
  • FFmpeg
  • Kubernetes
  • React
  • BullMQ
  • Dart
  • Sharp
  • Traefik
  • Zod

Kapsam

Bu teknolojilerle ne kurulabiliyorsa.

Aşağıdaki vaka çalışmalarının tamamı e-ticaret, o yüzden kapsamın dürüst hâli burada. Her satır gerçekten geliştirilip teslim edilmiş bir işe karşılık geliyor; denemeye istekli olduğum bir şeye değil.

  • Web uygulamaları ve ürünler

    Mağazalar, tanıtım siteleri, portallar, çok kiracılı uygulamalar. Sunucu bileşenleri, akışlı render, gerçek RTL desteğiyle çokdillilik ve rapor değil gereksinim olarak ele alınan Core Web Vitals.

    Geliştirildi

    • Megastore storefront
    • Golden Minds
    • imPhone
  • API'ler ve arka uç sistemleri

    Tip güvenli sözleşmelere sahip REST API'leri, kimlikleri rol sütunuyla değil kriptografik olarak ayıran kimlik doğrulama, kuyruklar, zamanlanmış görevler, webhook'lar ve sessizce değil gürültüyle hata veren üçüncü taraf entegrasyonları.

    Geliştirildi

    • Megastore API
    • OUKITEL shared API
    • Orjeen
  • Mobil uygulamalar

    iOS ve Android'de Flutter, Play Store'da yayında — çevrimdışı davranış, bildirimler, derin bağlantılar, ödeme SDK'ları ve arkasındaki API'yi de aynı kişi yazdı.

    Geliştirildi

    • 4 Flutter apps
    • Play Store
    • iOS + Android
  • Kurum içi araçlar ve paneller

    Yönetim panelleri, depo ve stok sistemleri, operasyon panoları, role göre yetkilendirilmiş arka ofisler. Gösterişsiz ama bir işin gerçekten yürüyüp yürümediğini belirleyen yazılımlar.

    Geliştirildi

    • Admin dashboards
    • TeleTab
    • Warehouse system
  • Medya ve veri işleme hatları

    Görsel ve video işleme, HLS dönüştürme, küçük görsel üretimi, arka plan kaldırma, ön imzalı yüklemelerle nesne depolama ve ayrı bir arama kümesine geçmeden önce Postgres üzerine kurulmuş arama.

    Geliştirildi

    • HLS pipeline
    • Sharp / FFmpeg
    • rembg
  • Altyapı ve dağıtım

    Konteynerler, ters vekil sunucular, TLS, CI, monorepo'lar, gizli anahtarlar, yedekleme, izleme — bir VPS üzerinde kendi kendine barındırılan ya da kurduğum ve satır satır anlatabildiğim bir Kubernetes kümesinde.

    Geliştirildi

    • Docker / Traefik
    • Turborepo
    • Kubernetes (kubeadm)

Seçilmiş çalışmalar

Anlatmaya değer dört sistem.

Bunların her birini uçtan uca kendim tasarlayıp yazdım. Deponun özel olduğu yerlerde kaynağı göstermek yerine tasarımı anlattım — zaten aktarılabilir olan kısım da o akıl yürütme.

001 / Megastore

2026

Megastore

Üç dilli, çok para birimli bir e-ticaret platformu: paylaşılan tek bir sözleşme katmanının arkasında beş uygulama ve ayrıca bir Flutter istemcisi.

monorepo içindeki uygulama
5monorepo içindeki uygulama
paylaşılan paket
6paylaşılan paket
dil, RTL öncelikli
3dil, RTL öncelikli
para birimi
5para birimi
Megastore platform mimarisiTarayıcılar ve Flutter uygulaması, Next.js mağazasına ve yönetim paneline ulaşır; bu ikisi tek bir NestJS API'sini çağırır. PostgreSQL'e dokunan tek servis API'dir. API ayrıca önbellekleme ve hız sınırlama için Redis'i okuyup yazar, ayrı bir işçi süreci için BullMQ'ya iş bırakır, işlenmiş medyayı MinIO'da saklar ve arka plan silme için dahili bir Python servisini çağırır. İşçi süreci; görüntü ve video dönüştürmeyi, zamanlanmış istatistik toplamayı ve bildirimleri üstlenir.CLIENTSAPPSSERVICESDATAenqueueBrowserwebFlutter appiOS · AndroidStorefrontNext.js 16DashboardNext.js 16NestJS APIsole DB ownerWorkerBullMQPostgreSQLPrisma 7Rediscache · queue · ratesMinIOprocessed mediamedia-pyFastAPI · rembg
Tarayıcılar ve Flutter uygulaması, Next.js mağazasına ve yönetim paneline ulaşır; bu ikisi tek bir NestJS API'sini çağırır. PostgreSQL'e dokunan tek servis API'dir. API ayrıca önbellekleme ve hız sınırlama için Redis'i okuyup yazar, ayrı bir işçi süreci için BullMQ'ya iş bırakır, işlenmiş medyayı MinIO'da saklar ve arka plan silme için dahili bir Python servisini çağırır. İşçi süreci; görüntü ve video dönüştürmeyi, zamanlanmış istatistik toplamayı ve bildirimleri üstlenir.
  • İstemci
  • Servis
  • Veri deposu
  • Harici

002 / OUKITEL B2B Paketi

2025 — 2026

OUKITEL B2B Paketi

Kurumsal satış, servis kabulü ve iade süreçlerini kapsayan, tek bir NestJS arka ucunu paylaşan dört Flutter uygulaması ve bir web istemcisi.

Flutter uygulaması
4Flutter uygulaması
ortak API
1ortak API
yayında
Play Storeyayında

Mobil

FlutterDartFirebase

Arka uç

NestJSPrismaPostgreSQLRedisBullMQSwagger

Depolama

AWS S3Presigned URLsMinIO

Ön uç

Next.jsTypeScript

003 / Netlastik

2024 — 2025

Netlastik

Bayiler için B2B lastik ticaret uygulaması; App Store ve Google Play'de yayında.

yayınlandığı yer
iOS + Androidyayınlandığı yer
uygulama mağazası, ikisi de yayında
2uygulama mağazası, ikisi de yayında
özellik modülü
17özellik modülü

Mobil

FlutterDartBloc / Cubitgo_routerget_itdio

Veri

dartzequatableshared_preferences

Ön uç

flutter_screenutilflutter_svgcached_network_imageinfinite_scroll_paginationpinputwebview_flutter

004 / Orjeen

2021 — 2024

Orjeen

Suudi Arabistan pazarındaki bir çevrimiçi mağaza için, taksit ve kart ödeme altyapıları uçtan uca entegre edilmiş çok platformlu bir e-ticaret uygulaması.

ödeme altyapısı
2ödeme altyapısı
yayınlandığı yer
iOS + Androidyayınlandığı yer
pazar
KSApazar

Mobil

FlutterMVVMCubitFCMFirebase Analytics

Ödeme

TabbyUrway

Konum

GeolocationGeocoding

Arka uç

NestJSNode.jsWooCommerce REST

Diğer çalışmalar

Daha küçük ama gerçek. Yukarıdaki dördü ağırlığını korusun diye vaka çalışması yapmadan listeledim.

  • Kartçek

    2025

    Saha tahsilat ekipleri için bir borç toplama uygulaması — Netlastik'le aynı Flutter mimarisi, dörtte bir boyutta; hızlı geliştirilebilmesinin sebebi de bu. Google Play'de yayında.

    FlutterBloc / Cubitgo_routerget_itdioGoogle Play
  • TeleTab

    2025 — 2026

    TELETAB markası için full-stack Next.js ürünü — PostgreSQL üzerinde Prisma, better-auth, MinIO nesne depolama, React Email ile işlemsel e-posta ve sunucu tarafından yönetilen tablolar.

    Next.jsPrismabetter-authMinIOReact Email
  • Golden Minds

    2025 — 2026

    Ölçülü bir hareket katmanına sahip üç dilli tanıtım sitesi. Mobil bağlantılarda hızlı yüklenecek ve Arapça'da doğru okunacak şekilde kuruldu.

    Next.jsnext-intlMotion
  • Turkish Recycle

    2026

    Ortak bir bileşen kütüphanesi ve veritabanı paketi üzerinde bir tanıtım sitesiyle bir operasyon panelini birleştiren, staging için konteynerlanmış Turborepo monorepo'su.

    TurborepoNext.jsPrismaDocker
  • IM Phone

    2025

    GSAP tabanlı hareket dizileri ve teknik SEO temeli olan tanıtım sitesi — üretilmiş site haritası, yapılandırılmış meta veriler, mobil öncelikli performans bütçesi.

    Next.jsGSAPnext-sitemap

Nasıl çalışırım

Ekran görüntüsünden görülmesi zor olan kısımlar.

Teknoloji listelemeyi herkes yapar. Bunlar ise yukarıdaki sistemlerde gerçekten karşılığı olan alışkanlıklar.

  1. 01

    Önce yazarak karar ver, sonra inşa et

    Megastore'un mimarisi, numaralandırılmış kararlardan oluşan bir şartname olarak var — her karar gerekçesini, elediğim alternatifleri ve eleme nedenini taşıyor. Bunu önce yazmak, kararı sonradan gözden geçirilebilir kılan şey; uygulamanın aylar sonra hâlâ tasarımla örtüşmesinin nedeni de bu.

  2. 02

    Sınırları, geçilmesi maliyetli olacak yerlere koy

    Veritabanına yalnızca API dokunuyor. Müşteriler ve yöneticiler bir rol sütunu yerine ayrı kriptografik kimlikler alıyor. Yalnızca teamül olan sınırlar, birinin acelesi olduğu ilk anda aşılır.

  3. 03

    Temizliği değil, değişmezi tasarla

    Medya depolanmadan önce işleniyor, dolayısıyla artık dosya oluşamıyor. Çerez yerine bearer jeton kullanılıyor, dolayısıyla CSRF savunulacak bir şey olmaktan çıkıyor. Bir hata sınıfının en iyi çözümü, o hatanın oluşamayacağı bir tasarımdır.

  4. 04

    Altyapıyı hak ettiğinde ekle

    Meilisearch'ten önce Postgres tam metin araması. Orkestratörden önce Docker Compose. Her konteyner; işletilecek, yedeklenecek ve güvenliği sağlanacak bir şeydir — yani önce kendi maliyetini karşılamalıdır.

Deneyim

Altı yıl, yığının tamamında.

  1. 2024Halen

    Istanbul, Türkiye

    Full-Stack Yazılım Mühendisi

    Bağımsız / sözleşmeli

    Megastore e-ticaret platformunu, OUKITEL B2B uygulama paketini ve TeleTab ürününü tasarlayıp geliştirmek — mimari, API'ler, web ön uçları, Flutter istemcileri ve altındaki konteyner altyapısı.

    NestJSNext.jsFlutterPostgreSQLRedisDocker
  2. 02/202406/2024

    Istanbul, Türkiye

    Full-Stack Geliştirici

    OXO Teknoloji

    Sosyal medya araçları geliştirdim: platform API'lerine karşı çalışan otomatik etkileşim servisleri; Node.js arka ucu ve React ön ucu.

    Node.jsNestJSReactPuppeteer
  3. 03/202102/2024

    Istanbul, Türkiye

    Full-Stack Geliştirici

    Orjeen / Perllamoda

    Suudi pazarına hizmet veren bir çevrimiçi mağazayı geliştirdim ve sürdürdüm. Tabby ve Urway ödeme altyapılarıyla Orjeen çok platformlu uygulamasını teslim ettim ve WooCommerce REST API'siyle entegre bir depo yönetim sistemi kurdum.

    FlutterIonicNestJSNode.jsWooCommerceMongoDB
  4. 07/202003/2021

    Istanbul, Türkiye

    Ön Uç Geliştirici

    Midad Tek

    Zakati mobil uygulamasını Android ve iOS için yayınlayan ekipte ön uç geliştirme; ayrıca bir hayır kurumu müşterisi için web çalışmaları.

    ReactWordPressMobile
  5. 20172021

    Eğitim

    Bilgisayar Mühendisliği Lisans

    İstanbul Aydın Üniversitesi

Yetkinlikler

Neyi, neden kullanıyorum.

Kaç eğitim videosu izlediğime göre değil, gerçekten ne kadarını sahaya çıkardığıma göre sıralandı.

Diller
4
  • TypeScript
  • JavaScript
  • Dart
  • SQL
Arka uç ve API
9
  • NestJS
  • Node.js
  • Express
  • Prisma
  • Zod
  • BullMQ
  • REST
  • JWT / JWKS
  • OAuth 2.0
Ön uç
8
  • Next.js
  • React
  • Server Components
  • Tailwind CSS
  • shadcn/ui
  • Base UI
  • next-intl
  • Motion
Mobil
6
  • Flutter
  • Bloc / Cubit
  • go_router
  • get_it
  • Firebase
  • Ionic
Veri
4
  • PostgreSQL
  • Redis
  • MongoDB
  • Prisma migrations
Altyapı
9
  • Docker
  • Docker Compose
  • Turborepo
  • pnpm
  • MinIO / S3
  • Traefik
  • Cloudflare
  • Infisical
  • VPS (Ubuntu)
Orkestrasyon
7
  • Kubernetes (kubeadm)
  • HA control plane / HAProxy
  • Flannel CNI
  • MetalLB
  • NGINX Ingress
  • cert-manager
  • Helm
Medya işleme
5
  • Sharp
  • FFmpeg
  • HLS
  • WebP pipelines
  • SVG sanitisation

Hakkımda

Buraya nasıl geldim.

İstanbul Aydın Üniversitesi'nde bilgisayar mühendisliği okudum ve bitirmeden çalışmaya başladım — 2020'de, önce ön uçta, İstanbul'da bir mobil uygulama ve müşteriler için web işleri çıkaran küçük bir ekipte.

Ön uç kısa sürede yetmemeye başladı. Yığında geriye doğru ilerledim; çünkü ilgi çekici problemler sürekli API'nin öbür tarafından çıkıyordu: müşteri yönlendirme ortasında uygulamayı kapattığında ödeme nasıl uzlaşır, ürünler farklı para birimlerinde fiyatlandığı anda fiyat filtresi neden dağılır, JPEG olduğunu iddia eden ama olmayan bir yüklemeye ne olur. 2021'e gelindiğinde artık bütün ürünler geliştiriyordum — bir depo sistemi, iki ödeme altyapılı çok platformlu bir mağaza uygulaması ve ikisine birden hizmet veren arka uç.

Bugün fiilen yaptığım şey şu: gerçek bir sisteme ihtiyacı olan bir işletmeyi alıp sistemin tamamını kurmak — veri modeli, API, mağaza, personelin her gün kullandığı yönetim araçları, mobil istemci ve üzerinde çalıştığı altyapı. Bu yüzeyin tamamında tek başıma çalışmak beni belirli bir biçimde titiz yaptı: hataları sonradan yakalanacak şekilde değil, yapısal olarak imkânsız olacak şekilde tasarlıyorum — çünkü onları yakalayacak ikinci bir mühendis yok.

İngilizce, Arapça ve Türkçe çalışıyorum ve yazılımı da aynı şekilde kuruyorum. Arapça'nın sağdan sola olması, sonda halledilecek bir çeviri işi değil; yönlendirmeye, yerleşime ve veritabanı şemasına kadar uzanan mimari bir kısıt. Bunu birkaç kez sahaya çıkarmış olmam, deneyimimin hızlıca edinilmesi en zor kısmı.

İletişim

Konuşalım.

Uzaktan ya da İstanbul'da full-stack pozisyonlarına ve seçili sözleşmeli işlere açığım. Bana ulaşmanın en hızlı yolu e-posta.