İçeriğe geç
TREN
WhatsApp'tan yazın
Enes Şahin'in siyah beyaz portresi

Enes Şahin

Full Stack Developer

Node.js ve Next.js ile ölçeklenebilir web uygulamaları geliştiriyorum. Şu anda backend tarafımı C# ve .NET Core ile genişletiyorum.

Framework'ten önce, altındaki mantık

Yazılım Mühendisliği son sınıf öğrencisiyim. Ocak 2022'den beri gerçek bir e-ticaret işletmesinin backend'ini sıfırdan geliştiriyorum. Temmuz 2026'dan beri de bir dijital ajansta full stack stajyer olarak kurumsal ölçekli projelerde çalışıyorum.

Bir teknolojiyi kullanmadan önce altındaki mantığı anlamayı önemsiyorum. Bir veritabanını neden ilişkisel seçtiğimi, bir yetkilendirme katmanını neden middleware'e koyduğumu anlatabilmek benim için bildiğim kütüphane sayısından daha değerli.

Sağlam bir backend ve veri modelleme temelini, gerçek bir ürün geliştirme sürecinde mentorluk eşliğinde derinleştirebileceğim bir pozisyon arıyorum.

Neler geliştirdim

Üretimde çalışan işler ve arkalarındaki kararlar. Müşteri projelerinde kurum adları paylaşılmıyor; bazı projelerde yalnızca mimari anlatılıyor ve görseller temsilidir.

PNR e-ticaret platformunun ana sayfası: tam genişlikte ürün görseli üzerinde koleksiyon başlığı, üstte kategori menüsü ve sepet

Uçtan uca geliştirme, 2022'den beri

PNR, çanta ve aksesuar e-ticaret platformu

Gerçek bir işletme için sıfırdan geliştirdiğim e-ticaret sistemi. Ürün, kategori, sipariş ve kullanıcı varlıklarını kapsayan ilişkisel bir veri modeli, kendi yazdığım REST API ve Next.js App Router ile iki dilli bir arayüz. Ziyaretçinin tabanı seçip aksesuarlarla kendi çantasını kurduğu Tasarım Atölyesi bölümü de bu sistemin üstünde çalışıyor.

Neden PostgreSQL ve Prisma?

Sipariş ile stok arasındaki ilişki transaction bütünlüğü istiyor: yarım kalan bir sipariş stoktan düşmemeli. Bu kısıt, ilişkisel bir veritabanını NoSQL'e tercih ettirdi. Prisma'yı da şema ile kod arasında tek bir doğruluk kaynağı olsun diye seçtim.

Neden JWT ve rol bazlı yetkilendirme?

Yönetici, tasarımcı ve müşteri rollerinin farklı yetkilere ihtiyacı vardı. Yetkilendirmeyi controller'lara dağıtmak yerine middleware katmanında (isAuth, isRole) merkezileştirdim; yeni bir uç nokta eklerken yetki kararı tek yerde kalıyor.

Next.js (App Router), Node.js, Express, TypeScript, Prisma, PostgreSQL, Docker

Eğitim kurumu sitesinin ana ekranı: sağda ön kayıt formu ve şube seçimi, altta program kategorileri

Ajans projesi, 2026

Çok şubeli bir eğitim kurumu için üç dilli site, 200'den fazla sayfa

Next.js App Router ve TypeScript ile sıfırdan geliştirdiğim, birden fazla şubesi olan bir eğitim kurumunun sitesi. SSR mimarisini, TR, EN ve AR dillerini kapsayan çoklu dil altyapısını ve design token tabanlı tema sistemini kurdum. Ziyaretçi hangi sayfadan girerse girsin şubesini seçip ön kayıt bırakabiliyor; program kategorileri ve WhatsApp üzerinden anlık iletişim aynı akışın parçası. Three.js ile etkileşimli bir 3D arayüz bileşeni tasarladım ve sitenin arama motoru görünürlüğünden uçtan uca sorumlu oldum.

Arama görünürlüğü neden ayrı bir iş kalemi oldu?

Birbirine yakın konularda yazılmış 200'ü aşkın sayfa, aynı sorgu için birbiriyle yarışmaya başlıyor. Google Search Console analizinde bu keyword cannibalization sorununu tespit edip sayfa niyetlerini ayrıştırdım.

