🏢 PLAZA KRONİĞİ
AKSIYON ALALIM

Türkiye'nin Kurumsal Hayat Sosyolojisi, Plaza Kulisleri & Açık Ofis Mitolojisi

Kurumsal Kulis 🏢 İTÜ ARI Teknokent, Maslak 1453, Kolektif House Levent

Performans Notu Kırılan Kıdemli Yazılımcının Gizli Kod Sabotajı

Yıl sonu kalibrasyonunda notu 2'ye çekilip enflasyon altı zamma mahkûm edilen yedi yıllık backend mimarının mikroservis altyapısına gömdüğü sinsi gecikmeler ve prodüksiyon krizi.

📌 Yazısız Plaza Kanunu: "Bana yüzde 20 zam reva gören şirkete, 500 milisaniyelik gecikmeyle yanıt verdim. Kod çalışır ama fatura kabarır."
AA Aksiyon Alalım Masası
Dosya kodu: performans-notu-kirilan-kidemli-yazilimcinin-gizli-kod-sabotaji
Performans Notu Kırılan Kıdemli Yazılımcının Gizli Kod Sabotajı

I. Maslak’ta Saat 11.20: 2 Notunun Kod Tablosuna Yansıması

Ocak ayının son cuma sabahı. Saat tam 11.20.

İTÜ ARI Teknokent binasının üçüncü katındayız. Açık ofiste devasa kule tipi sunucuların uğultusu var.

Mekanik klavye sesleri tekdüze bir ritimle yankılanıyor. Masalarda çift monitörler, soğumuş filtre kahveler ve enerji içeceği kutuları duruyor.

Kıdemli Backend Mimarı Barış sandalyesinde kıpırdandı. Gözleri sabaha kadar uykusuzluktan kan çanağı gibiydi.

Yarım saat önce İK ve Yazılım Direktörü ile yaptığı toplantıdan çıkmıştı.

Yıl sonu performans notu masaya resmen konmuştu: 2 (Gelişime Açık).

Barış tam yedi yıldır bu şirketin tüm ödeme altyapısını sırtlamıştı. Gece saat 03.00’te gelen sunucu alarmlarına sadece o koşmuştu. Hafta sonu nöbetlerini tek başına tutmuştu.

Fakat İK Direktörü Gizem Hanım toplantıda buz gibi bir sesle şunu söylemişti:

— “Barış Bey, teknik bilginiz mükemmel. Fakat şirket içi sinerjide yeterince proaktif değilsiniz. Çan eğrisi gereği bu yıl size yüzde 22 zam verebiliyoruz.”

Sokaktaki reel enflasyon ise en az yüzde 75 seviyesindeydi. Barış açıkça fakirleştirilmişti.

Yazılım Direktörü Cenk Bey ise sadece başını öne eğmişti. Tek bir kelime bile edememişti. Çay bardağındaki kaşığı sessizce çeviriyordu.

Barış yerine oturdu. Bilgisayarının siyah terminal ekranına baktı. Masadaki soğuk kahvesini bir dikişte bitirdi.

Yüzünde çok tehlikeli bir tebessüm belirdi. Parmakları mekanik klavyenin üzerinde usulca gezindi:

— “Demek proaktif değilim Gizem Hanım. Size gerçek proaktiviteyi şimdi göstereceğim.”

İntikam soğuk yenen bir yemekti. Ama bir yazılımcı için intikam, milisaniyelerle servis edilirdi.

II. Mimariye Gömülen Saatli Bomba: ‘Thread.Sleep’ Zarafeti

Barış acemi bir hacker gibi davranmadı. Veri tabanını doğrudan silmedi. Sunucuları ateşe vermedi.

Çünkü bunu yaparsa log kayıtları onu on saniyede yakalardı.

Barış çok daha sinsi bir plan kurguladı. Kodun içine “görünmez sürtünmeler” gömecekti.

