Blog / Turnuvalar / Röportaj Rehberi: Turnuva Yazılımı Mühendisine Sorulacak 12 Kritik Soru — Hata, Log'lar, Veri Kurtarma ve Şeffaflık
Röportaj Rehberi: Turnuva Yazılımı Mühendisine Sorulacak 12 Kritik Soru — Hata, Log'lar, Veri Kurtarma ve Şeffaflık
Turnuvalar

Röportaj Rehberi: Turnuva Yazılımı Mühendisine Sorulacak 12 Kritik Soru — Hata, Log'lar, Veri Kurtarma ve Şeffaflık

Giriş: Turnuva platformları, canlı oyun akışları, eşleştirme (matchmaking), skor güncellemeleri ve ödül dağıtımları gibi kritik iş akışlarını yönetir. Bu sistemlerde yaşanacak bir hata, yüzlerce ya da binlerce oyuncunun deneyimini etkileyebilir ve hatta hukuki ya da finansal sonuçlar doğurabilir. Bu nedenle turnuva yazılımı mühendislerini mülakat ederken sadece teknik yeterlilik değil; hataların izlenmesi, loglama stratejileri, veri kurtarma planları ve şeffaflık ilkeleri hakkında da derinlemesine soru sormak gerekir.

Neden bu sorular önemli?

Kısa cevap: Turnuva sistemleri yüksek kullanılabilirlik, doğruluk ve izlenebilirlik gerektirir. Adayın bir özelliği nasıl tasarladığı veya bir hatayı nasıl ele aldığı, gerçek operasyonel olgunluğunu gösterir. Aşağıdaki sorular, adayın hem teknik bilgi hem de operasyonel düşünme becerisini ortaya çıkarır.

Genel Mülakat İpuçları

  • Behavioral + Technical karışımı: Her soruda önce teknik yaklaşımını sorun, sonra gerçek örnek isteyin.
  • Follow-up'lerle derinleşin: "Peki o durumda log'a ne yazdırdınız?" gibi somut takipler sorun.
  • Red flags: "Log yok", "yerel dosya" veya "yedek yok" gibi cevaplar kritik uyarılardır.

12 Kritik Soru ve Açıklamaları

1) Sisteminizde hata tespiti (exception) ve beklenmeyen durumları nasıl logluyorsunuz?

Açıklama: Hangi log kütüphanesini, hangi seviyeleri (INFO, WARN, ERROR, DEBUG) ve hangi formatı (structured JSON vs free text) tercih ediyor? Ayrıca kimlik bilgilerinin (PII) loglara yazılmaması gibi gizlilik yaklaşımlarını sorun.

  • Follow-up: Hangi meta verileri (request id, user id, match id, timestamp, shard) log'a ekliyorsunuz?
  • Red flag: "Sadece print yapıyoruz" veya "loglarımız okunaksız".

2) Gerçek zamanlı olaylarda (ör: eşleştirme hatası) izleme ve alarm stratejiniz nasıl?

Örnek: Latency artışı, başarısız eşleşme oranı veya event drop tespitinde hangi metrikler izlenir, nasıl threshold belirlenir, hangi durumlarda on-call tetiklenir.

  • Follow-up: Bir incident playbook'unuz var mı? Otomasyonla rollback veya circuit breaker kullanıyor musunuz?

3) Log'lardan somut bir olay tespit ettiğinizde ilk üç adımınız ne olur?

Bu soruyla kandidatın olay müdahale adımlarını (triage, containment, root cause analysis) değerlendirin. Acil müdahale ile uzun vadeli düzeltme arasındaki farkları bilmesi önemli.

4) Log seviyelerini ve log maliyetlerini nasıl dengeliyorsunuz?

Turnuva sistemleri yüksek hacimli log üretir. Adayın sampling, dynamic log level, retention policy ve log aggregation maliyetlerini optimize etme yöntemlerini sormak gerekir.

5) Veri kaybı senaryosunda (DB corruption, storage failure) veri kurtarma planınız nedir?

