Yazılım mühendisi, İstanbul

ÖzgürKarakaya

İstanbul'da backend ağırlıklı junior yazılım mühendisiyim. Java/Spring ve Flutter ile ürünleri sunucudan uygulamaya kadar geliştiriyorum.

Sokak Efsaneleri: hayvanlarla Balat sokağı
Sokak Efsaneleri: bir efsane kedi kartı
Blindy: ana ekrandaki mum ışıklı masa
Blindy
getblindy.app'te kapalı betada
Sokak Efsaneleri
App Store incelemesinde
Surebet Analyzer
kodu GitHub'da

Blindy

İki üniversitelinin yüz görmeden önce yedi dakika anonim sohbet ettiği bir tanışma uygulaması.

  • WebSocket gateway'i Redis pub/sub ile beslenen reaktif bir Java backend'i
  • Yaklaşık 3.200 widget ve golden testiyle korunan Flutter uygulaması
  • Cloudflare arkasında kendi sunucumda çalışıyor, her gece şifreli yedek alınıyor
Proje sayfasını oku: Blindy
Blindy: iki mum ve iki anonim takma adla eşleşme ekranı
Blindy: iki taraf da evet dedikten sonra açılan sohbet
Blindy: anonim sohbetin ikinci turu, bir soruya verilen iki cevap ve ilk buluşma için üç seçenek

Sokak Efsaneleri

İstanbul'un sokak hayvanları üzerine bir kaydır-birleştir bulmacası. 1.0 sürümü Ekim 2026'da App Store incelemesine gönderildi.

  • 500 seviye, her biri genişlik öncelikli (BFS) bir çözücüden geçiyor
  • Zorluk, gerçek oyun verisine göre ayarlanmış sanal bir oyuncuyla ölçülüyor
  • Windows'ta geliştirilip bulut Mac hattıyla iOS'a gönderiliyor
Proje sayfasını oku: Sokak Efsaneleri
Sokak Efsaneleri: tahtada efsane hâline gelen bir kedi
Sokak Efsaneleri: toplanan hayvanların albümü, her biri için dört aşama
Sokak Efsaneleri: sahil yolunda kediler, köpekler ve engellerle bir seviye tahtası

Surebet Analyzer

Birden çok kaynaktaki futbol oranlarını gerçek zamanlı okuyup ima ettikleri olasılıkların toplamı %100'ün altına düşen kombinasyonları işaretliyor.

  • WebSocket, WAMP ve HTTP akışları için asenkron toplayıcılar
  • Dağılım tam sayı kuruşla; elle analiz için kesin bir OR-Tools CP-SAT modeli
  • Backend 1.209 pytest testiyle korunuyor, mypy strict modda tip denetimi
Proje sayfasını oku: Surebet Analyzer
Surebet Analyzer: bulunan fırsatların listesi; bir maç için net farkı gösteren kart
Surebet Analyzer: kaynak sağlığı; her anonim kaynak, akış türü ve etkin olup olmadığı
Surebet Analyzer: tek bir maçın ayrıntısı; hesaplanan net fark ve her biri kendi kaynağından seçilen oranlar, tutarlarıyla birlikte

Nasıl çalışıyorlar

Her proje, verisinin izlediği yola indirgenmiş hâliyle. Proje sayfaları bu yolları adım adım açıyor.

Blindy

tanışma uygulaması, kapalı beta

Proje sayfasını oku
  1. Flutter uygulamasıRiverpod, Dio, WebSocket

    Mesajı kendi kimliğiyle (clientMsgId) core-api'ye gönderir; böylece tekrar deneme kopya oluşturamaz.

  2. core-apiSpring WebFlux, 14 modül

    Mesajı bir kez kaydeder. Aynı kimlikle gelen ikinci istek kayıtlı satırdan yanıtlanır.

  3. Postgres + Rediskalıcı kaydın esas kaynağı, kuyruk, pub/sub

    Postgres o tek satırı tutar; olay, alıcının adını taşıyan Redis kanalına gider.

  4. Sohbet gateway'isoketleri tutar, veritabanı yok

    Karşı tarafın WebSocket'ini hangi gateway tutuyorsa o kanala abonedir ve mesajı iletir.

  5. Karşı telefonWebSocket, çevrimdışıysa Firebase

    Mesajı WebSocket üzerinden alır. Çevrimdışıysa bir Firebase bildirimi onu uyandırır.

Sokak Efsaneleri

mobil oyun, App Store