Ödeme geçidi mikroservisinin ana kaynak kodunu açtı. Fonksiyonun adı ProcessPaymentTransaction() idi.

Her saniye binlerce kredi kartı çekimi bu kod bloğundan akıyordu.

Barış satır 412’ye geldi. Akıllıca bir koşullu mantık ekledi.

Tetikleyiciyi sadece mesai saatleri dışına ve yoğun kampanya anlarına ayarladı.

Kurguladığı kod çok basitti.

Eğer sistemdeki anlık kuyruk sayısı 5.000’i aşarsa, sistem yapay bir gecikme üretecekti.

Gecikme tam olarak 0,5 saniye olacaktı. Yani Thread.Sleep(500).

İlk bakışta yarım saniye hiçbir şey gibi görünürdü. Sıradan bir son kullanıcı fark bile edemezdi.

Fakat dakikada 50 bin işlemin geçtiği dağıtık bir sistemde bu gecikme tam bir felaketti.

Hafıza havuzu şişecekti. Bellek havuzu kilitlenecekti. Postgres veri tabanı bağlantı havuzları tek tek tükenecekti. Redis önbelleği geçersiz kılınacaktı.

Üstelik kodda hiçbir hata mesajı görünmeyecekti. Sistem çalışıyor gibi yapacaktı. Ama arka planda yavaşça boğulacaktı.

Barış kodun açıklama satırına son derece kurumsal bir yalan iliştirdi:

// Regülasyon gereği PCI-DSS veri tutarlılık senkronizasyonu optimize edildi.

Barış kodu git commit yaptı. Başlığı gayet masumca attı: “Küçük güvenlik iyileştirmesi”.

Kodu inceleme (pull request) sistemine gönderdi. Onay mekanizması basitti.

Ekipteki genç bir yazılımcıya mesaj attı:

— “Mert, acil bir güvenlik yaması var. Hemen onaylar mısın?”

Mert koda bakmadan yeşil butona bastı. Kurumsal dünyada kod incelemeleri çoğu zaman böyle yapılırdı.

Kodu ana dala birleştirdi. Deploy butonuna bastı.

Bomba artık prodüksiyon sunucularında sessizce tıkırdıyordu.

III. Kara Cuma İndirimi ve Çöken Ödeme Geçidi

Aradan tam üç hafta geçti. Şubat ayının sonu geldi.

Şirketin yıl içindeki en büyük pazarlama kampanyası başladı: “Büyük Kış İndirimi”.

Reklamlar televizyon kanallarında dönüyordu. Sosyal medyada fenomenler videolar paylaşıyordu.

Saniyede yüz binlerce müşteri mobil uygulamaya hücum etti.

Grafana panellerinde yeşil çizgiler dikine yükselmeye başladı. Trafik saniyede 40 bin isteği aştı.

Saat tam 14.00 oldu. Kampanya kapıları sonuna kadar açıldı.

Ve tam o saniyede kriz patlak verdi.

Mobil uygulamanın sepet ekranında yuvarlak yükleme simgesi dönmeye başladı. Dönüyor, dönüyor, bir türlü bitmiyordu.

Datadog ekranları kıpkırmızı oldu. Bütün uyarı sirenleri aynı anda çalmaya başladı.

Bankalarla olan API bağlantıları zaman aşımına uğruyordu. Hata kodu: HTTP 504 Gateway Timeout.

Satışlar bir anda bıçak gibi kesildi. İlk on beş dakikada tam 4,2 milyon TL’lik sepet terk edildi.

Şirketin Maslak’taki genel merkezinde yangın çıktı. Müşteri hizmetleri hatları anında kilitlendi.

Destek ekibinin Slack kanalı alev aldı. Yüzlerce bildirim aktı:

“Kart çekildi ama sipariş oluşmadı!”

“Müşteriler sosyal medyada şirketi linç ediyor!”

“Genel Müdür arıyor, derhal bir açıklama bekliyor!”

Yazılım Direktörü Cenk Bey açık ofisin ortasında feryat etti:

