İçeriğe geç

15 yıl

Mühendislik

Ankara'da yazılım mühendisiyim. On beş yıldır bu işi yapıyorum; çoğunda JVM üzerinde dağıtık sistemler tasarladım ve işlettim. 2023'ün sonundan itibaren Huawei Big Data'da önce Apache Spark'ın iç yapısı, sonra Apache Iceberg üzerinde çalıştım; proje Eylül 2026'da sona erdi.

Artık bağımsız çalışıyorum ve tamamen uzaktan, sözleşmeli ya da kadrolu işlere açığım: JVM üzerinde backend ve dağıtık sistemler, bir de Spark, Iceberg ve bunlarla kurulan veri platformları. Ofis ya da hibrit çalışmayı düşünmüyorum. İngilizce iş yürütmek ve uluslararası ekiplerle çalışmak bana yabancı değil, saat dilimim UTC+3.

Bunun yanında kendi işlerimi de yapıyorum: Iceberg metadata'sı için bir masaüstü aracı, Claude Code için bir durum çubuğu, bir dokümantasyon kiti, çocuklarım için bulmaca oyunları. Anlamam uzun süren bir şeyi, başkası daha kısa sürede anlasın diye yazıya dökerim.

JVM backend'leri, dağıtık sistemler ve veri platformları üzerine tamamen uzaktan, sözleşmeli ya da kadrolu işlere açığım.

Deneyim

  1. 2023–2026

    Huawei Big Data · Kıdemli yazılım mühendisi, Spark ve Iceberg (bir tedarikçi firma üzerinden)

    Önce Apache Spark üzerinde çalıştım; optimizer, Kubernetes ve önbellek katmanı. 2026'da Apache Iceberg'e geçtim ve çoğunlukla birincil anahtarlı tablolar ile bu tablolara Spark ve Flink'ten yazıp okuyan kod üzerinde çalıştım. Proje Eylül 2026'da sona erdi.

    • Iceberg'in birincil anahtarlı tabloları için Paimon semantiğinde, değiştirilebilir merge engine'ler tasarlayıp geliştirdim (deduplicate, first-row, partial-update ve sekiz fonksiyonlu aggregation); Spark 4.0 ile yazma ve okuma, sütunlu okuma dahil. Tasarım belgesini ve kullanım kılavuzunu da ben yazdım.
    • Iceberg v3 tablolarında Spark SQL sütun DEFAULT değerleri (dört katalogda doğrulandı) ve Iceberg upsert tablolarındaki satır düzeyindeki değişiklikleri Flink SQL ile akış olarak okuma.
    • Bir Hive yükseltmesinden sonra CI'ın Flink test sınıflarının çoğunu sessizce atladığını fark edip düzelttim; 184 sınıftan 183'ü yeniden çalışıyor, test metodu sayısı 1.282'den 4.456'ya çıktı. metadata.json'un tembel ayrıştırılmasını JMH ile ölçüp kullanılmamasını önerdim, çünkü okuma %21–62 ucuzlarken commit 1,3–1,7 kat pahalanıyordu.
    • Iceberg'den önce Spark'ta executor'ların Vertical Pod Autoscaler kullanmasını sağlayan, Go ile yazılmış bir Kubernetes admission webhook'u, YARN'ın yerine geçen bir küme yöneticisi, iç önbellek katmanı için ön yükleme ve jeton yenileme, bir de upstream'deki merge-scalar-subqueries iyileştirmesi.
    • 2025'te Sivas Cumhuriyet Üniversitesi'ndeki Büyük Veri dersinde Spark ve Flink konularını ben anlattım, diğer konuları ekipten arkadaşlar anlattı.

    Apache Iceberg, Apache Spark, Flink, Paimon, Kubernetes, Java, Scala, Go, Python

  2. 2017–2023

    Atlassian · Yazılım mühendisi, dağıtık sistemler

    Altı yıl nöbet çizelgeleme ve bildirim sistemleri üzerinde çalıştım; bu sürenin büyük kısmında uzaktan çalışan bir ekipteydim. Satın almalar, ofis kapanışları ve işten çıkarmalar boyunca dağıtık sistemler tasarladım ve onları ayakta tuttum.

    • Eski nöbet çizelgeleme sisteminin kesintisiz olarak monolitten mikroservislere taşınması; dünya çapında milyonlarca kişi kullanıyor.
    • Dağıtık nöbet olay sistemleri ve hiç durmayan küresel bir bildirim servisi için AWS üzerinde (DynamoDB, SQS, SNS) %99,9 erişilebilirlik.
    • Bildirim teslim sorunlarında hızlı teşhis ve bir sonrakini ekibin bensiz çözmesini sağlayan teknik yazılar.

    Java, Kotlin, Spring, AWS

  3. 2013–2017

    MilSOFT · Yazılım mühendisi, savunma

    Savunma sistemleri için entegrasyon testleri. Bunun için gereken araçlar henüz yoktu, onları biz yazdık.

    • Şirket içi bir Java test ve emülasyon aracının geliştirilmesini tasarımdan kuruluma kadar yönettim. Araç, başka projelerde entegrasyon testi ve hata ayıklamada takılınan yerleri çözdü.
    • Ağ, çok iş parçacıklı programlama, iletişim protokolleri, kaynak kısıtları, günlükleme ve özel ayrıştırıcılar üzerinde, her adımda başarımı gözeterek çalıştım. C++ ile 12 bitlik bir JPEG ayrıştırıcı da yazdım.

    Java, JavaFX, Swing, C++

  4. 2012–2013

    AnelARGE · Yazılım mühendisi, ağ güvenliği Ar-Ge

    Ağ güvenliği üzerine çalışan bir Ar-Ge şirketi. İşim çoğunlukla farklı teknolojilerle yazılmış sistemleri birbirine bağlamaktı.

    • Şirketin farklı teknoloji yığınlarını birbirine bağlayan, WSO2 ESB üzerinde bir iletişim omurgası.
    • İstekleri veritabanından okunan ölçütlere göre işleyen, C ile yazılmış bir Apache web sunucusu modülü.
    • Eclipse RCP ile görselleştirme çalışmaları.

    Java, C, WSO2, Eclipse RCP

  5. 2011

    ExtremePACS · Yazılım mühendisi, sağlık

    Sağlık alanında bir girişim. Yazılımını yaptığımız hastanelerde neredeyse yaşıyorduk; herkes aynı anda birkaç işe bakıyordu ve prosedürler daha yeni yazılıyordu.

    • .NET ile görüntü arşivleme (PACS) ve radyoloji bilgi (RIS) sistemleri; gereksinim analizinden hastanedeki teslimata kadar.
    • Elle yapılan kurulum adımlarını ortadan kaldıran şirket içi araçlar.

    C#, .NET, Silverlight, WCF