Yapay zeka aramaları için ne yapıldı?

Course, FAQPage ve BreadcrumbList formatlarında JSON-LD şemaları kurdum, canonical ve hreflang yapılandırmasını üç dil için tamamladım, dil modellerinin siteyi doğru okuyabilmesi için llms.txt dokümantasyonu hazırladım.

Next.js, TypeScript, SSR, Three.js, JSON-LD, i18n, Form akışı

Temsili görsel: koyu zeminli bir oto lastik sitesinin ana ekranı, sağda jant ve lastik görseli, solda başlık ve arama butonu

Müşteri projesi, 2026, temsili görsel

Bir oto lastik işletmesi için panelden yönetilen site

Sitedeki metinler, blog yazıları ve sıkça sorulan sorular işletmenin kendi yönetim panelinden değişiyor; içerik güncellemek için koda dokunmak gerekmiyor. Arkada kendi yazdığım bir Express API, önde bu içeriği her istekte sunucuda render eden bir Next.js uygulaması çalışıyor.

Mimari

  • Express ve TypeScript ile REST API, Prisma üzerinden PostgreSQL. Blog, SSS ve anahtar değer yapısındaki site metinleri ayrı modeller; okuma uç noktaları herkese açık, yazma uç noktaları isAuth middleware'inin arkasında.
  • Yönetici girişi bcrypt ile doğrulanıyor. JWT, httpOnly ve sameSite ayarlı bir çerezde taşınıyor ve tarayıcıdaki JavaScript'e hiç açılmıyor. Panel, istekleri bu çerezle gönderen ayrı bir API istemcisi kullanıyor.
  • API, Coolify üzerinde Traefik reverse proxy arkasında çalışıyor. Express'in trust proxy ayarı sayesinde rate limit, proxy'nin değil gerçek ziyaretçinin IP'sine göre uygulanıyor.
  • Arayüz önce statik export olarak kuruldu. Panelden yapılan her değişiklik yeniden deploy istediği için sunucu render'a geçirildi: içerik ham HTML'de kalıyor, güncellemeler build beklemeden yansıyor.
  • Sitemap ve llms.txt blog yazılarını API'den okuyor, JSON-LD işletme bilgisini panel metinlerinden alıyor. Yayınlanan yazılar IndexNow ile Bing ve Yandex'e anında bildiriliyor.

Next.js, Express, TypeScript, Prisma, PostgreSQL, JWT, Coolify

Temsili görsel: açık tonlarda bir psikolojik danışmanlık sitesinin ana ekranı, gün ışığı alan sakin bir oda ve randevu butonu

Müşteri projesi, 2026, temsili görsel

Bir psikoloğun kliniği için içerik yönetimli site

Terapi alanları, yerel arama sayfaları, blog, videolar ve danışan yorumları tek bir yönetim panelinden besleniyor. Laravel API ile Next.js arayüzü ayrı servisler olarak çalışıyor; arayüz sayfaları API'den gelen içerikle sunucuda render ediyor.

Mimari

  • Laravel 13 ile REST API ve Filament yönetim paneli. Terapiler, terapi sayfaları, SEO sayfaları, blog yazıları, videolar, yorumlar, iletişim mesajları ve bülten aboneleri panelde ayrı kaynaklar olarak yönetiliyor.
  • Danışan yorumları Google Business Profile API'sinden her gün zamanlanmış bir komutla içeri aktarılıyor; erişim token'ı önbellekte tutuluyor.
  • WhatsApp, telefon ve form etkileşimleri anonim bir ziyaretçi kimliğiyle API'ye olay olarak yazılıyor. Form gönderimleri referrer, UTM ve giriş sayfası bilgisiyle birlikte kaydediliyor.
  • Next.js tarafında her terapi alanı ve yerel arama için ayrı açılış sayfaları var. Laravel storage'daki görseller next/image ile AVIF ve WebP olarak sunuluyor; güvenlik başlıkları ve 301 yönlendirmeleri yapılandırmada tanımlı.
  • Sitemap, robots ve llms.txt arayüz uygulamasında üretiliyor; arayüz Coolify üzerinde yayında.

Next.js, TypeScript, Laravel, Filament, Google Business Profile API, Coolify

