Blog

Öğrendiklerimi yazarak kaydediyorum.

Burada pazarlama metni yok. App Store'da uygulama reddedildiğinde ne yaptığımı, hangi arka ucu neden seçtiğimi ve bir siteyi Google'da görünür yapmak için attığım adımları — yani gerçekten yaşadığım şeyleri — yazıyorum. Bir kısmı geleceğin bana notu, bir kısmı da aynı sorunu yaşayan birine yardım etsin diye.

Ar-Ge
8 dk okuma

Modeli Buluta Değil Telefona Koymak

Modeli buluta koymak kolay yol. Ar-Ge tarafında tasarladığım işlerin çoğunda modeli telefona koymayı seçtim; bu yazı o kararın kazancını ve bedelini anlatıyor.

Yazıyı oku
Ar-Ge
6 dk okuma

Asıl Zorluk Model Değil, Veri

Modeli seçmek işin kolay kısmıydı. Zor kısım, açık veri setindeki temiz laboratuvar fotoğrafıyla çiftçinin gölgede aceleyle çektiği fotoğraf arasındaki uçurumdu.

Yazıyı oku
Mobil Geliştirme
3 dk okuma

Google Play'de Uygulama Yayınlamak: App Store'dan 7 Farkı

İlk uygulamalarımı Play Store'da yayınladım, iOS'a bir yıl sonra geçtim. Kademeli yayın, test kanalları, Data Safety ve hedef API zorunluluğu — iki mağaza arasındaki gerçek farklar.

Yazıyı oku
Mobil Geliştirme
7 dk okuma

İnternet Yokken de Çalışması Gereken Uygulama

Bir uygulamanın en çok işe yarayacağı an, çoğu zaman internetin çalışmadığı an oluyor. Sağlam tasarımı ve Vakti Geçmeden'in QR doğrulaması üzerinden çevrimdışı öncelikli mimarinin kararları ve bedelleri.

Yazıyı oku
Mobil Geliştirme
4 dk okuma

Bir Çökme Raporunu Nasıl Okurum?

Kullanıcı çöken uygulamayı bildirmez, siler. Sembolikleştirmeden önceliklendirmeye, yayın sonrası çökme takibi rutinim.

Yazıyı oku
Arka Uç
7 dk okuma

"İlk Bulan Kazanır" Aslında Bir Yarış Koşulu Problemi

Ürün tarafında tek cümlelik bir kural — ilk bulan kazanır — arka uçta bir yarış koşulu problemine dönüşüyor. Mysterious Treasure'da tek kazanan garantisini nasıl kurduğumu anlatıyorum.

Yazıyı oku
Ürün
8 dk okuma

Kimse İlk Adımı Atmak İstemiyor: Emanet Akışı

Alıcı parayı, satıcı bileti önce vermek istemiyor. 2.El Bilet'te bu kilitlenmeyi tek bir düğmeyle değil, birbirini bekleyen durumlardan oluşan bir emanet akışıyla çözdüm.

Yazıyı oku
Mobil Geliştirme
5 dk okuma

App Store'a Uygulama Yüklerken Öğrendiğim 7 Ders

2021'de Swift'e geçtim, o günden beri Apple ekosisteminde çalışıyorum. Bu yazı, o süreçte yediğim redlerin ve "keşke ilk uygulamamda bilseydim" dediğim şeylerin dürüst dökümü.

Yazıyı oku
Mobil Geliştirme
7 dk okuma

Üç Dilde Yerel Yazdıktan Sonra Flutter’a Geçmek

Aynı ürünü iki kez yazmayı bıraktım. Tek kod tabanının bana ne kazandırdığını, karşılığında neyi bıraktığımı ve yerel deneyimin Flutter yazarken nasıl işe yaradığını anlatıyorum.

Yazıyı oku
Ar-Ge
7 dk okuma

En İyi Çözüm Yerine Yeterince İyi Çözüm

Araç rotalama problemi NP-zor: durak sayısı arttıkça kesin çözüm pratikte imkânsızlaşıyor. RotaAkıl tasarımı sırasında “optimal” ile “yeterli” arasındaki farkın aslında bir ürün kararı olduğunu gördüm.

Yazıyı oku
Arka Uç
3 dk okuma

Firestore Faturası Neden Şişer?

Fatura veri boyutuna değil okuma sayısına bakıyor. Maliyeti şişiren beş kalıp: önbelleksiz okuma, açık kalan dinleyici, N+1 sorgu, sayfalamasız liste ve saymak için hepsini çekmek.

Yazıyı oku
Yazılım
9 dk okuma

