# Mühendislik: Backend ve Sistemler

> Üretim dersleri, mimari kararlar, veritabanı, sunucu ve uygulama patternleri ve AI-destekli mühendislik üzerine notlar, sistem incelemeleri, denemeler ve tarayıcıda çalışan geliştirici araçları.

- Yazı sayısı: 51
- Araç sayısı: 14
- Kaynak: https://muhammetsafak.com/tr/muhendislik/
- Dil: tr-TR
- Yazar: Muhammet Şafak

---
Backend ve sistem mühendisliği üzerine bir not defteri.

## Her yazının iskeleti

1. Durum
2. Kısıt
3. Yaklaşım
4. Tuzaklar
5. Geçerlilik

## Notlar

- [Upgrade Tetikleyicileri: Zorunlu, Kilitleyen, Fırsat](https://muhammetsafak.com/tr/muhendislik/notlar/upgrade-tetikleyicileri/): Dependabot PR'ı, EOL duyurusu ve CVE bülteni aynı kuyruğa düşer ama aynı aciliyette değildir. Sinyalleri üç türe ayırıp her birine tepki süresi bağlamak. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/upgrade-tetikleyicileri.md)
- [CQRS: Ne Zaman Gerekli, Ne Zaman Gereksiz Yük?](https://muhammetsafak.com/tr/muhendislik/notlar/cqrs-ne-zaman-gerekli/): Okuma ve yazma modellerini ayırmak: CQRS'in karmaşık domain'de kazandırdığı netlik ve basit CRUD'da yarattığı gereksiz yük. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/cqrs-ne-zaman-gerekli.md)
- [Arşivleme Stratejisi: Eski Veriyi Yavaşlatmadan Ayırma](https://muhammetsafak.com/tr/muhendislik/notlar/arsivleme-stratejisi/): Canlı tabloyu şişiren eski kayıtları ayırmak: partition'lama, soğuk depolama ve arşivlerken sorgu erişimini koruma yöntemleri. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/arsivleme-stratejisi.md)
- [PostgreSQL Kuyruk Tablosunu Canlı Kümeye Göre Kurmak](https://muhammetsafak.com/tr/muhendislik/notlar/kuyruk-tablosunu-canli-kumeye-gore-kurmak/): Kuyruk tablosunda tabloyla büyüyen index ve autovacuum eşiği yanlış ölçeklenir; ikisini bekleyen işlere göre kurmanın ölçülmüş gerekçesi (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/kuyruk-tablosunu-canli-kumeye-gore-kurmak.md)
- [İndeksler: Eksik Yavaşlatır, Fazlası Yazmayı Öldürür](https://muhammetsafak.com/tr/muhendislik/notlar/indeks-yonetimi/): Eksik indeks sorguyu yavaşlatır, gereğinden fazla indeks her yazma işlemini pahalılaştırır. Doğru dengeyi tahminle değil ölçümle kurmak. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/indeks-yonetimi.md)
- [Canlıda Sıfır Kesintiyle Şema Değiştirmek](https://muhammetsafak.com/tr/muhendislik/notlar/zero-downtime-veritabani-gocleri/): Production'da kesinti yaratmadan migration almak: geri uyumlu adımlar, çok aşamalı kolon değişiklikleri ve tablo kilitlenmesini önleme. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/zero-downtime-veritabani-gocleri.md)
- [Read/Write Splitting: Okuma ve Yazma Yükünü Ayırmak](https://muhammetsafak.com/tr/muhendislik/notlar/read-write-splitting/): Veritabanını büyütmeden önce: okuma trafiğini replica'lara taşımak, replication lag'in yarattığı tuzaklar ve ne zaman gerçekten gerektiği. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/read-write-splitting.md)
- [Redis Koymadan Önce: Doğru Cache Stratejisi](https://muhammetsafak.com/tr/muhendislik/notlar/dogru-cache-stratejisi/): Cache eklemeden önce sorulması gereken sorular, cache invalidation'ın neden zor olduğu ve TTL ile tutarlılık arasındaki seçim. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/dogru-cache-stratejisi.md)
- [Dış Servis Entegrasyonlarında Circuit Breaker](https://muhammetsafak.com/tr/muhendislik/notlar/circuit-breaker-dis-servis-entegrasyonu/): Kritik bir sistemi dış API'lere bağlarken: timeout, retry ve circuit breaker ile bir servisin çöküşünün tüm sistemi düşürmesini engellemek. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/circuit-breaker-dis-servis-entegrasyonu.md)
- [Serverless'a Geçiş Kararı: Cold-Start, Vendor Lock-in](https://muhammetsafak.com/tr/muhendislik/notlar/serverless-gecis-karari/): FaaS'a geçmeden önce: cold-start gecikmesinin gerçek maliyeti, vendor lock-in riski ve serverless'ın hangi iş yüklerinde kazandırdığı. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/serverless-gecis-karari.md)
- [BFF Pattern: Mobil ve Web İçin Ayrı API Katmanı](https://muhammetsafak.com/tr/muhendislik/notlar/bff-backend-for-frontend/): Mobil ve web için ayrı API katmanları: tek API'yi her istemciye uydurmanın gizli maliyeti ve BFF'in ne zaman gerçekten gerektiği. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/bff-backend-for-frontend.md)
- [Senkron mu Asenkron mu? HTTP ve Kuyruk Arasında Karar](https://muhammetsafak.com/tr/muhendislik/notlar/senkron-mu-asenkron-mu/): Bir işi HTTP isteğiyle anında mı yapmalı, kuyruğa mı atmalı? Yanıt süresi ve hata toleransı üzerinden karar çizgisi. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/senkron-mu-asenkron-mu.md)
- [Event-Driven Mimari: Ne Çözer, Neyi Gizler?](https://muhammetsafak.com/tr/muhendislik/notlar/event-driven-mimari-ne-zaman/): Event'lerle gevşek bağ kurmanın bedeli: kazandırdığı esneklik ile sistem akışını takip edilemez hale getirme riski arasındaki denge. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/event-driven-mimari-ne-zaman.md)
- [Dead-Letter Kuyruğunu Daha Kötü Yapmadan Replay Etmek](https://muhammetsafak.com/tr/muhendislik/notlar/dead-letter-kuyrugunu-guvenle-replay-etmek/): Naif replay kuyruğu yeniden zehirler ya da yan etkileri ikinci kez tetikler. Güvenli şekil: reset, dry-run, önce sandbox, select. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/dead-letter-kuyrugunu-guvenle-replay-etmek.md)
- [Şemayı Kuyruğun Kenarında Doğrulamak](https://muhammetsafak.com/tr/muhendislik/notlar/semayi-kuyrugun-kenarinda-dogrulamak/): Bir mesajın data'sı, kuyruğun kontrol etmediği tipsiz bir sözleşmedir. Kenarda doğrula: üretici yayınlamadan önce, tüketici güvenlik ağı olarak. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/semayi-kuyrugun-kenarinda-dogrulamak.md)
- [Idempotency: Aynı Mesaj İki Kez Geldiğinde](https://muhammetsafak.com/tr/muhendislik/notlar/idempotency-ayni-mesaj-iki-kez/): At-least-once teslimat, bir handler'ın aynı mesajı iki kez göreceği anlamına gelir. Idempotency anahtarı, nereden geldiği ve çökmeden sağ çıkan dedupe. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/idempotency-ayni-mesaj-iki-kez.md)
- [Shared Redis Kullanırken Namespace İzolasyonu](https://muhammetsafak.com/tr/muhendislik/notlar/shared-redis-namespace-izolasyonu/): Tek bir Redis instance birden çok proje arasında paylaşılırken key collision ve yanlışlıkla silme kazalarından korunmak için kullandığım örüntü. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/shared-redis-namespace-izolasyonu.md)
- [pgBackRest ile PostgreSQL Backup Stratejisi](https://muhammetsafak.com/tr/muhendislik/notlar/pgbackrest-postgresql-backup-stratejisi/): pg_dump tek başına yedek değil. pgBackRest ile PITR destekli, sıkıştırılmış, doğrulanabilir yedek mimarisi. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/pgbackrest-postgresql-backup-stratejisi.md)
- [Laravel Queue Production'da Neden Yavaşlar?](https://muhammetsafak.com/tr/muhendislik/notlar/laravel-queue-production-yavaslama/): Laravel queue worker'ları yerelde mükemmel, production'da yavaş. Geliştiricilerin gözden kaçırdığı en yaygın beş neden. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/laravel-queue-production-yavaslama.md)
- [Nginx + PHP-FPM Pool Ayrımı](https://muhammetsafak.com/tr/muhendislik/notlar/nginx-php-fpm-pool-ayrimi/): Aynı VPS üzerinde birden fazla PHP uygulaması çalıştırırken, tek bir PHP-FPM pool yerine uygulama başına ayrı pool tanımlamanın somut faydaları. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/nginx-php-fpm-pool-ayrimi.md)
- [pgBouncer auth_query ile Çoklu DB Kullanıcısı](https://muhammetsafak.com/tr/muhendislik/notlar/pgbouncer-auth-query/): pgBouncer kullanırken `userlist.txt` yerine `auth_query` ile dinamik kullanıcı doğrulamasının pratik yapılandırması. (Markdown: https://muhammetsafak.com/tr/muhendislik/notlar/pgbouncer-auth-query.md)

## Sistemler

- [Transactional Outbox: Dual-Write, İdempotent Tüketim](https://muhammetsafak.com/tr/muhendislik/sistemler/transactional-outbox-dual-write-ve-idempotent-tuketim/): Dual-write'ı outbox'la kapatmak, doğan at-least-once tekrarını idempotent tüketimle bastırmak, event'in içindeki kişisel veriyi alanda şifrelemek. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/transactional-outbox-dual-write-ve-idempotent-tuketim.md)
- [Çok Kümeli GitOps’ta Sıfır Statik Yetki](https://muhammetsafak.com/tr/muhendislik/sistemler/cok-kumeli-gitops-sifir-statik-yetki/): Uzun ömürlü kubeconfig olmadan çok kümeli GitOps: SPIFFE kimlikleri, SPIRE'ın bastığı kısa ömürlü SVID'ler — kurma sırası ve her adımın maliyeti. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/cok-kumeli-gitops-sifir-statik-yetki.md)
- [eBPF ile GPU FinOps](https://muhammetsafak.com/tr/muhendislik/sistemler/ebpf-ile-gpu-finops/): GPU harcaması cgroup ve cAdvisor metriklerine neden görünmez, eBPF onu ekiplere nasıl atfeder — ve DCGM'in kapatması gereken CUDA sınırı. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/ebpf-ile-gpu-finops.md)
- [Polyglot Bir Kuyrukta Dağıtık İzleme](https://muhammetsafak.com/tr/muhendislik/sistemler/polyglot-kuyrukta-dagitik-izleme/): Donmuş bir envelope üzerinden PHP, Go ve Python'a geçen bir mesajı tek bir OpenTelemetry trace'ine çevirmek — yeni alan, yeni bağımlılık yok. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/polyglot-kuyrukta-dagitik-izleme.md)
- [Ardışık Numara Üretiminde Race Condition ve Gap](https://muhammetsafak.com/tr/muhendislik/sistemler/ardisik-numara-uretiminde-race-condition-ve-gap/): Yasal olarak ardışık ve boşluksuz numaraları paralel worker'larla üretmek: race condition ile gap'i birlikte çözen JIT rezervasyon kalıbı. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/ardisik-numara-uretiminde-race-condition-ve-gap.md)
- [Veri Yoğunluklu Sistemlerde Ölçek Kırılma Noktaları](https://muhammetsafak.com/tr/muhendislik/sistemler/veri-yogunluklu-sistemler-kirilma-noktalari/): Veri yükü arttıkça boring mimari nerede kırılır? Working set, read replica, partitioning, yazma yükü, ayrı veri katmanı — sırayla ve maliyetleriyle. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/veri-yogunluklu-sistemler-kirilma-noktalari.md)
- [Tek VPS Üzerinde Çoklu Proje Mimarisi](https://muhammetsafak.com/tr/muhendislik/sistemler/tek-vps-coklu-proje-mimarisi/): Bir VPS, birden çok bağımsız uygulama. Kubernetes yerine bilinçli minimalizm: kullanıcı izolasyonu, ayrı PHP-FPM pool, paylaşılan PostgreSQL/Redis. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/tek-vps-coklu-proje-mimarisi.md)
- [Laravel Production Stack: Her Bileşen Neden Orada?](https://muhammetsafak.com/tr/muhendislik/sistemler/laravel-production-stack/): Nginx + PHP-FPM + Redis + PostgreSQL + Supervisor + Horizon ile production-grade bir Laravel kurulumu. Her bileşenin işi ve değiştirildiğinde ne kaybedileceği. (Markdown: https://muhammetsafak.com/tr/muhendislik/sistemler/laravel-production-stack.md)

## Denemeler

- [Production Hatasını Hangi Test Engeller?](https://muhammetsafak.com/tr/muhendislik/denemeler/integration-vs-unit-test/): Unit ve integration testlerin gerçek getirisi: hangisinin production hatalarını gerçekten önlediği ve test bütçesinin nereye ayrılacağı. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/integration-vs-unit-test.md)
- [Upgrade'i Ertelemenin Maliyeti](https://muhammetsafak.com/tr/muhendislik/denemeler/upgrade-ertelemenin-maliyeti/): PHP 7.1 → 8.2 upgrade'i "çalışıyor ya" diye ertelendi. Fatura sonra geldi: bağımlılık kilidi, toplu breaking change ve aylara yayılan bug'lar. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/upgrade-ertelemenin-maliyeti.md)
- [%100 Coverage Peşinde İşlevsiz Test Yazmak](https://muhammetsafak.com/tr/muhendislik/denemeler/sade-test-kulturu/): Test coverage bir hedef değil, bir yan üründür. Sayıyı yükseltmek için yazılan, hiçbir hatayı yakalamayan testlerin maliyeti. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/sade-test-kulturu.md)
- [Her Şey İçin Bir Paket Kurmanın Bedeli](https://muhammetsafak.com/tr/muhendislik/denemeler/ucuncu-parti-paket-bagimliligi/): Küçük bir fonksiyon için bağımlılık eklemenin güvenlik, bakım ve supply-chain maliyeti — ve ne zaman kendiniz yazmanın daha ucuz olduğu. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/ucuncu-parti-paket-bagimliligi.md)
- [Verin Gerçekten Büyük mü, Yoksa Kötü mü Modellenmiş?](https://muhammetsafak.com/tr/muhendislik/denemeler/buyuk-veri-sendromu/): Çoğu büyük veri problemi aslında kötü modelleme veya eksik indekstir. Dağıtık sisteme geçmeden önce verinin gerçekten büyük olup olmadığını sorgulamak. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/buyuk-veri-sendromu.md)
- [ORM mi, Native SQL mi?](https://muhammetsafak.com/tr/muhendislik/denemeler/orm-mu-native-sql-mi/): ORM bizi tembelleştiriyor mu yoksa gerçekten koruyor mu? İki yaklaşımın güvenlik, okunabilirlik ve performans dengesi. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/orm-mu-native-sql-mi.md)
- [NoSQL Tuzağı: "Şeması Yok" Diye Başlamak](https://muhammetsafak.com/tr/muhendislik/denemeler/nosql-tuzagi/): Şemasız başlamanın verdiği rahatlıkla NoSQL'e geçen projelerin er geç çarptığı tutarlılık ve veri bütünlüğü krizleri. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/nosql-tuzagi.md)
- [PostgreSQL Her Şeye Yeter mi?](https://muhammetsafak.com/tr/muhendislik/denemeler/postgresql-her-seye-yeter-mi/): Ayrı arama motoru, kuyruk veya doküman DB'si eklemeden önce: PostgreSQL'in tek başına nereye kadar yettiği ve sınırının nerede başladığı. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/postgresql-her-seye-yeter-mi.md)
- [Gereğinden Karmaşık Bir Sistemin Verdiği Sinyaller](https://muhammetsafak.com/tr/muhendislik/denemeler/gereginden-karmasik-sistem-sinyalleri/): Kodun veya mimarinin gereksiz karmaşıklaştığını ele veren somut kırmızı çizgiler — ve sadeleştirmeye nereden başlanacağı. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/gereginden-karmasik-sistem-sinyalleri.md)
- [Mimari Kararlar Çürür Çünkü Onları Kimse Çalıştırmaz](https://muhammetsafak.com/tr/muhendislik/denemeler/mimari-kararlar-curur/): Bir wiki'ye yazılmış mimari karar bir dilektir. Zorlayamadığın sınırlar sessizce aşınır — diyagram kodla örtüşmeyi bırakana dek. Kuralı çalıştırılabilir yap. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/mimari-kararlar-curur.md)
- [AI Darboğazı Kaldırmadı, Yerini Değiştirdi](https://muhammetsafak.com/tr/muhendislik/denemeler/ai-darbogazi-kaldirmadi/): Ucuz kod üretimi, review/entegrasyon/doğrulama yetişemiyorsa çıktıyı artırmaz. Darboğaz yalnızca aşağı kayar — ve asıl iş artık orada (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/ai-darbogazi-kaldirmadi.md)
- [Kararsız Testler: Retry Çözüm Değil](https://muhammetsafak.com/tr/muhendislik/denemeler/kararsiz-testler-ve-determinizm/): AI test yazmayı neredeyse bedava yaptı, kararsız süitler patladı. Retry ve quarantine neden bir koşu bandı ve kararsızlığı deterministik olarak ne yakalar (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/kararsiz-testler-ve-determinizm.md)
- [Şema Evrimi: Sözleşmeyi Kırmadan Değiştirmek](https://muhammetsafak.com/tr/muhendislik/denemeler/sema-evrimi-sozlesmeyi-kirmadan/): Servisler arası bir sözleşmeyi atomik değiştiremezsin. Kural: additive güvenli, kırıcı değişiklik yeni bir kimlik ister — ve önce tüketiciler yükseltir (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/sema-evrimi-sozlesmeyi-kirmadan.md)
- [Katmanlı Mimari mi, Clean Architecture mı?](https://muhammetsafak.com/tr/muhendislik/denemeler/katmanli-mimari-mi-clean-architecture-mi/): Klasik katmanlı yapı çoğu projeye yeterken neden soyutlama katmanlarında boğuluyoruz; Clean Architecture gerçekten ne zaman değer katar? (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/katmanli-mimari-mi-clean-architecture-mi.md)
- [Vibe Coding ile Production'a Çıkılır mı?](https://muhammetsafak.com/tr/muhendislik/denemeler/vibe-coding-ile-production/): Vibe coding ilk sürümün maliyetini düşürür, yanlış olmanın maliyetini değil. O fatura build'de değil, production'da çıkar. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/vibe-coding-ile-production.md)
- ["İleride Lazım Olur" Kodunun Production Faturası](https://muhammetsafak.com/tr/muhendislik/denemeler/ileride-lazim-olur-kodunun-faturasi/): YAGNI'yi pratikte uygulamak: bugün gerekmeyen esnekliği eklemenin bakım, okunabilirlik ve hata yüzeyi olarak geri ödenen bedeli. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/ileride-lazim-olur-kodunun-faturasi.md)
- [Mikroservise Ne Zaman Geçerim?](https://muhammetsafak.com/tr/muhendislik/denemeler/mikroservise-ne-zaman-gecerim/): Monolitten dağıtık mimariye geçişi haklı çıkaran ölçülmüş sinyaller — ve geçiş için henüz erken olduğunu söyleyen yaygın yanlış gerekçeler. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/mikroservise-ne-zaman-gecerim.md)
- [Gitflow mu, GitHub Flow mu? Neye Göre Seçiyorum?](https://muhammetsafak.com/tr/muhendislik/denemeler/gitflow-mu-github-flow-mu/): Branch stratejisi seçimini ürün modeli, sürüm sayısı ve deploy ritmine göre yapmanın pratik kriterleri — ve iki modelin yanlış yerde nasıl kırıldığı. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/gitflow-mu-github-flow-mu.md)
- [Projelere Neden Modüler Monolit ile Başlıyorum?](https://muhammetsafak.com/tr/muhendislik/denemeler/projelere-neden-moduler-monolit-ile-basliyorum/): Mikroservislere atlamadan önce tek deploy edilebilir bir uygulamada net modül sınırları kurmanın gerekçesi — ve bu kararı ne zaman bıraktığım. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/projelere-neden-moduler-monolit-ile-basliyorum.md)
- [Trunk-Based Development'a Ne Zaman Geçiyorum?](https://muhammetsafak.com/tr/muhendislik/denemeler/trunk-based-ne-zaman-geciyorum/): Yüksek frekanslı deploy yapan ekiplerde release branch'lerinin neden kırıldığı ve trunk-based'in ne kadarının disiplin olduğu — geçtiğim ve geçmediğim eşikler. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/trunk-based-ne-zaman-geciyorum.md)
- [Neden Boring Architecture'ı Tercih Ediyorum](https://muhammetsafak.com/tr/muhendislik/denemeler/neden-boring-architecture/): Yeni teknoloji peşinde koşmak yerine kanıtlanmış araçları seçmenin pragmatik gerekçesi. Bu bir korkaklık değil, bir bütçe kararı. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/neden-boring-architecture.md)
- [AI-Assisted Engineering Workflow'um](https://muhammetsafak.com/tr/muhendislik/denemeler/ai-assisted-engineering-workflow/): Claude Code ve benzeri ajanları üretim kodunda güvenle kullanmak için takip ettiğim yedi kural — alaycı bir yazı değil, bir disiplin manifestosu. (Markdown: https://muhammetsafak.com/tr/muhendislik/denemeler/ai-assisted-engineering-workflow.md)

## Diziler

- [PostgreSQL Üretimde](https://muhammetsafak.com/tr/muhendislik/seri/postgresql-in-production/): Tek bir PostgreSQL kümesini üretimde ayakta tutmanın pratiği: bağlantı havuzu, yedekleme, okuma/yazma ayrımı, sıfır kesintili göç ve geri-dönüş testi. (5 bölümlük dizi)
- [Production'da Upgrade](https://muhammetsafak.com/tr/muhendislik/seri/production-upgrade/): Runtime, framework ve bağımlılık upgrade'ini risk kararı olarak ele almak: tetikleyiciler, envanter, karar matrisi, rollout ve upgrade etmeme kararı. (2 bölümlük dizi)

## Araçlar

- [.env Ayrıştırıcı](https://muhammetsafak.com/tr/muhendislik/araclar/env-parser/): dotenv içeriğini anahtar/değer tablosuna ayırır, hatalı satırları işaretler; secret, token ve password gibi anahtarların değerini maskeler. Tarayıcıda çalışır. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/env-parser.md)
- [Backoff & Jitter Hesaplayıcı](https://muhammetsafak.com/tr/muhendislik/araclar/backoff-calculator/): Exponential backoff zamanlamasını hesapla ve full, equal, decorrelated jitter retry’leri nasıl dağıttığını gör. Tarayıcıda çalışır, hiçbir şey yeniden denenmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/backoff-calculator.md)
- [Base64 Kodlayıcı / Çözücü](https://muhammetsafak.com/tr/muhendislik/araclar/base64/): Metni Base64 olarak encode ve decode eder; URL-safe varyantı ve UTF-8 (Unicode) metni destekler. Tarayıcıda çalışır, metin dışarı gönderilmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/base64.md)
- [gitignore Üretici](https://muhammetsafak.com/tr/muhendislik/araclar/gitignore-generator/): Klasörüne göre .gitignore üret. Rakiplerinin aksine sunucuya hiçbir şey gitmez — klasörün dosya adları bile sayfadan çıkmaz. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/gitignore-generator.md)
- [HTTP Durum Kodları Referansı](https://muhammetsafak.com/tr/muhendislik/araclar/http-status/): Yaygın HTTP durum kodlarının anlamı ve tipik kullanım yeri. Kodu, adı ya da anahtar kelimeyi yazarak ara. Tarayıcıda çalışır, arama dışarı gönderilmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/http-status.md)
- [JSON Biçimlendirici](https://muhammetsafak.com/tr/muhendislik/araclar/json-formatter/): JSON içeriğini 2 boşluk, 4 boşluk ya da tab girintisiyle biçimlendirir veya sıkıştırır; hatalı JSON için hata verir. Tarayıcıda çalışır, veri dışarı çıkmaz. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/json-formatter.md)
- [JSON Schema Geriye Dönük Uyumluluk Diff'i](https://muhammetsafak.com/tr/muhendislik/araclar/schema-compat/): İki JSON Schema’yı diff’le: değişiklik backward-compatible mi, yoksa yeni bir mesaj sürümü gerektiren kırıcı bir değişiklik mi? Tarayıcıda çalışır. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/schema-compat.md)
- [JWT Çözücü](https://muhammetsafak.com/tr/muhendislik/araclar/jwt-decoder/): JWT header ve payload kısımlarını çözer, exp ve iat zamanlarını ISO biçiminde gösterir. İmzayı doğrulamaz; token tarayıcıda kalır, dışarı gönderilmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/jwt-decoder.md)
- [Klavye Hız Testi](https://muhammetsafak.com/tr/muhendislik/araclar/typing-test/): Türkçe ve İngilizce yazım hızını dürüstçe ölçer: birincil metrik CPM, kod modu gerçek parantez/şablon karakterleriyle çalışır. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/typing-test.md)
- [Kod Görseli Üretici](https://muhammetsafak.com/tr/muhendislik/araclar/code-image/): Kod bloğunu paylaşılabilir bir PNG’ye çevirir. Kodun kendisi tarayıcıdan hiç çıkmaz; tema, ölçek ve pencere çerçevesi seçilebilir. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/code-image.md)
- [Parola Üretici](https://muhammetsafak.com/tr/muhendislik/araclar/password-generator/): Kriptografik olarak güvenli parola üretici: uzunluk ve karakter sınıfları ayarlanır, karışan ve shell özel karakterleri çıkarılabilir. Tarayıcıda çalışır. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/password-generator.md)
- [Unix Timestamp Dönüştürücü](https://muhammetsafak.com/tr/muhendislik/araclar/timestamp/): Unix timestamp ile ISO 8601 arasında çift yönlü dönüştürür; saniye ve milisaniyeyi otomatik algılar, UTC, yerel ve göreli zamanı gösterir. Tarayıcıda çalışır. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/timestamp.md)
- [URL Ayrıştırıcı](https://muhammetsafak.com/tr/muhendislik/araclar/url-parser/): URL’yi protocol, host, port, pathname, hash ve kimlik bilgilerine ayırır, query parametrelerini tabloda gösterir. Tarayıcıda çalışır, URL dışarı gönderilmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/url-parser.md)
- [UUID Üretici (v4 & v7)](https://muhammetsafak.com/tr/muhendislik/araclar/uuid/): UUID v4 (rastgele) ve v7 (zaman sıralı, RFC 9562) üretir; tek tek ya da toplu. Üretim tarayıcıda, Web Crypto API ile yapılır, hiçbir şey dışarı gönderilmez. (Markdown: https://muhammetsafak.com/tr/muhendislik/araclar/uuid.md)

## Sözlük

- [Sözlük](https://muhammetsafak.com/tr/muhendislik/sozluk/)
- [Stack](https://muhammetsafak.com/tr/muhendislik/stack/) (Markdown: https://muhammetsafak.com/tr/muhendislik/stack.md)

## Bu bölüm hakkında

## Vizyon

Türkçe teknik içerikte eksik olan şey daha fazla giriş anlatımı değil; bir mühendisin
aynı kararla karşılaştığında dönüp bakacağı referans. Mühendislik bölümünün gitmek istediği yer
burası: yıllar sonra açıldığında da hangi kısıt altında verildiği belli olan kararların
arşivi.

Bunu üç şeyle ölçüyorum. Bir yazının Türkçe mühendislik sohbetlerinde kaynak olarak
gösterilmesi. Araçlardan gelen bir mühendisin yazılara geçmesi. Sitenin bir pazarlama
sayfası gibi değil, dokümantasyon gibi açılması.

Not defteri büyüyecek, ama hızlanmayacak.