Yedekleme sıklığı, point-in-time recovery, replication stratejileri ve test edilmiş kurtarma prosedürleri hakkında bilgi isteyin. "Yedek alıyoruz"dan öteye geçmesini bekleyin.

  • Follow-up: Kurtarma süresini (RTO) ve kabul edilebilir veri kaybını (RPO) nasıl belirlediniz?

6) Transactional integrity (örn. ödül dağılımı) nasıl garanti edilir?

Dağıtık sistemlerde eşzamanlılık, idempotency, eventual consistency ve compensating transactions konularındaki yaklaşımlarını sorun. Ödül tekrar ödemesi veya ödeme atlanması gibi durumlarda nasıl davranılır?

7) Logların güvenirliği: Log kaybı ya da gecikmesi varsa ne yaparsınız?

Adayın buffering, backpressure, retry politikaları ve durable queue (Kafka, Pulsar vb.) kullanımı hakkındaki yaklaşımı önemlidir. Ayrıca log pipeline'da monitor edilen SLA'lar olmalı.

8) Şeffaflık: Kullanıcılar veya organizasyon karşısında hata raporlama politikanız nedir?

Turnuva sonuçları ve hatalar kullanıcıları doğrudan etkiler. Adayın iletişim planı (status page, incident notes, post-mortem) ve veri açıklama politikası hakkında konuşun.

9) Post-mortem kültürü: Bir incident sonrası nasıl hareket ediyorsunuz?

Root cause analysis, blameless post-mortem, action item takibi ve tekrar oluşumu önleme yaklaşımlarını sorun. Somut örnek isteyin.

10) Log analizi ve adli inceleme (forensics) yapabilecek misiniz?

Adli analiz için immutable logs, tam zaman damgası senkronizasyonu (NTP), ve inceleme araçları gereklidir. Adayın geçmişte bir dolandırıcılık ya da hile vakasını loglardan nasıl çözdüğünü sorun.

11) Veritabanı hatalarında (split-brain, replication lag) nasıl hareket edersiniz?

Bunlar özellikle dağıtık eşleştirme ve skor tablolarında kritik. Failover stratejileri, quorum, ve read/write yönlendirme hakkında detay isteyin.

12) Güvenlik ve gizlilik: Log'larda hangi verileri saklamazsınız, kim erişebilir?

PII ve ödeme bilgilerinin maskelenmesi, erişim denetimleri, audit logları ve veri saklama süreleri hakkında net bir politika bekleyin.

Beklenen iyi cevap örneği (kısa)

İyi bir aday: Logları structured JSON formatında, request_id ve match_id gibi correlation id'ler ile üretir; yüksek hacim için sampling uygular; Kafka ile durable pipeline kurar; günlük/haftalık yedek alma politikasını RTO/RPO ile ilişkilendirir; blameless post-mortem yapar; status page ve kullanıcı bildirimi politikasına sahiptir.

Pratik küçük test önerileri

  1. Canlı bir küçük incident senaryosu verin: "Bir turnuvada ödül hesaplaması yanlış" — adaydan loglardan root cause çıkarıp adımları yazmasını isteyin.
  2. Log örneği verin ve anormallikleri bulması için 5 dakika verin.
  3. Küçük bir DR planı yazdırın: 24 saat içindeki RTO/RPO hedeflerine nasıl ulaşır?

Sonuç

Turnuva yazılımı mühendisliği teknik becerinin ötesinde operasyonel olgunluk, hata yönetimi kültürü ve şeffaf iletişim gerektirir. Bu 12 soru, adayın sistem tasarımından günlük operasyonlara, güvenlikten kullanıcı iletişimine kadar kapsamlı bir değerlendirme yapmanızı sağlar. Mülakatı vaka çalışmaları ve gerçek örneklerle desteklerseniz, adayların sahadaki yetkinliklerini çok daha güvenilir şekilde ölçersiniz.

İyi bir mühendis: hatayı saklamaz, izler, düzeltir ve kullanıcılara dürüstçe bilgi verir.