Ulaşım hizmeti sitesinin ana ekranı: tam genişlikte sahil fotoğrafı üzerinde başlık ve rezervasyon butonu

Müşteri projesi, 2026

Bir ulaşım hizmeti için rezervasyon odaklı site

Tek bir amaca kurulmuş bir site: ziyaretçiyi rezervasyona götürmek. Hizmet anlatımı kısa tutuldu, rezervasyon çağrısı sayfanın her noktasından erişilebilir durumda. Mobil öncelikli kuruldu, çünkü trafiğin tamamına yakını sosyal medyadan telefonla geliyor.

Next.js, TypeScript, Mobil öncelikli

Temelleri çalıştığım projeler

  • React Movie Explorer

    TMDB REST API ile asenkron veri çekme, URL tabanlı durum yönetimi ve dinamik sayfalama. React Router v6.

  • WhereAmI-Earth

    Geolocation, OpenCage Geocode ve REST Countries API'lerini birleştiren, ters coğrafi kodlama yapan asenkron uygulama. Vanilla JavaScript.

  • Personel Yönetim Sistemi

    Nesne yönelimli programlama prensipleriyle C++ dilinde yazılmış konsol uygulaması. Rol ayrımı ve kayıt yönetimi.

Nerede çalıştım

Temmuz 2026, devam ediyor

Full Stack Developer Stajyeri

ideaZone Digital, Avcılar, İstanbul

200+

sayfa

3

dil

4

eş zamanlı müşteri projesi

  • Next.js App Router ve TypeScript ile üç dilli, 200'den fazla sayfalık kurumsal bir siteyi sıfırdan geliştirdim.
  • Dinamik metadata, canonical, hreflang, sitemap ve robots yapılandırmasını; Course, FAQPage ve BreadcrumbList JSON-LD şemalarını kurdum.
  • Lighthouse ve Core Web Vitals metriklerini, görsel optimizasyonunu ve WCAG erişilebilirlik uyumunu iyileştirdim.
  • Devraldığım kod tabanlarını inceleyip kaldıkları yerden geliştirdim, Laravel tabanlı bir projeye kısa sürede adapte oldum.
  • Yayına alma sürecini uçtan uca yürüttüm: Hostinger VPS, Coolify ile CI/CD, Cloudflare DNS, Vercel önizlemeleri ve cPanel.

Ocak 2022, devam ediyor

E-ticaret Operasyon Uzmanı ve Web Geliştirici

Pnrcantaksesuar, Serbest çalışan

  • Node.js, Express, TypeScript, Prisma ORM ve PostgreSQL ile şirketin e-ticaret backend'ini sıfırdan geliştiriyorum.
  • Ürün, kategori, sipariş ve kullanıcı varlıkları arasında ilişkisel veri modelini kurdum.
  • JWT tabanlı kimlik doğrulama, şifre hashleme ve rol bazlı yetkilendirme içeren özel middleware katmanını (isAuth, isRole) tasarladım.
  • Stok ve kategori yönetimini otomatikleştirmek için MongoDB tabanlı bir envanter yönetim sistemi geliştiriyorum.
  • Sanal POS ve kargo API entegrasyonlarını test edip bakımını üstlendim.

Eğitim

Eylül 2022, devam ediyor

Yazılım Mühendisliği, Lisans, İstanbul Sabahattin Zaim Üniversitesi

Neler kullanıyorum

Backend
Node.js, Express.js, RESTful API, JWT, RBAC, Prisma ORM
Veritabanı
PostgreSQL, MongoDB, İlişkisel veri modelleme, Sorgu optimizasyonu
Frontend
TypeScript, React, Next.js (App Router), Three.js, HTML5, CSS3
DevOps
Git, Docker, Coolify (CI/CD), Vercel, Hostinger VPS, Cloudflare, Linux
SEO ve GEO
Dinamik metadata, hreflang, canonical, JSON-LD, Core Web Vitals, WCAG, llms.txt
Şu anda öğreniyorum
C#, .NET Core

Konuşalım

Gerçek bir ürün geliştirme sürecinde backend ve veri modelleme tarafında derinleşebileceğim bir ekip arıyorum.

Küçük bir işletme için siteye ihtiyacınız varsa WhatsApp'tan da yazabilirsiniz.

Enes Şahin2026