— “Herkes acil War Room’a! Ödeme servisi yanıt vermiyor! Çabuk!”

IV. Kriz Odası (War Room): ‘Git Blame’ Dedektifliği

Büyük Toplantı Odası 1.

Masanın üzeri kablolarla, yarım kalmış enerji içecekleriyle ve kağıt bardaklarla doluydu.

Projeksiyon ekranında devasa kırmızı grafikler dalgalanıyordu. CPU kullanımı yüzde 99 seviyesine dayanmıştı. Bellek kullanımı tavana vurmuştu.

Direktör Cenk Bey masanın başında ayaktaydı. Elleriyle saçlarını çekiyordu:

— “AWS sunucularını hemen iki katına çıkarın! Yeni RAM ekleyin! Ne gerekiyorsa derhal yapın!”

Bulut mimarı panik içinde bağırdı:

— “Cenk Bey, yeni sunucu ekliyoruz. Fakat gelen yeni makineler de iki dakikada donup kalıyor! Kodun kendi içinde bir tıkanıklık var!”

Barış ise masanın köşesinde rahatça oturuyordu. Bacak bacak üstüne atmıştı.

Elindeki porselen kupadan kahvesini yavaşça yudumluyordu.

Yüzüne son derece sahte bir endişe yerleştirdi:

— “Cenk Bey, mikroservis mimarisi çok karmaşıklaştı. Biliyorsunuz, bütçe kısıtlaması yüzünden refactor yapamamıştık. Ben sizi defalarca uyarmıştım.”

Cenk Bey masayı yumrukladı:

— “Barış, şimdi felsefe yapma! Şu sorunu çöz! Genel Müdür lobide bekliyor! Dakikada 500 bin lira para kaybediyoruz!”

— “Logları inceliyorum Cenk Bey. Yüzlerce servis birbiriyle konuşuyor.”

— “Hangi servis kilitlendi Barış? Bir isim ver!”

— “Ödeme kuyruğu tıkanmış görünüyor. Derin bir analiz gerekiyor.”

O sırada genç bir yazılımcı terminalde bir komut çalıştırdı.

Git geçmişini taradı:

git log -p -S "Thread.Sleep"

Ve enter tuşuna bastı.

Ekranda tek bir commit satırı parıldadı:

Commit: 7a9f21b - Küçük güvenlik iyileştirmesi.

Yazar ismi açıktı: Baris <baris@sirket.com>.

Genç yazılımcı fısıldadı:

— “Hocam… Ödeme kuyruğuna elle yarım saniyelik uyku kodu konmuş.”

Odadaki tüm sesler bir anda kesildi. Bütün bakışlar Barış’a kilitlendi.

V. Bilişim Suçları ve İş Kanunu 25/II-ı: 30 Günlük Ücret Sınırı

Cenk Bey ekrana yaklaştı. Gözlerini dehşetle açtı:

— “Barış… Bu ne anlama geliyor? Bu kodu sen mi yazdın?”

Barış istifini hiç bozmadı. Gözlerini Cenk Bey’e dikti:

— “Evet Cenk Bey. Kod açıklamasında yazdığı gibi senkronizasyon için ekledim.”

Cenk Bey avazı çıktığı kadar bağırdı:

— “Sen bizimle alay mı ediyorsun? Sen bilerek tüm ödeme sistemini kilitledin! Bu açıkça şirket içi sabotajdır!”

İK Direktörü Gizem Hanım odaya girdi. Olayın ciddiyetini hemen kavradı.

Kurumsal mekanizma bu defa en ağır yasal maddelerle devreye girdi.

Gizem Hanım hukuk departmanını aradı. Avukatların uyarısı çok sertti.

4857 sayılı İş Kanunu madde 25/II-ı bendi son derece açıktı.

İşçinin kendi kusuruyla işverenin malına zarar vermesi haklı fesih sebebiydi.

Zararın tutarının işçinin otuz günlük ücretini aşması yeterliydi.