Swift: Java’dan Gelen Birinin Gözünden

2021’de Java’dan Swift’e geçtim ve ilk haftalarda yazdığım şey aslında Swift söz dizimiyle yazılmış Java’ydı. Optional’lar, değer tipleri, protokol uzantılarındaki gönderim davranışı, ARC ve closure yakalama listeleri konusunda hangi refleksimin nerede yanlış çalıştığını, kendi hatalarım üzerinden anlatıyorum.

Yazıyı oku
Mobil Geliştirme
3 dk okuma

Türkiye'ye Değil Dünyaya Uygulama Yapmak

Yerelleştirme çeviri değildir. Metin uzunluğundan para birimine, bölgesel fiyatlandırmadan bildirim saatine kadar global pazara çıkarken değişmesi gerekenler.

Yazıyı oku
Yazılım
9 dk okuma

Java ile Android: İlk Uygulamamdan Kalan Dersler

2020'de Java ile ilk Android uygulamamı yazarken ekranı döndürünce verilerin uçmasından tutun da bellek sızıntılarına kadar her tuzağa tek tek düştüm. Bu yazıda yaşam döngüsünü, context sızıntılarını, AsyncTask döneminden bugüne kalan alışkanlıkları ve null kontrolünü kendi hatalarım üzerinden anlatıyorum.

Yazıyı oku
Yazılım
9 dk okuma

Kotlin’i Java Projesine Sokmak

2020’de Java ile yazdığım Android projelerine Kotlin’i sonradan ekledim. Hepsini birden çevirmek yerine dosya dosya ilerledim. Bu yazıda platform tiplerinin neden null güvenliğini deldiğini, Firestore ile data class kullanırken çalışma anında patlayan yeri, extension function’ların Utils sınıflarının yerini nasıl aldığını ve AsyncTask’tan coroutine’e geçerken Firebase çağrılarını nasıl sardığımı anlatıyorum. Kırılan Java çağrıları ve bunları düzelten @Jvm* işaretleri de dahil.

Yazıyı oku
Yazılım
8 dk okuma

Python’la Donanım: Raspberry Pi ve Arduino Notları

Python öğrendikten bir yıl sonra Raspberry Pi ve Arduino ile bir deprem erken uyarı prototipi yaptım. Ekranda beklediğim düz çizgi yerine titreyen bir sayı bulutu gördüm. GPIO, seri hat, örnekleme, filtreleme ve güç konusunda o projede öğrendiklerim.

Yazıyı oku
Ürün
4 dk okuma

Kullanıcı “Şu Özellik Olsun” Dediğinde Ne Anlamalı?

Kullanıcı size çözüm önerir; asıl anlatmak istediği şey ise yaşadığı problemdir. İsteği çözüme değil probleme çevirmek için kullandığım soruları ve önceliklendirme yöntemimi yazdım.

Yazıyı oku
Yazılım
8 dk okuma

Flutter’da İlk Ay: Widget Ağacına Alışmak

Altı yıl Swift, Java ve Kotlin ile yerel uygulama yazdıktan sonra Flutter’a geçtim. Dilin sözdizimi değil, arayüzü kurma biçimi zorladı: değiştirilemez widget’lar, sürekli çağrılan build metodu, setState’in kapsadığı alan ve BuildContext’in ağaçtaki yeri. İlk ayda kafamı karıştıran noktaları ve yaptığım hataları sırayla anlatıyorum.

Yazıyı oku
Arka Uç
5 dk okuma

İstemciye Asla Güvenme: Mobil Uygulamada Güvenliğin Temeli

Mobil uygulama, kullanıcının cihazında çalışan ve incelenebilen bir program. Buradan çıkan tek kural var: istemciden gelen hiçbir şey doğru kabul edilemez. Bu kuralın pratikte ne anlama geldiğini yazdım.

Yazıyı oku
Yazılım
8 dk okuma

Modern CSS: Grid, Değişkenler ve Karanlık Tema

Bu siteyi saf CSS ile yazarken kurduğum tema sistemi, çözdüğüm ızgara taşmaları ve kontrast düzeltmeleri. Kütüphane yok, gerçek kod var.

Yazıyı oku
SEO & Pazarlama
8 dk okuma

Core Web Vitals: Hız Neden SEO İşi Oldu

Core Web Vitals aslında üç basit soru soruyor: sayfa ne zaman göründü, göründükten sonra yerinde durdu mu, dokunulduğunda cevap verdi mi. Bu üç metriği bozan tipik hataları ve teslim ettiğim sitelerde uyguladığım somut düzeltmeleri anlatıyorum.

