Batuhan Baysal
Software Engineer | Java, Spring Boot & Distributed Systems Specialist
Veri butunlugu, sistem dayanikliligi (resilience) ve yuksek erisilebilirlik odakli, kurumsal standartlarda backend mimarileri gelistiren bir yazilim muhendisiyim.
Mimari Yaklasim & Muhendislik Disiplini
Projelerimi gelistirirken "calisan kod"un otesine gecerek, endustriyel standartlarda (Enterprise-ready) sistemler insa etmeye odaklanirim:
- Security & Identity Management: Guvenligi merkezi bir katman olarak kurgularim. Keycloak (OIDC/OAuth2) ile IAM altyapisi olusturuyor; JWT, RBAC ve Resource Ownership kontrolleriyle uctan uca koruma sagliyorum.
- Reliability & Event-Driven Design: Dagitik mimarilerde RabbitMQ ile asenkron iletisim kurguluyor, Resilience4j (Circuit Breaker, Rate Limiter) kullanarak sistemin cascade failure (zincirleme cokme) risklerini yonetiyorum.
- LGTM Stack Observability: "Gozlemlenemeyen sistem, kontrol edilemeyen sistemdir." Grafana Loki (Logging), Prometheus (Metrics) ve Zipkin/Tempo (Tracing) ile sistemin runtime sagligini tam seffaflikla izliyorum.
Amiral Gemisi Projem: Secure Banking Core
Finansal veri butunlugu ve yuksek concurrency (eszamanlilik) problemlerine cozum olarak tasarlanmis kurumsal bir backend motorudur.
Teknik Zorluklar & Muhendislik Cozumleri
-
Zorluk: Deadlock (Karsilikli Kilitlenme) Algoritmasi
- Problem: Iki kullanicinin eszamanli olarak birbirine transfer baslatmasi durumunda olusan dairesel beklemeyi (circular wait) cozmek.
- Cozum: Alphabetical Resource Ordering stratejisini uyguladim. Kaynaklari alfabetik IBAN sirasina gore kilitleyerek deadlock olasiligini mimari seviyede elimine ettim.
-
Zorluk: Race Condition & Data Consistency
- Problem: Yuksek trafikli para transferlerinde "Double Spending" riskini onlemek.
- Cozum: Pessimistic Write Locking ve Transaction Isolation seviyelerini optimize ederek bakiye operasyonlarini atomik hale getirdim.
-
Zorluk: Infrastructure Synchronization
- Problem: Veritabani sema degisikliklerinin farkli ortamlarda manuel yonetiminden dogan tutarsizliklar.
- Cozum: Liquibase ile "Migration-based" sema yonetimi kurguladim ve CI/CD sureclerini otomatize ettim.
Yetkinlik Matrisi & Stratejik Kararlar
| Katman | Teknoloji | Muhendislik Gerekcesi (Why?) |
|---|---|---|
| Identity | Keycloak & OAuth2 | Kimlik yonetimini servis kodundan ayirmak ve profesyonel bir IAM (Identity Access Management) cozumu sunmak icin. |
| Observability | Loki, Prometheus, Tempo | Log, Metrik ve Trace verilerini korele ederek hata tespit suresini (MTTR) minimize etmek icin. |
| Persistence | PostgreSQL & Redis | Iliskisel veri tutarliligi icin PostgreSQL; performans darbogazlarini asmak adina Redis caching katmani icin. |
| Messaging | RabbitMQ | Servisler arasi siki bagimliligi (Tight Coupling) kirmak ve hata toleransli event-driven is akislari icin. |
| Resilience | Resilience4j | Dagitik sistemlerde ag gecikmeleri veya servis kesintilerine karsi sistem dayanikliligini korumak icin. |
| Quality Gate | SonarQube & JUnit 5 | Statik kod analizi ve %100 test coverage ile teknik borclanmayi (Technical Debt) onlemek icin. |
Diger Stratejik Projeler
- Spring Cloud Observability: Dagitik sistemlerde hata takibi (distributed tracing) uzerine LGTM Stack kullanarak kurguladigim monitoring altyapisi.
- Secure Note App (Full-Stack): Spring Security ve React.js entegrasyonu ile JWT tabanli stateless guvenlik ve RBAC modellemesi.
- Auth & Notification Microservice Stack: Redis tabanli caching ve RabbitMQ ile asenkron mesajlasma uzerinden servisler arasi iletisimi (decoupling) optimize ettigim mikroservis calismasi.
- AWS Parameter Store Integration: Konfigurasyon yonetimini bulut ortamina (AWS) tasiyarak "Externalized Configuration" prensibini uyguladigim proje.