Şirketin sadece yarım saatteki maddi kaybı Barış’ın on yıllık maaşını geçiyordu.

Daha da ağırı Türk Ceza Kanunu madde 244 kapsamındaydı.

Bilişim sisteminin işleyişini engellemek veya sistemi bozmak ağır bir suçtu.

Kanun bu suç için bir yıldan beş yıla kadar hapis cezası öngörüyordu.

Gizem Hanım masadaki sandalyeyi sertçe çekti. Sesi titriyordu:

— “Barış Bey, ellerinizi derhal klavyeden çekin. Bilgisayarınızı siber güvenlik birimi inceleyecek. Şirket tarihinin en büyük tazminat davasını açıyoruz.”

Barış yavaşça ayağa kalktı. Şirket giriş kartını masanın üzerine fırlattı:

— “İstediğiniz davayı açın Gizem Hanım. Bana yüzde 22 zam verirken düşünecektiniz. O kodu oraya koyan benim ihmalim olabilir. Ama beni bu noktaya sürükleyen sizin doymak bilmeyen kurumsal kibrinizdir.”

VI. Bir Yazılımcının Sessiz İntikamı: Kod Gider, Hata Kalır

Barış o cuma günü Teknokent binasından güvenlik görevlileri eşliğinde çıkarıldı.

Şirket Barış’ı derhal kapının önüne koydu. Yedi yıllık kıdemi ve ihbar tazminatı tek kuruş ödenmeden yakıldı.

Fakat şirketin kazandığı zafer sadece kâğıt üzerindeydi.

O cuma gecesi ödeme servisi telaşla düzeltilmeye çalışıldı. Barış’ın yazdığı kod satırı apar topar silindi.

Fakat o satır silinince bu defa veri tabanı deadlock hatası vermeye başladı.

Çünkü Barış o kodu altyapının öyle kritik bir noktasına bağlamıştı ki, o gecikme olmadan sistem tamamen çöküyordu.

Şirket sistemi ayağa kaldırabilmek için dışarıdan bağımsız bir danışmanlık firması tutmak zorunda kaldı.

Gelen danışmanlık faturası tam 85.000 dolar tuttu. Bu rakam Barış’ın bir yıllık zam talebinin tam on katıydı.

Yazılım sektöründe çalışan her mühendis şu kuralları aklına kazımalıdır:

Birincisi: Prodüksiyon koduna asla kasten gecikme veya mantık hatası gömmeyin. Git kayıtları her şeyi gün gibi ispatlar.

İkincisi: TCK madde 244 şakaya gelmez. Bilişim sabotajı doğrudan hapis cezası riskidir.

Üçüncüsü: Şirketinize öfkeliyseniz bunu kodla değil, istifanızla gösterin. Rakip şirkete geçip iki katı maaş alın.

Dördüncüsü: Hiçbir sistem vazgeçilmez değildir. Şirketler para kaybeder ama siz mesleki itibarınızı kaybedersiniz.

Beşincisi: En kusursuz intikam, mesai bitince bilgisayarı kapatıp hayatı yaşamaktır.

Barış şimdi Kadıköy’deki evinde oturuyor. Balkonunda kahvesini yudumluyor.

Yurt dışındaki uzaktan projelere kod yazıyor. Maaşını döviz olarak alıyor. Artık çan eğrisi veya performans notu derdi yok.

Maslak kulelerindeki o kara cuma ise sunucu odalarında hâlâ bir efsane gibi anlatılıyor.

Olay şirket içinde derin izler bıraktı. Kod inceleme süreçleri baştan aşağı yenilendi. Güvenlik protokolleri sıkılaştırıldı.

Yöneticiler artık zam oranlarını belirlerken iki defa düşünüyor. Çünkü kod affetse de, yazılımcının hafızası asla unutmuyor. Her milisaniyenin arkasında bir insan onuru yatıyor.

Sıradaki Kulis Dosyaları