Proje sayfasını oku
  1. Seviye üreticitohumlu ve deterministik

    Bir tohumdan aday bir tahta kurar. Aynı tohum her zaman aynı tahtayı verir.

  2. BFS çözücüen kısa çözümü bulur

    En kısa çözümü bulur. Seviye yalnızca bu derinlik onluk bloktaki yerine uyuyorsa tutulur.

  3. Unity istemcisiC#, altı katman

    Oyunla birlikte çözülmüş olarak gelir; oyuncu izin verdiyse oynanınca level_start ve level_end gönderilir.

  4. BigQuerygünlük aktarım, seviye hunisi

    Günlük aktarım bu olaylardan, oyuncuların nerede takıldığını gösteren bir seviye hunisi çıkarır.

  5. Remote Config121 canlı parametre

    Oyun 121 parametreyi buradan okur; denge yeni sürüm çıkmadan değişebilir.

Surebet Analyzer

gerçek zamanlı analiz

Proje sayfasını oku
  1. Oran akışlarıWebSocket, WAMP, HTTP

    Bir kaynakta oran değişir. Kaynağa göre WebSocket, WAMP ya da HTTP üzerinden okunur.

  2. Toplayıcılarasyncio, 30 sn'de bir

    Tek bir asyncio döngüsü varsayılan olarak 30 saniyede bir tüm kaynakları aynı anda okur ve partiyi kaydeder.

  3. Maç eşleştiricibulanık ad, başlama ±3 sa

    Aynı maçı diğer kaynaklarda bulur: normalleştirilince uyuşan adlar, en fazla 3 saat arayla başlama saatleri.

  4. Tutar dağılımıtam kuruş, elle analizde CP-SAT

    Her sonuç için bir oranın ima ettiği olasılıkları toplar. Toplam %100'ün altındaysa bütçe tam kuruşlarla bölünür.

  5. PWA + Telegramkullanıcıya özel uyarı

    Maç PWA'da listelenir; eşiğini geçtiği kullanıcılara tek bir Telegram mesajı gider ve oranlar değiştikçe düzenlenir.

Deneyim

  1. Tem – Eyl 2026

    Yazılım Geliştirme StajyeriFintecia

    Java ve Spring ile yazılmış, üretimdeki bir çekirdek bankacılık platformunda backend geliştirme. Canlı servisleri geriye uyumluluğu bozmadan genişlettim, büyük bir kod tabanında derleme ve bağımlılık sorunlarını çözdüm, analiz ve test verisi için çok tablolu Oracle SQL sorguları yazdım.

  2. Ağu 2025 – Oca 2026

    Flutter Geliştirici, serbestRootraft Coffee App

    Flutter ve Firebase ile çapraz platform özellikler: giriş, Firestore, anlık bildirimler, QR ile işlem, Google Maps ve Iyzico ödeme.

  3. Haz – Ağu 2025

    Online StajyerFLO Group

    ERP, tedarik zinciri ve e-ticaret eğitimi. Bir stok takip projesi tasarlayıp sundum.

  4. 2022 – 2026

    Bilişim Sistemleri ve Teknolojileri, lisansYeditepe Üniversitesi

    Blindy burada bitirme projem olarak başladı.

Kullandıklarım

Backend
Java 17, Spring Boot, Spring WebFlux, R2DBC, REST ve OpenAPI, WebSocket
Veri
PostgreSQL, Redis, Oracle SQL, SQLite, BigQuery
Mobil ve web
Flutter, Riverpod, React, TypeScript, Next.js
Oyun
Unity 6, C#
Python
FastAPI, asyncio, OR-Tools, pytest, Hypothesis
Altyapı
Docker Compose, Caddy, Cloudflare, GitHub Actions, Codemagic, Firebase
Yapay zekâ ile çalışma
Her gün Claude Code ve Codex; her depoda yazılı ajan talimatları

Backend ya da mobil tarafta birini mi arıyorsunuz?

Backend ağırlıklı bir junior yazılım mühendisi pozisyonu arıyorum. Bana en hızlı e-postayla ulaşırsınız.

ozgur.karakayabs@gmail.com

Mesai dışında

DJ'lik

DJ'lik yapıyorum, setlerim SoundCloud'da.

Oynatıcı, soundcloud.com'dan yalnızca bu düğmeye bastığınızda yüklenir.

Fotoğrafçılık

Şehirde çektiğim fotoğraflar.

Daha fazlası Instagram'da