Yazıyı oku
Arka Uç
6 dk okuma

NoSQL’de Veri Modelleme: Tabloyu Unutup Ekranı Düşünmek

İlişkisel veritabanında veriyi normalleştirirsiniz; belge tabanlısında ekranı modellersiniz. Bu farkı geç anlamanın maliyetini ödedikten sonra kurduğum modelleme yaklaşımını anlatıyorum.

Yazıyı oku
Sosyal Medya
8 dk okuma

Marka Sesi: Aynı Şeyi Söylemenin Yüz Yolu

Marka sesi, sloganla değil her gün verilen küçük kararlarla oluşuyor. İki markanın sosyal medyasını yürütürken tonu nasıl yazılı hale getirdiğimi, platform farklarını, tekrar eden formatları ve içerik takvimini anlatıyorum.

Yazıyı oku
Kariyer
4 dk okuma

Öğrenciyken Ürün Çıkarmak: 18 Yaşında Öğrendiğim Şeyler

İlk uygulamamı 18 yaşında yayınladım, sonra kendim kaldırdım — çünkü yazmayı biliyordum ama yürütmeyi bilmiyordum. Öğrenciyken ürün çıkarmanın gerçek kısıtlarını ve o dönemden çıkardığım dersleri yazdım.

Yazıyı oku
Kariyer
3 dk okuma

2018'den 2026'ya: Python'dan 10+ Yayınlanmış Uygulamaya

Yarıda bıraktığım TÜBİTAK projesi, ilk gelir getiren uygulamam ve dil değiştirirken öğrendiklerim. Düz bir başarı hikâyesi değil — işe yarayanların ve yaramayanların listesi.

Yazıyı oku
Mobil Geliştirme
5 dk okuma

İki Mağaza, İki Kültür: App Store ve Google Play Aynı İş Değil

Aynı uygulamayı iki mağazaya da yolladım; süreçler yüzeyde benzer, pratikte bambaşka. İnceleme mantığından test dağıtımına, ret sebeplerinden mağaza sayfasına kadar farkları ve her birine göre nasıl plan yaptığımı yazdım.

Yazıyı oku
Sosyal Medya
4 dk okuma

Özellik Değil Fayda Yazın: Uygulama Metinlerini Baştan Yazmak

Geliştiricinin yazdığı metin genelde “ne yaptığını” anlatır, kullanıcının aradığı ise “bana ne” cevabıdır. Kendi uygulamalarımın mağaza ve arayüz metinlerini yeniden yazarken kullandığım yöntemi somut cümleler üzerinden anlatıyorum.

Yazıyı oku
SEO & Pazarlama
3 dk okuma

Uygulamam Yayında Ama Kimse İndirmiyor

Yayınladıktan sonra indirmelerin kendiliğinden gelmediğini pahalı bir şekilde öğrendim. Bir uygulamayı büyütmek için attığım adımlar.

Yazıyı oku
Sosyal Medya
5 dk okuma

Tek Kişilik Ekiple İçerik Üretmek: Kurduğum Döngü

İçerik üretiminde asıl sorun ilham değil, süreklilik. Hem uygulama geliştirip hem yayın yapmak zorunda kalınca kurduğum döngüyü — fikir havuzu, toplu çekim günü, format şablonları ve tek bir takvim — anlatıyorum.

Yazıyı oku
SEO & Pazarlama
5 dk okuma

Yerel İşletme SEO’su: Haritada Görünmek İçin Ne Yapıyorum

Yerel aramada rekabet, ülke geneli aramalardan bambaşka çalışıyor: mesafe, alaka ve bilinirlik üçlüsü. Fiziksel adresi olan işletmeler için kurduğum düzeni — profil, NAP tutarlılığı, sayfa mimarisi ve yorum akışı — adım adım yazdım.

Yazıyı oku
SEO & Pazarlama
6 dk okuma

Schema.org: Google’a Sayfanı Kelimelerle Değil Veriyle Anlatmak

Arama motoru sayfanızdaki metni okuyor ama “bu bir hizmet mi, bir yazı mı, bir kişi mi” sorusunu tahmin ediyor. JSON-LD tam olarak bu tahmini ortadan kaldırıyor. Hangi tipleri neden kullandığımı, doğrulamayı nasıl yaptığımı ve en sık düştüğüm tuzakları anlatıyorum.

Yazıyı oku

Yazdıklarım işine yaradıysa

Ekibinizde nasıl bir katkı sunabileceğimi konuşmak isterseniz bana yazın. CV'me ve tüm projelerime aşağıdan ulaşabilirsiniz.