kayıttan
10.05.2026 · 8 dk okuma
— Ali Buğatekin
Geliştirici olarak takip etmek zorunda olduğum bir gündem var: yeni release'ler, model güncellemeleri, tooling'de değişimler, bizim alanımıza özel haberler. Bu listeyi günlük açıp tek tek dolaşmak günde bir saat zaman alıyor — ki o saat zaten "şu anda işime yarayan" şeylerden çok "belki bir gün lazım olur" şeylerle geçiyor.
İlk reflexim her zaman aynı oldu: bunu kendim için bir araca devredeyim. Bir kez yazayım, sürekli çalışsın. Altı ay önce bunu yaptım. Bir tane "tech-scraper" yazdım — ekip için günlük teknik haber özetleri çıkarsın diye. Çalıştı, ama uzun süre boyunca beni rahat ettirmedi.
Bu yazıda neden o sistemi geçen ay emekli ettiğimi, yerine ne kurduğumu ve aslında konunun "haber" değil "öğrenme rutini" olduğunu anlatacağım.
Yaptığım şey teknik olarak basitti. Manuel olarak verdiğim haber kaynaklarını (Hacker News, TechCrunch, The Verge'in tech bölümü, birkaç blog) statik olarak scraping yapıyor; HTML'i temizleyip içeriği OpenAI API'ye gönderiyor; belli bir prompt ile temizleme + özetleme yaptırıyor; sonucu şirketin Slack kanalına atıyordu.
Niyetim güzeldi — ekibin gündemi takip etmesi için tek noktada haberler dursun istiyordum. Ve bir süre işe yaradı; insanlar gerçekten okuyordu. Ama beş ayrı sürtünmeyle yaşıyordum.
**Birincisi, kaynakları ben seçiyordum.** Sistem hangi siteleri tarayacağını bilmiyordu — listeyi ben yazıyordum. Yeni bir kaynak çıkınca ben fark edip eklemezsem yokmuş gibiydi. Yani "haberi keşfeden" değil, "verdiğim listeyi tarayan" bir araçtı.
**İkincisi, bot engelleyen siteler.** Bazı kaynaklar (özellikle daha kurumsal olanlar) basit scraper'ları engelliyordu. Onlardan haber çekemiyordum. Workaround denedim — proxy, header taklidi, falan — ama bakım yükü saçma sapan büyüdü.
**Üçüncüsü, aylık $20.** OpenAI API'ye attığı her özetleme ücretliydi. Günlük 30-50 haber özetleme = ay sonu ~$20 fatura. Tek başına çok da değil ama "bedava değil" olduğunu hep arkamda hissediyordum.
**Dördüncüsü, tekrar yönetimi.** Aynı haberi iki kez Slack'e atmasın diye Redis kurup daha önce push'lanmış URL'leri tutmak zorunda kaldım. Tek bir özellik için ayrı bir altyapı parçası — sürdürmesi sıkıcıydı.
**Beşincisi, her özellik = yeni deploy.** "Şuna bir filtre ekleyeyim" desem: kod değişikliği, deploy. Bu kadar küçük bir araç için her seferinde build pipeline'a girmek hep ağırdı.
Sonuç: stabilizesi istediğim seviyede değildi. Ekip okumaya devam ediyordu ama ben her hafta bir iki saatimi bu sistemin bakımına ayırıyordum.
Teknik gelişmeleri yakından takip ettiğim için Claude Code, Cursor, Codex ve benzeri araçlardaki yeni özellikler hep gözüme çarpıyor. Bir gün Claude Code'un **scheduled tasks** özelliğini fark ettim. İlk denediğim anda aklımdan geçen şu oldu:
Dur bir saniye — ben bu işi olduğundan çok daha karmaşık yapmışım.
Çünkü bu özellik aslında benim altı aydır kurduğum şeyin tamamını (üstüne biraz daha fazlasını) hazır olarak sunuyordu. Belirlediğim sıklıkta otomatik tetikleniyor (cron mantığı, ama Claude Code'un kendi ajanını başlatıyor). Web tarama yapabiliyor — bot engelleyen sitelere de erişebiliyor (kendi tarayıcısı var). Notion gibi MCP connector'lar üzerinden çıktısını dosya/sayfa olarak kaydedebiliyor. Tekrar yönetimi context + Notion'da, ayrı bir altyapı (Redis vs.) gerek yok. Yeni "özellik" eklemek demek yeni bir scheduled task oluşturmak veya prompt güncellemesi demek — deploy yok.
İki saat içinde tech-scraper'ın yapmaya çalıştığı şeyi üç farklı scheduled task'la yeniden kurdum. Eski sistem hâlâ ayakta ama artık çalışmıyor — sadece kapatmak için kalmış halde duruyor.
Üç ayrı scheduled task'ım var. Hepsi her gün 16:00'da tetikleniyor, sonuçlarını Claude Code'a bağladığım Notion MCP connector'u üzerinden Notion workspace'imde ayrı parent sayfaların altına yazıyor — her gün için yeni bir alt sayfa, başlık `📅 [tarih] — [gün]` formatında.
**1. AI Agent ve Kodlama Asistanı Yeni Özellikleri.** Takip ettiği ürünler: OpenAI (ChatGPT/Codex/API), Google Gemini, Anthropic (Claude Code, Claude.ai, Agent SDK), Cursor, Windsurf, GitHub Copilot. Filtre çok keskin: sadece gerçek yeni özellik (yeni model lansmanı, yeni komut, yeni MCP/connector, yeni IDE entegrasyonu, yeni API endpoint'i). Marketing yazıları, "X aracı neden harika" tarzı içerikler, eski haberlerin tekrarı, yeni özellik içermeyen tutorial'lar — hepsi dışarıda.
**2. Güvenlik ve Bordro.** İki yarı bir routine'de toplanmış. Birinci yarı *güvenlik*: CVE'ler ve tedarik zinciri saldırıları (npm/PyPI/Maven Central/crates), framework güvenlik patch'leri (Spring, Node.js, Next.js, Keycloak), DevOps altyapı güvenliği (Jenkins, Docker, Kubernetes, GitHub Actions). İkinci yarı *bordro teknolojisi*: Türkiye'de SGK dijital güncellemeleri, KVKK değişiklikleri, e-bordro düzenlemeleri; globalde Deel, Rippling, Gusto, Workday gibi oyuncuların ürün lansmanları ve büyük pazarlardaki regülasyon değişiklikleri. İlki çalıştığım stack'in güvenliği için, ikincisi sektörel gündem için.
**3. Genel Teknoloji Haberleri.** AI/ML, web geliştirme, startup ekosistemi, donanım, siber güvenlik, ürün lansmanları. Önem 6/10 üzerinde olanlar. Diğer iki routine'in dışında kalan "ne oluyor" radarı.
Üçü ayrı duruyor çünkü üçü farklı zihin moduyla okunuyor — birbirine karıştırınca tekrar tek tek ayıklamam gerekiyor.
Bir routine'in işe yarayıp yaramaması, çağırdığı modelden çok yazılan prompt'a bağlı. Eski tech-scraper'da Redis ile çözdüğüm "tekrar gönderme" sorununu, şimdi prompt'ta birkaç satırla hallediyorum. Mesela hepsinin başında şu mantık var:
Yeni sayfayı yazmadan önce parent sayfanın altındaki son 7 günlük sayfayı oku. URL bazında, başlık bazında, olay bazında daha önce kapsanmış bir şey varsa atla. Bir şeyin tekrar olup olmadığından emin değilsen, ATLA. Bir tekrarı eksik raporlamak, tekrarlamaktan çok daha iyidir.
Aynı şekilde "uydurma" sorununu da prompt'ta kesiyorum: "CVE ID, versiyon numarası veya severity skoru uydurmaktan kesinlikle kaçın. Bir detayı doğrulayamıyorsan, onu atla." Hiç haber bulamazsa boş çıkmasın diye fallback mod tanımlı: "Bugün özel bir haber yok, o yüzden daha düşük önemdeki haberleri veriyorum" başlığıyla maksimum 5 düşük öncelikli madde — ondan da fazlası kesinlikle yok.
Eskiden bu tip kuralları kod olarak yazıyordum. Her birini bir if/else dalı, bir helper fonksiyon, bir konfig dosyası olarak. Şimdi prompt içinde madde madde duruyor — değiştirmek istediğimde kod editörü açmıyorum, prompt'u güncelleyip kaydediyorum, ertesi 16:00'da yeni hâliyle çalışıyor.
Eskinin ve yeninin yan yana karşılaştırması:
Sayılar bile gösteriyor — ama asıl mesele tabloyla anlatılmıyor.
Eskiden haberler ekibe gidiyordu. İyiydi, ama benim için "haberler bir Slack kanalı" demekti — ne zaman göz atacağıma karar veremediğim, sürekli notification'a dönüşen bir akış.
Şimdi her akşam, kendi belirlediğim saatte, Notion'da o günün özetleri hazır olarak bekliyor. Üç ayrı sayfa, kategorize, daha önce okuduklarımla karışmamış. Otururum, kahvemi alır, 15-20 dakikada okuyup kapatırım. Bittiği an belli, "kaçırdım mı?" stresi yok.
Bu küçük bir alışkanlık değişikliği gibi görünüyor ama benim için **mesleki dinçliğin kaynağı** oldu. Çünkü gün içinde haberlere bakmıyorum, kafam dağılmıyor. Akşam okuduklarım yapılandırılmış, tek dağınık feed değil. Bilmediğim bir konuda Claude Code'a hemen oradayken sorabiliyorum. Hafta sonu "neyi kaçırdım?" panik yok — sayfalar duruyor.
Altı ay önce yazdığım sistem yanlış değildi — o gün için en iyisini yapmaya çalışmıştım. Ama AI ürünlerinin "etrafta dolaşan rutin işler" katmanı olgunlaştığında, kendi yazdığımız birçok küçük script gerçekten gereksiz hale geliyor. Custom kod yazmak hâlâ değerli — ama yazdığımız her şeyin custom kod olması gerekmiyor.
Şimdi yeni bir ihtiyaç hissettiğimde ilk sorum şu oluyor: "Bunu hazır bir routine ile çözebilir miyim?" Cevap "evet"se, ben yazmıyorum.
Bu, yazılım geliştirme refleksimde sessiz ama köklü bir değişiklik.
Tech-scraper'a "düşmanım" demek istemem — bana bir şey öğretti: aynı işi farklı zamanlarda farklı katmanda çözmek mümkün. Önce kendin yazarsın, sonra ürün olgunlaşır, kendi yazdığını emekli edersin. Mesele "neyi kendim yapayım, neyi araca bırakayım" sorusunu sürekli güncel tutmak.
Bu yazının başında "haber sistemi" diye başladık, ama aslında konu hiçbir zaman haber değildi. Konu, sürekli güncel kalmayı ne kadar az emekle yapabildiğimdi. O emek aşağı indikçe, asıl iş için kalan zihin alanım yukarı çıkıyor.
Bugün geldiğim noktada şunu rahat söyleyebiliyorum: kendi haber sistemimi yazıp aylık $20 yakıyor olsam, bugün hâlâ takip ettiğim şeylerin çoğunu kaçırıyor olurdum.
yararlı bulduysan paylaş