Hakkımda
Sistemi Kurarım, Kararı da Yazarım
Adım Muhammet Şafak. 2008’den bu yana yazılım geliştiriyorum; bugün bir teknoloji şirketinin Ar-Ge ekibinde Staff Engineer olarak çalışıyorum. Yüksek trafikli mimarileri düşünmek ve tasarlamaktan büyük keyif alıyorum. Dile değil, probleme odaklanıyorum. Bildiklerimi, öğrendiklerimi ve karşılaştığım gerçek hayat senaryolarını başta bu sitede olmak üzere çeşitli mecralarda paylaşıyorum.
Bu sayfa hem benim kim olduğumu hem de bu sitenin niçin var olduğunu açıklamaya çalışıyor.
Staff Engineer İstanbul, Türkiye
Neye göre karar veririm
Uzun süredir bu işi yapıyorum ve çok şey değişti; aşağıdaki maddeler değişmedi. Her birinin bir bedeli var, onu da yazdım.
- 01 Yarın değiştirilebilir olanı seçerim
- Bugün en hızlı biten çözüm, nadiren bir yıl sonra hâlâ ayakta olan çözümdür. İkisi çakıştığında ikincisini alırım; bedeli, ilk teslimin daha yavaş olmasıdır.
- 02 Kararın gerekçesini yazarım
- Kararı vermek işin yarısı; neden öyle verildiğini yazmak diğer yarısı. Yazılmayan gerekçe, altı ay sonra kimsenin savunamadığı bir koda dönüşür.
- 03 Maliyeti de söylerim
- Her tercihin bir faturası var. Faturasını söylemeyen bir öneri tavsiye değil, satış metnidir. Burada hiçbir araç her derde deva değil.
- 04 Dile değil probleme bağlıyım
- PHP, Go, Python ve JavaScript aynı masada durur; hangisinin açılacağına problem karar verir, alışkanlığım değil.
- 05 Bilmediğimi bilmiyorum diye yazarım
- Bir konuda sınırım varsa gizlemem. Kıdemin işareti her cevabı bilmek değil, sınırı doğru yere çizmektir.
Derinleştiğim konular
Bu başlıklarda okuduğum, ölçtüğüm ve üretime çıkardığım bir birikim var. Listede olmayan bir konuda “bilmiyorum” derim.
-
Geliştirici araçları ve CI
Tek işi iyi yapan araçlar ve onları çalıştıran pipeline. Yeşil bir CI yetmez; neyi kanıtladığı da yazılı olmalı.
-
Event-driven ve mesajlaşma
Servisler arasında sözleşmeyi olayın kendisi taşır; queue, yeniden deneme ve idempotency bu işin faturasıdır.
-
AI-destekli geliştirme
LLM’i geliştirme akışının içinde kullanıyorum: ürettiği kodu değil, ürettiği kararı gözden geçirdiğim yerde. Asıl iş modelin ne bilmediğini bilmek.
-
Otomasyon ve veri işleme
Elle yapılan her tekrar bir hata bütçesidir. Toplama, dönüştürme ve zamanlanmış işler; küçük bir betiği kalıcı bir hattan ayıran şey hatayı nasıl karşıladığıdır.
Buraya nasıl geldim?
2008’de freelance başladım. On dört yıl boyunca kurumsal siteler, e-ticaret sistemleri ve entegrasyonlar teslim ettim. İşin ticari tarafını, teslim tarihinin ne demek olduğunu ve bir sistemin sahibi olmadan sürdürülemeyeceğini o yıllarda öğrendim.
2012’den itibaren paralel olarak bir dikey arama motorunun çekirdek ekibindeydim: on milyonlarca dokümanlık bir dizin, saatlik milyonluk tarama, ve sorgu gecikmesinin saniyeden milisaniyeye çekilmesi. “Ölçek” kelimesinin ne anlama geldiğini ilk orada, faturasıyla birlikte gördüm.
2022’den beri tam zamanlı olarak bir teknoloji şirketindeyim; önce Senior Software Developer, 2025’ten bu yana Staff Engineer olarak. Bugün iş yalnızca kod yazmak değil: yüksek trafikli bir platformun mikroservis ve event-driven mimarisini tasarlamak, kritik tasarım kararlarında ekibe teknik pusula olmak, ürün stratejisiyle teknoloji vizyonunu aynı masaya oturtmak. Aynı dönemde küçük ekiplere TDD ve DDD üzerine mentorluk verdim.
Yazılımı okulda öğrenmedim — lisansım tarih. Bu bir eksik olarak başladı, sonra bir alışkanlığa dönüştü: her şeyi kaynağından okumak ve okuduğumu tarihiyle not etmek. Bu sitenin neye benzediğini biraz da o alışkanlık açıklıyor.
Şirket adları, tarihler ve yetkinlik listesi özgeçmişte duruyor; bu sayfa işin kendisini anlatıyor.
Özgeçmişe bakBu site hakkında
Astro, Tailwind CSS ve MDX ile kurulu, Cloudflare’de yayınlanıyor. İçerik bir veritabanında değil, git reposunun içinde markdown formatında duruyor.
Üyelik, panel, form ve reklam yok — hiçbiri planlanmıyor da.
Bir sorunuz, bir teklif ya da yalnızca bir merak olursa: form yok, doğrudan e-posta.
Bana yazınYapay zekâ bu yazılarda ne yapıyor
Yapay zekâ burada metni yazmak için değil, yazdığımı anonimleştirmek ve dilini temizlemek için var. Bugün yayınladığım her yazı üç adımdan geçiyor.
- 01 Taslak
- Konuyu ben seçerim; metni üretimde gerçekten karşılaştığım örneklerle ben yazarım. Taslak bu hâliyle yayınlanamaz: müşteriyi, sistemi ve veriyi tanınır kılan ne varsa içinde durur.
- 02 Arındırma
- Yapay zekâ metni anonimleştirir: örneği bozmadan, tanınabilir ne varsa genelleştirir. Yazım hataları ve anlatım bozuklukları da bu adımda düzelir.
- 03 Son denetim
- Metni yayına çıkmadan önce satır satır ben okur, düzeltilmesi gerekeni düzeltir, son hâlini veririm.
Yapay zekânın dokunmadığı yer burası: konu, iddia, gerçek örnek ve ölçümler bana ait. Makine dil katmanında çalışır, karar katmanında değil.
Ne nerede duruyor
Bu site bir vitrin değil, bir kayıt defteri. Tek bir yığın da değil: her bölüm başka bir soruya bakıyor ve hiçbiri diğerinin işini yapmıyor. Hangisine gideceğinize sorunuz karar verir.
-
Blog
Şunu nasıl yaptım?
Uygulamalı geliştirme günlüğü. 2014’ten bugüne tarihli; her yazı yazıldığı yılın bilgisiyle duruyor, sonradan bugünün aklıyla düzeltilmiyor.
-
Labs
Ne geliştiriyorum, bugün ne yapıyor?
Geliştirme merkezi. Listelenen her iş bugün kullanılabilir ve hiçbiri nihai hâlinde değil; nihai hâline ulaşan portfolyoya geçiyor, kaydı burada kalıyor.
-
Research
Hangi soruyu kovaladım, ne buldum?
Araştırma merkezi. Ölçüm, analiz, tarama ve derleme; her kayıt yöntemini, kaynağını ve sonuca ne kadar güvendiğimi yazıyor.
-
Portfolyo
Ne yayına girdi?
Yayına çıkmış iş. Ne yaptığı, kim için ve hâlâ ayakta mı — satış metni değil, kayıt.
Uydu · sade.dev
Sınır kişide değil kipte
Burada yazan her kayıt tarihli ve birinci ağızdan — “şunu, şu tarihte, şöyle yaptım”. sade.dev tarihsiz ve kişiselsiz konuşur — “bu böyle yapılır”. Aynı konu ikisinde de olabilir; biri bulguyu, diğeri ilkeyi taşır. Bir konu sistem derinliğine değdiğinde o derinliği burada yazmam, oraya bağ veririm.
sade.dev’e git