Öne çıkan projeler

Tüm projeler

Bitmiş ve kullanımda.

  • Bilge Baykuş

    yayında

    Çocuklar için Türkçe bulmaca oyunları. Kırktan fazla oyun var; hepsi internetsiz, web'de ve Android'de oynanabiliyor.

  • havasaha

    yayında

    Türkiye'de drone ile nerede uçulabileceğini gösteren bir harita. SHGM bölgeleri, geçici NOTAM kısıtlamaları, 3B arazi ve günün güneş saatleri bir arada; ücretsiz ve hesap gerektirmiyor.

  • Iceberg Lens

    yayında

    Iceberg, Paimon ve Delta Lake tablolarının metadata'sını snapshot'lar arasında gezilebilen bir grafik olarak çizen ve kaydedilen her sayıyı dosyalarla karşılaştıran bir masaüstü aracı. IntelliJ içinde ve komut satırından da çalışıyor.

  • claude-quota

    yayında

    Claude Code için, bütün kullanım kotalarını çalışırken gösteren bir durum satırı. Bir hız oku, kotanın pencere sıfırlanmadan önce bitip bitmeyeceğini gösteriyor.

  • oku

    yayında

    Bir dokümantasyon araç takımı. Sayfalar Markdown ile yazılıp tarayıcıda çiziliyor; tek bir komut aramalı bir site, bir llms.txt ve her sayfanın tek dosyalık kopyasını üretiyor.

  • LogMerge

    yayında

    Çok sayıda log dosyasını ve arşivi zaman damgası sırasıyla tek bir akışta birleştiriyor. M1 Max üzerinde diskten saniyede yaklaşık 1 GB okuyor.

Son yazılar

Tüm yazılar

Spark, Iceberg, temiz kod ve yaptığım araçlar üzerine yazdıklarım.

  1. Iceberg Manifest'lerini Elle Okumayı Bırakın

    Apache Iceberg metadata'sını keşfetmeyi daha hızlı ve kolay hale getiren yeni bir araç: Iceberg Lens. Karmaşık metadata'yı ayrıntılı inceleme imkânı sunan etkileşimli bir grafiğe dönüştürür; dosyaları elle ayrıştırmadan hata ayıklamak ve tablo yapısını anlamak için tasarlandı.

  2. Tasarım Zorluğu: Kubernetes VPA'yı Apache Spark ile Entegre Etmek

    Kubernetes Vertical Pod Autoscaler'ı (VPA) verimli kaynak yönetimi için Apache Spark ile entegre etmenin zorluklarını ve tasarım yaklaşımlarını inceliyoruz.

  3. 10 Yılı Aşkın Backend Deneyiminden Sonra Neden Büyük Veri Mühendisliğine Geçtim

    Backend mühendisi olarak on yılı aşkın bir süre çalıştıktan sonra yeni bir alana geçtim. Bu yazıda büyük veri dünyasına beklenmedik geçişimi ve kariyer değişikliğimin arkasındaki motivasyonları anlatıyorum.