İçeriğe geç
UA.

Yeni fırsatlara açığım

Utku Altınay

Full-Stack Geliştirici

Çok platformlu sistemler kuruyorum — merkezde tek bir .NET API, çevresinde native iOS, Android ve React istemciler.

SwiftUI · Kotlin · ReactC# .NET APIMySQL

Geliştirilen proje

5

Kullanılan dil

4

Yıldır kod yazıyorum

5+

Ay kurumsal BT deneyimi

9

Şu anda

İstanbul Medipol Üniversitesi — Yönetim Bilişim Sistemleri. Tam zamanlı rollere ve seçili serbest işlere açığım.

Konum

İstanbul, Türkiye

01 — Hakkımda

Nereden geliyorum

İstanbul'da yaşayan bir full-stack geliştiriciyim. Buraya birbirini tamamlayan iki yoldan geldim: İstanbul Arel'de Bilgisayar Programcılığı ön lisansı ve İstanbul Medipol'de Yönetim Bilişim Sistemleri. Bu karışım, tersi yerine önce iş sürecinden başlayıp mimariye doğru çalışmamın sebebi.

Yaptığım işlerin çoğu çok platformlu. Ortada MySQL ile çalışan bir C# .NET API, çevresinde Kotlin, Swift ve React istemciler duruyor. O sınırı iyi tasarlamak — tek sözleşme, birbirinden çok farklı üç tüketici — işin en keyif aldığım kısmı.

Bir de işin parlak olmayan kısımlarını otomatikleştiriyorum. n8n akışları, NFC ile yorum toplama ve WebAR menüler; hepsi birinin bana tek cümleyle anlattığı bir küçük işletme problemi olarak başladı.

02 — Yetenekler

Neyle çalışıyorum

Her parça, yığının neresinde durduğuna göre gruplandı. Üzerine gelerek ya da odaklanarak onunla gerçekte ne yaptığımı görebilirsin — arkasında proje olmayan bir rozet kanıt değil, süstür.

  • Çekirdek — her gün elimin gittiği yer
  • Yetkin — canlıya çıkmış iş yaptım
  • Aşina — kullandım, hâlâ öğreniyorum

Backend

Her istemcinin dayandığı sözleşme.

  • C# / .NETÜç istemci platformuna hizmet veren, JWT tabanlı kimlik doğrulamalı REST API.
  • MySQLFitApp API'sinin arkasındaki ilişkisel şema tasarımı ve sorgu iyileştirme.
  • PostgreSQLArMenu API'sinin arkasında satır düzeyi güvenlik ve EF Core migration'ları.
  • PythonBetikler, veri düzenleme ve servisler arası tutkal kod.
  • REST API DesigniOS, Android ve web'in dallanmadan tükettiği tek bir sözleşme.

Frontend

Tipli, erişilebilir ve hızlı kalan arayüzler.

  • TypeScriptStrict mod, `any` yok — tip katmanı dokümantasyonun kendisi.
  • ReactFitApp web istemcisi ve Revio paneli için bileşen mimarisi.
  • Next.jsApp Router, server component'ler ve Vercel üzerinde statik render.
  • JavaScriptBu listedeki diğer her şeyin altındaki dil.
  • Tailwind CSSCSS değişkeni olarak tasarım token'ları; ikinci bir stil dosyası olmadan karanlık mod.

Mobil

Her iki platformda da native; sarmalayıcı değil.

  • Swift & SwiftUIFitApp iOS istemcisi — MVVM, Swift Charts, asenkron ağ katmanı.
  • Kotlin & AndroidNative Android istemciler ve Firebase tabanlı bir talep takip aracı.

Araçlar ve Otomasyon

Yayına almak ve kimsenin tekrarlamak istemediği işi ortadan kaldırmak.

  • GitÖzellik başına dal, okunabilir geçmiş, incelenebilir diff'ler.
  • DockerChiseled .NET imajları ve ArMenu için tekrar üretilebilir yerel ortam.
  • n8nKüçük işletme operasyonları için iş akışı otomasyonu.
  • SupabaseBir proje kendi API'sini hak etmediğinde Postgres, kimlik doğrulama ve depolama.
  • FirebaseBT Destek Android istemcisi için gerçek zamanlı veri ve kimlik doğrulama.
  • VercelBuradaki her web projesi için önizleme dağıtımları ve edge teslimi.

03 — Projeler

Geliştirdiklerim

Hepsi birinin gerçekten yaşadığı bir problemle başladı. Her kart bir vaka çalışmasına açılıyor: mimari ve arkasındaki kararlar.

