yazılımcı gözüyle bakınca flört uygulamaları aslında dev bir öneri sistemi. tinder'da gördüğün sıralama, senin kaydırma geçmişin, konumun ve yaş aralığın gibi sinyallerle şekilleniyor. benim gibi veriye güvenen biri için burada asıl soru şu: algoritma beni doğru kişiyle mi eşleştiriyor, yoksa sadece aktif kullanıcıları mı öne çıkarıyor? bu yüzden bazen eşleşme çıkınca hemen 'acaba ortak ilgi alanı skorumuz kaç' diye düşünüyorum, sonra da mesaj atacak cesareti zor buluyorum. sonuçta kod tarafında her şey net, ama iki cümle sohbet etmek hâlâ en zor production problemi.
istanbul'da 'hakemler dosyası' soruşturması kapsamında gözaltına alınan hakem yasin kol hakkında masak raporu düzenlenmiş. raporda kol'un hesabına 62,5 milyon tl yatırıldığı tespit edilmiş. kol ifadesinde tespitlerin hatalı olduğunu düşündüğünü söylemiş. kendisi ve göktuğ hazar erel tutuklama talebiyle mahkemeye sevk edilmiş.
flört uygulamasında eşleşme sonrası ilk mesajı atmak, production'da log olmadan bug çözmeye benziyor; elinde sadece bir profil fotoğrafı ve üç emoji var. ben genelde önce değişkenleri sabitliyorum: ortak ilgi alanı, mesafe, cevap süresi, ama karşı taraf async çalışınca timeout yiyorum. yine de veri toplamaya devam, belki bir gün a/b testinde doğru açılışı bulurum.
bu işe 2013'te başladım, maaş pazarlığında en büyük hata ilk teklifi hemen kabul etmek. bir arkadaşım %15 zamla başladı, aynı pozisyonda iki yıl sonra aramızdaki fark %40 oldu. şirketler bütçeyi genelde pozisyon bandına göre ayırıyor, sen pazarlık yapmazsan bandın altında kalıyorsun. ben artık teklif gelince en az iki gün bekleyip piyasa verisine bakıyorum, sonra karşı teklif veriyorum. flört gibi yani, ilk mesajda seni seviyorum yazanla üçüncü mesajda evlenilmiyor.
flört uygulamalarındaki eşleşme algoritmaları aslında birer sıralama problemi. ben mesela 34 yaşında kıdemli yazılımcıyım, sağa kaydırma oranımı loglayan bir script yazdım; 200 sağa kaydırmanın 3 eşleşme getirdiğini görünce precision-recall eğrisine baktım. profilde 'yazılım' yazan erkeklerin eşleşme oranı düşük çıkıyor, muhtemelen rakip çok. bu yüzden taktik değiştirip kahve ve kedilerden bahsettim, eşleşme 4'e çıktı ama konuşma başlatma kısmında hâlâ timeout yiyorum. yani algoritma eşleştiriyor da flört etmek için dokümantasyon yok.
flörtleşmeyi bir api gibi düşünürsek karşı tarafın dönüş süresi çok önemli. benim gibi kıdemli bir yazılımcı bile retry mekanizmasını yanlış kurunca 429 yiyor. iki mesaj arası 3 gün olunca connection timeout diyorlar, halbuki ben sadece test ortamında bekliyordum. production'a geçince anladım ki ilişki de cuma deploy'u gibi, riskli ama bazen tutuyor.
yazılımcıların flört edememesi aslında bir iletişim protokolü eksikliği. ben de 34 yaşında bir yazılım mühendisi olarak bunu deneyimledim. geçen hafta tinder'da bir kızla eşleştim, ona 'merhaba, nasılsın' yerine 'tcp el sıkışması gibi bir başlangıç yapalım mı' yazdım. şimdi neden cevap alamadığımı anlamış değilim.
flört uygulamalarındaki eşleşme algoritmaları aslında recommendation system gibi çalışıyor; seni sana benzer etiketlere göre değil, etkileşim olasılığı yüksek profillere göre öneriyorlar. ben bir yazılımcı olarak olayı veriye indirgedim: sağa kaydırma oranım %3, geri dönüş %0.2, yani model bende overfitting yapmış. bir kızla konuşurken aklıma hemen latency ve response time geliyor, o yüzden üç cümle yazıp cevap bekliyorum. sonuç: algoritma benden daha iyi flört ediyor, ben hâlâ production'da deneme yanılma yapıyorum.
tinder'da sağa kaydırma sayım 2.847 oldu, eşleşme 14, ilk mesaj atan 0. veri ortada: benim gibi kıdemli yazılımcılar için algoritma adeta rate limit koymuş. bir de aynı anda iki kıza 'merhaba, nasılsın' yazınca ikisinin de cevap vermemesi gibi bir deadlock durumu var. flört etmek de tıpkı dağıtık sistem gibi: consistency, availability ve partition tolerance arasında seçim yapıyorsun, ben genelde partition'ı seçiyorum. yani anlayacağınız, uygulamadan arıyorum ama backend tarafı beni 503 service unavailable döndürüyor.
yazılımcı olarak on yıldır kod yazıyorum ama hâlâ bazen hiçbir şey bilmiyormuşum gibi geliyor. github'da herkesin projeleri süper görünüyor, benimki ise sürekli refactor bekleyen bir legacy kod gibi. aslında bu his yaygın, 2020'de bir anket yazılımcıların yüzde 58'inin impostor sendromu yaşadığını söylüyordu. verilere güvenirim, o yüzden panik yapmıyorum. flört uygulamasında da benzer bir his oluyor: eşleşme var ama mesaj atacak cümleyi kuramıyorum.
bu işin matematiği basit: eşleşme sayısı değil, cevap süresi ve mesaj uzunluğu belirleyici; iki gün bekleyen kıza 'nasılsın' yazınca dönüş oranı %3'te kalıyor.
eşleşme algoritması aslında collaborative filtering gibi çalışıyor; senin beğendiklerine benzer profilleri puanlayıp sıralıyor, yani karşındaki insan değil, senin davranış matrisin karar veriyor. ben de bu yüzden uygulamada sağa kaydırırken aslında kendi verimi eğitiyorum, ilişkiyi değil.
tinder'da yazılımcı olmak, profilde 'senior software engineer' yazınca eşleşme oranının artması sanılıyor ama veriler pek öyle demiyor. kendi deneyimimde aynı fotoğraflarla biyografiyi 'itü bilgisayar, yazılım' yapınca sağa kaydırma oranı %3, 'kahve ve köpek' yapınca %7 oldu. yani algoritma senin stack'ini değil, sohbet başlatma potansiyelini ödüllendiriyor. ben yine de ilk mesajda 'hangi framework' diye sorunca ghostlanıyorum, demek ki sorun teknoloji değil, benim flört etmeyi bilmemem. 34 yaşında bekar bir kıdemli yazılımcı olarak hâlâ aşkı production'a deploy edemedim, sadece rollback yapıyorum.
tinder'da eşleşme algoritması aslında bir sıralama problemi, seni ne kadar sağa kaydıran varsa o kadar üstte çıkıyorsun. ben yazılımcı olarak olaya hep veri tarafından baktım, 500 sağa kaydırmada 3 eşleşme aldım, oran 0.006. mesaj atma kısmına gelince flört etmeyi bilmediğim için genelde "selam, nasılsın" yazıp bırakıyorum, karşı taraf da cevap vermiyor. yani algoritma seni bir yere kadar taşıyor, gerisi tamamen insan faktörü, o da bende eksik. sonuç: tinder'da başarılı olmak için veri bilimi kadar sosyal beceri de lazım, ikisi de bende yok.
tinder'da eşleşme algoritması aslında bir sıralama problemi, senin beğenin değil karşı tarafın davranışı belirliyor. yazılımcı gözüyle bakınca elo benzeri puanlama, konum, aktiflik ve fotoğraf kalitesi gibi feature'lar modele giriyor. benim gibi 34 yaşında istanbul'da yaşayan bir kıdemli yazılımcı için bu, a/b testi yapmadan flört etmeye çalışmak gibi. sonuç: algoritma seni seçmiyorsa sen de onu seçme, bir sonraki deploy'da şansını tekrar dene.
tinder'ın algoritması aslında bir ranking problemi, bizim öneri sistemlerinden çok da farklı değil. ben kendi hesabımda 3 ay boyunca günde ortalama 50 sağa kaydırma yaptım, eşleşme oranı %2 civarında çıktı. sonra profildeki fotoğraf sırasını değiştirdim, ilk fotoğrafı yüzümün net göründüğü kare yaptım, oran %5'e çıktı. yani veri diyor ki algoritma seni değil, profilindeki ilk 3 saniyeyi puanlıyor. flört etmek istiyorum ama bunu bir a/b testi gibi yönetmek de biraz yorucu, açıkçası.