Sertaç Yıldırımsaha notları
Sertaç Yıldırım

Hakkımda

Engineering Manager · Dağıtık Sistemler · Yüksek Trafik

Ben Sertaç. Yirmi yıldır bu sektördeyim. Kod yazarak başladım; bugün işimin büyük kısmı yüksek trafikli sistemlerin mimarisini kurmak ve o sistemleri kuran ekipleri büyütmek. Aradaki yolda öğrendiğim en kalıcı şey şu oldu: teknik problemlerin çoğu aslında ekip problemi, ekip problemlerinin çoğu da aslında iletişim problemi.

Yirmi yıl uzun bir süre ve bu sürede birbirine hiç benzemeyen alanlarda çalıştım: e-ticaret, savunma sanayi, otomotiv, perakende ve finans. Her birinin kendine has bir baskısı var — birinde kampanya saatindeki trafik patlaması, birinde milisaniyelerle ölçülen gecikme, birinde gizlilik ve süreç disiplini, birinde stok tutarlılığı, birinde onlarca eski sistemle entegrasyon.

Bu kadar farklı yerde çalışmanın bana öğrettiği şey ise beklediğimin tersiydi: problemler tekrar ediyor. Araçlar, diller ve sektörler değişiyor ama sistemler hep aynı yerlerden kırılıyor — aynı anda yapılan iki yazma, sınırsız bırakılmış bir kuyruk, sağlıklı görünen ölü bir servis, ve konuşulmayan bir varsayım. Bu sitedeki yazıların çoğu tam olarak o tekrar eden yerler hakkında.

Nereden geliyorum

Kariyerimin dönüm noktası, kurumsal bir müşteride tek kişilik bir projeyle başlayan işti. Tek geliştirici bendim, tek proje vardı ve müşteriyle ayda bir toplanıyorduk. İlk teslimde duyduğum cümle bugün hâlâ aklımda: “Çalışıyor ama biz bunu böyle kullanmıyoruz.”

Ondan sonra tek bir şeyi değiştirdim — müşteriyi iki haftada bir gerçek ekranın karşısına oturttum. Dört yılın sonunda 1 proje 9 projeye, 1 kişilik ekip 14 kişiye çıkmıştı ve gelen yeni işlerin hiçbiri için teklif sunumu hazırlamamıştım; hepsi ürünü kullanan insanların kendi şirketlerinde bizi savunmasıyla geldi. O deneyimin tamamını şu yazıda anlattım.

Bugün ağırlıklı olarak yüksek trafikli altyapılar üzerinde çalışıyorum: saniyede on binlerce mesaj taşıyan akışlar, gerçek zamanlı veri işleme ve dağıtık sistemlerin yük altında gerçekte nasıl davrandığı. Bu alanın öğrettiği tek cümlelik ders şu: ortalama gecikme yalan söyler, uçlar (tail latency) söylemez.

Neye odaklanıyorum

Dağıtık sistemlerde doğruluk

Eşzamanlılık, teslim garantileri, idempotency ve kilitler. Yani “çalışıyor gibi görünen ama yük altında bozulan” şeyler.

Yük altında ayakta kalmak

Ölçekleme bir kapasite çözümü, performans çözümü değil. Darboğazı taşımadan önce nerede olduğunu ölçmek.

Ekip kurmak ve büyütmek

İşe alım, kıdemleşme, geri bildirim ve bir ekibi 1’den 14’e çıkarırken nelerin kırıldığı.

Süreci ekibe uydurmak

Scrum’ı kitaba göre değil, ekibin gerçek sorununa göre uygulamak. Seremoni sayısı çeviklik göstergesi değil.

Yapay zekayla çalışmak

Kod yazmak ucuzladı, doğrulamak pahalandı. Ekipte bunun ritüellerini kurmak ve junior’ın öğrenme yolunu korumak.

Kararın gerekçesini bırakmak

Altı ay sonra “bunu neden böyle yaptık” diye soran kişi genelde sen oluyorsun. Cevabı bir yere yazmak en ucuz yatırım.

Burada ne yazıyorum

Bu site, sahada karşılaştığım şeylerin notları. Kitapta güzel görünen bir şeyin gerçekte nasıl işlediğini — ve nerede kırıldığını — yazmaya çalışıyorum. Üç başlık altında:

  • Scrum ve süreç — seremonilerin tek tek ne işe yaradığı, nasıl bozulduğu ve yarın sabah ne yapman gerektiği.
  • Ekip yönetimi — zor konuşmalar, performans, otoritenin yerini alan şeyler.
  • Teknik — eşzamanlılık, dağıtık sistemler, mesajlaşma, ölçekleme; hepsi gerçek olaylar ve kod örnekleriyle.

Yazıların hepsinde bir kontrol listesi var. Acelen varsa sadece onları okuyup ekibinle paylaşabilirsin; zaten çoğu yazının asıl işe yarayan kısmı orası.

Yazarken tek kuralım

Başıma gelmemiş bir şeyi anlatmıyorum. Her yazının içindeki olay gerçek, rakamlar gerçek, hatalar da benim. İşe yaramadığı görülen şeyleri de yazıyorum — onlar genelde daha faydalı oluyor.

İletişim

Yazdıklarım hakkında bir itirazın, bir düzeltmen ya da benzer bir deneyimin varsa duymak isterim.