FitApp panosu aynı anda web'de, iOS'ta ve Android'de.
CanlıFull-stackMay 2026 — Devam ediyor

FitApp

Tek bir .NET API, üç native istemci ve insanı geri getiren alışkanlıklar.

Problem
Form takibi verisi ancak cihazı değil kişiyi takip ettiğinde işe yarar — ve ikinci haftadan sonra kimsenin açmadığı bir takip uygulaması hiç işe yaramaz. Aynı özellik setini platform başına bir kez, üç kez yazmak üç ayrı doğruluk kaynağı ve üç ayrı hata kümesi demekti; yalnızca takibi yazmak ise geri dönmek için sebebi olmayan bir uygulama demekti.
Ne yaptım
Tek doğruluk kaynağı olarak MySQL üzerinde çalışan bir C# .NET 8 API, üzerinde ince istemciler: iOS'ta SwiftUI, Android'de Kotlin, web'de Next.js. Öğün, su, adım ve antrenman kaydının ötesinde, alışkanlık hâline getiren kısmı da sunucu yürütüyor — Gemini destekli bir koç, günlük ve arkadaş görevleri, mağazası olan bir altın bakiyesi, liderlik tablosu ve SignalR üzerinden sohbet. Kimlik doğrulama, doğrulama ve her kural API'de; istemciler durumu gösterip girdi topluyor.
  • C#
  • Swift
  • Kotlin
  • TypeScript
  • .NET 8
  • SwiftUI
  • Next.js
  • EF Core
  • SignalR
  • MySQL
  • AWS
  • JWT
Vaka çalışmasını oku
Revio ana sayfası: "Müşterinizin ne düşündüğünü, masadan kalkmadan öğrenin."
CanlıSaaSOca 2025 — Devam ediyor

Revio

Tezgâhtaki bir dokunuştan müşteri geri bildirimi — uygulama yok, kayıt yok.

Problem
Bir kafe ya da kuaför, ziyaretin kötü geçtiğini tek yıldızlı yorum çoktan yayımlandığında öğreniyor. Tezgâhta sormak da pek işe yaramıyor: dürüst cevap, insanların yüzünüze söylemeyeceği cevaptır. Diğer her yol — işletmeyi bul, giriş yap, bir şeyler yaz — ilk dokunuştan önce neredeyse herkesi kaybediyor.
Ne yaptım
Çok kiracılı bir SaaS. Her işletme tezgâhı ve masaları için NFC kartlar alıyor; müşteri telefonunu kartlardan birine yaklaştırıyor, ziyareti birkaç saniyede puanlıyor ve isterse not bırakıyor — hiçbir şey kurmadan, hesap açmadan. Dokunuşun arkasında temiz mimariyle yazılmış bir .NET 8 API var: MediatR üzerinden CQRS, MySQL üzerinde EF Core, sıcak yolda Redis ve gece boyunca Google Business Profile yorumlarını çeken Hangfire. Üstünde ise puanların, notların ve Google yorumlarının masaya, kasaya ve personele göre ayrılarak buluştuğu bir React paneli.
  • C#
  • TypeScript
  • .NET 8
  • MediatR
  • EF Core
  • React
  • Tailwind CSS
  • MySQL
  • Redis
  • NFC / NDEF
  • Google Business Profile API
  • Hangfire
  • Docker
Vaka çalışmasını oku
ArMenu işletme paneli ile yanında 3B burger ve AR butonu gösteren misafir uygulaması.
CanlıSaaSEyl 2026 — Devam ediyor

ArMenu

Çok kiracılı QR menüler, tarayıcı içinde AR — kurulacak uygulama yok.

Problem
Basılı bir menü, misafire yemeğin neye benzediğini gösteremez, onun dilinde okunamaz ve yeniden bastırılmadan değiştirilemez. Buna verilen her dijital cevap misafirden bir şey kurmasını ister; restoran masasında fikrin öldüğü yer de tam olarak orasıdır.
Ne yaptım
Çok kiracılı bir B2B SaaS. Misafir masadaki QR kodu okutuyor, menüyü kendi dilinde okuyor ve model-viewer üzerinden yemeği artırılmış gerçeklikle masaya koyuyor — hem de zaten açık olan tarayıcısında. Arkasında: PostgreSQL üzerinde bir .NET 10 API ve yüklenen 3B modeli optimize edilmiş GLB, USDZ ve poster görsellerine dönüştüren ayrı bir Node servisi.
  • C#
  • TypeScript
  • .NET 10
  • ASP.NET Core
  • EF Core
  • React 19
  • Tailwind CSS
  • PostgreSQL
  • S3 storage
  • WebAR
  • Docker
  • OpenTelemetry
