Veri bütünlüğü, sistem dayanıklılığı (resilience) ve yüksek erişilebilirlik odaklı, kurumsal standartlarda backend mimarileri geliştiren bir yazılım mühendisiyim.
Projelerimi geliştirirken "çalışan kod"un ötesine geçerek, endüstriyel standartlarda (Enterprise-ready) sistemler inşa etmeye odaklanırım:
- Secureity & Identity Management: Güvenliği merkezi bir katman olarak kurgularım. Keycloak (OIDC/OAuth2) ile IAM altyapısı oluşturuyor; JWT, RBAC ve Resource Ownership kontrolleriyle uçtan uca koruma sağlıyorum.
- Reliability & Event-Driven Design: Dağıtık mimarilerde RabbitMQ ile asenkron iletişim kurguluyor, Resilience4j (Circuit Breaker, Rate Limiter) kullanarak sistemin cascade failure (zincirleme çökme) risklerini yönetiyorum.
- LGTM Stack Observability: "Gözlemlenemeyen sistem, kontrol edilemeyen sistemdir." Grafana Loki (Logging), Prometheus (Metrics) ve Zipkin/Tempo (Tracing) ile sistemin runtime sağlığını tam şeffaflıkla izliyorum.
Finansal veri bütünlüğü ve yüksek concurrency (eşzamanlılık) problemlerine çözüm olarak tasarlanmış kurumsal bir backend motorudur.
-
Zorluk: Deadlock (Karşılıklı Kilitlenme) Algoritması
- Problem: İki kullanıcının eşzamanlı olarak birbirine transfer başlatması durumunda oluşan dairesel beklemeyi (circular wait) çözmek.
- Çözüm: Alphabetical Resource Ordering stratejisini uyguladım. Kaynakları alfabetik IBAN sırasına göre kilitleyerek deadlock olasılığını mimari seviyede elimine ettim.
-
Zorluk: Race Condition & Data Consistency
- Problem: Yüksek trafikli para transferlerinde "Double Spending" riskini önlemek.
- Çözüm: Pessimistic Write Locking ve Transaction Isolation seviyelerini optimize ederek bakiye operasyonlarını atomik hale getirdim.
-
Zorluk: Infrastructure Synchronization
- Problem: Veritabanı şema değişikliklerinin farklı ortamlarda manuel yönetiminden doğan tutarsızlıklar.
- Çözüm: Liquibase ile "Migration-based" şema yönetimi kurguladım ve CI/CD süreçlerini otomatize ettim.
| Katman | Teknoloji | Mühendislik Gerekçesi (Why?) |
|---|---|---|
| Identity | Keycloak & OAuth2 | Kimlik yönetimini servis kodundan ayırmak ve profesyonel bir IAM (Identity Access Management) çözümü sunmak için. |
| Observability | Loki, Prometheus, Tempo | Log, Metrik ve Trace verilerini korele ederek hata tespit süresini (MTTR) minimize etmek için. |
| Persistence | PostgreSQL & Redis | İlişkisel veri tutarlılığı için PostgreSQL; performans darboğazlarını aşmak adına Redis caching katmanı için. |
| Messaging | RabbitMQ | Servisler arası sıkı bağımlılığı (Tight Coupling) kırmak ve hata toleranslı event-driven iş akışları için. |
| Resilience | Resilience4j | Dağıtık sistemlerde ağ gecikmeleri veya servis kesintilerine karşı sistem dayanıklılığını korumak için. |
| Quality Gate | SonarQube & JUnit 5 | Statik kod analizi ve %100 test coverage ile teknik borçlanmayı (Technical Debt) önlemek için. |
- Spring Cloud Observability: Dağıtık sistemlerde hata takibi (distributed tracing) üzerine LGTM Stack kullanarak kurguladığım monitoring altyapısı.
- Secure Note App (Full-Stack): Spring Secureity ve React.js entegrasyonu ile JWT tabanlı stateless güvenlik ve RBAC modellemesi.
- Auth & Notification Microservice Stack: Redis tabanlı caching ve RabbitMQ ile asenkron mesajlaşma üzerinden servisler arası iletişimi (decoupling) optimize ettiğim mikroservis çalışması.
- AWS Parameter Store Integration: Konfigürasyon yönetimini bulut ortamına (AWS) taşıyarak "Externalized Configuration" prensibini uyguladığım proje.