Vaka çalışmasını oku
İki telefonda yan yana bir karakter sayfası ve pixel-art savaş arenası.
CanlıFull-stackHaz 2026 — Devam ediyor

TTRPG Companion

Bir masaüstü kampanyası için gerçek zamanlı masa — ve kimsenin güvenmek zorunda olmadığı bir sunucu.

Problem
Bir masaüstü kampanyası yürütmek; canları, inisiyatif sırasını, envanteri, durum etkilerini ve ilişkileri kâğıt fişler ile grup sohbeti arasında takip etmek demek. Masanın bir kısmı uzaktayken bütün o ortak durum tek bir kişinin aklında yaşıyor — her zar atışı da öyle, ve geri kalan herkesin buna inanmaktan başka seçeneği yok.
Ne yaptım
Arkadaşlarımla yürüttüğüm kampanya için sıra tabanlı bir yardımcı. Tek bir Expo istemcisi — iOS, Android ve react-native-web sayesinde düz bir tarayıcı bağlantısı — SignalR hub'ı üzerinden bir .NET 8 API ile konuşuyor; böylece her oyuncu aynı fişleri, aynı inisiyatif sırasını ve aynı savaş turunu olduğu anda görüyor. Kurallar sunucuda: zar, savaş fazları, özellikler, durum etkileri, tetiklenen tepkiler, arena düzenleyicileri ve bir gün-dinlenme döngüsünü kapsayan kırk civarı domain servisi.
  • TypeScript
  • C#
  • React Native
  • Expo
  • .NET 8
  • SignalR
  • EF Core
  • PostgreSQL
  • SQLite
  • Railway
Vaka çalışmasını oku

Also built

BT Destek'in arkasındaki varlık-ilişki diyagramı: kullanıcılar, talepler, konular ve mesajlar.
ArşivlendiMobilEyl 2024 — Ara 2024

BT Support

Şirket içi BT ekipleri için talep takibi yapan bir Android uygulaması.

Problem
Stajım sırasında destek taleplerinin telefonla, sohbet mesajıyla ve koridor konuşmasıyla geldiğini gördüm. Hiçbiri kayda geçmiyordu, dolayısıyla hiçbiri önceliklendirilemiyordu.
Ne yaptım
Çalışanların talep açtığı, BT ekibinin ise tek bir önceliklendirilmiş kuyruk gördüğü native bir Android uygulaması; gerçek zamanlı güncellemeler ve kimlik doğrulama için Firebase ile.
  • Kotlin
  • Android SDK
  • Firebase
Vaka çalışmasını oku

04 — Deneyim

İş ve eğitim, sırasıyla

İki derece ve bir kurumsal BT katı, büyük ölçüde iç içe. Analitik taraf ile mühendislik tarafı aynı anda geldi.

  1. Lisans

    ·İstanbul Medipol Üniversitesi

    Eyl 2023 — Devam ediyorYönetim Bilişim Sistemleri

    Analitik tarafın geldiği yer: süreç modelleme, veri yönetimi ve kod yazmadan önce bir iş gereksinimini okuyabilmek.

  2. BT Destek Stajyeri

    ·İnnova Bilişim Çözümleri

    Eyl 2022 — Haz 2023Staj · İstanbul, Türkiye

    Büyük bir sistem entegratörünün BT operasyonlarında on iki ay — dokuz ay uzun dönem, artı üç aylık staj.

    • Şirket içi kullanıcıların birinci ve ikinci seviye destek taleplerini karşıladım; yukarı taşımadan önce sorunu kendim tekrar ürettim.
    • Kurumsal bir talep takip ve envanter sürecinin içinde günlük olarak çalıştım — sonradan kendi talep takip aracımı yazmamın doğrudan sebebi bu.
    • Windows Server
    • Active Directory
    • Ticketing systems
  3. Ön Lisans

    ·İstanbul Arel Üniversitesi

    Oca 2021 — Oca 2023Bilgisayar Programcılığı

    Mühendislik temeli: algoritmalar, veritabanları ve nesne yönelimli tasarım.

05 — İletişim

Konuşalım

Tam zamanlı rollere ve ilgi çekici serbest işlere açığım. Bir sayfadan çok mimari isteyen bir probleminiz varsa, dinlemek isterim.

Elsewhere

Based in

İstanbul, Türkiye

A direct email always reaches me. The form goes to the same inbox — use whichever you prefer.