Skip to content

Anonimleştirilmiş örnekler ​

Bu on örnek, önceki görevlerimde karşılaştığım somut sorunları nasıl ele aldığımı anlatıyor. Her birinde kısıtı, aldığım teknik kararı ve ortaya çıkan sonucu bulabilirsiniz. İşveren adlarını paylaşmıyorum.

Veri performansı

Yaklaşık 2 saniyeden 800 milisaniyeye

İki saniyelik bekleme, bir görevin akışını kesmeye yeter. Bu üretim sisteminde gecikme önemli kullanıcı yolculuklarında hissediliyordu.

Sorunu PostgreSQL içindeki veri yolunda izledim; bölümleme, indeksler, tetikleyiciler ve kalıcılığı birlikte ele aldım. Değişiklikten sonra algıya değil, ilk ölçümle yaptığım karşılaştırmaya dayandım.

Ortalama servis yanıtı yaklaşık iki saniyeden 800 milisaniyeye düştü.

İş sürekliliği

İki haftada çalışan bir alternatif

Bir erişim kısıtlaması ekibin kullandığı kritik iletişim aracını devre dışı bıraktı. Erişimin kendiliğinden dönmesini beklemek günlük işte boşluk yaratacaktı.

Rust, Go, Tauri ve Vue ile platformlar arası tünelleme uygulaması ve tarayıcı eklentisi araştırdım, geliştirdim, test edip dağıttım. Alternatif yol, insanların kullandığı cihazlarda çalışmalıydı.

Çözüm erişimi geri sağladı ve ilgili düzenli altyapı maliyetini yaklaşık %98 azalttı.

Çevrimdışı veri

Bağlantı olmadan çalışan ürün akışları

Bağlantının kopması, yapılan işin kaybolması anlamına gelmemeli. Asıl zorluk, canlı değişiklikleri çevrimdışıyken koruyup ağ döndüğünde birleştirmekti.

Gerçek zamanlı olayları IndexedDB içinde tuttum ve karmaşık nesne durumları için uzlaştırma katmanı kurdum. Eşitleme mümkün olana kadar iş akışı devam edebildi.

Temel iş akışları çevrimdışı sürdü ve bağlantı döndüğünde eşitlendi.

Ön yüz mimarisi

Paralel teslim için açık sınırlar

Ekip büyüdükçe ortak veri akışları sürtüşme yarattı. Özellikler, her değişikliğin aynı sınırlara çarpmadığı bir alana ihtiyaç duyuyordu.

Vue uygulamasına belirgin özellik sınırları, merkezi olaylar ve öngörülebilir veri sahipliği kazandırdım. Mimari, onu kuran kişiden öte, paralel çalışan ekip için işe yaradı.

Geliştiriciler paralel çalışabildi; yapı ilk ekibin ötesinde kullanılmaya devam etti.

Geliştirici deneyimi

Tek komutla ortam kurulumu

Çok sayıda elle yapılan adım, yeni bir ekip üyesinin ilk gününü hata ayıklamaya dönüştürür. Ortamı kurmak başlı başına bir iş olmuştu.

Tekrarlanabilir adımları Git hooks, Bash ve CI içine taşıdım; kalan kararları belgeledim. Devir, ezberlenecek bir liste yerine çalıştırılacak bir komuta dönüştü.

Yeni çalışanlar ilk gün ortamı tek komutla hazırlayabildi.

CMS ve SEO

Düzenlenebilir içerikle uygulama hissi

Sitenin CMS kolaylığına, arama motorlarının erişebileceği sayfalara ve uygulama akıcılığına aynı anda ihtiyacı vardı. Bunlardan birini kaybetmek deneyimi zayıflatacaktı.

Vue ile PHP ve WordPress yapılarını özel hydration, yönlendirme ve içerik yönetimiyle birleştirdim. Editörlerin akışı korundu; ziyaretçiler tam sayfa yenilemesi olmadan gezebildi.

Site CMS akışlarını ve arama dostu adresleri korurken uygulama benzeri davranış kazandı.

Kampanya teslimi

Üç haftada mobil kampanya

Mobil kampanyanın kısa sürede mekân bilgisi, katılım takibi, analitik ve mesajlaşmaya ihtiyacı vardı. Gereken Angular altyapısı benim için yeniydi.

Üç gün içinde Angular ile üretken hâle gelip uygulamayı ve servis entegrasyonlarını kurdum. Takvim, birbirinden kopuk ekranlar değil çalışan bir bütün gerektiriyordu.

Angular ile üç günde üretken hâle geldim; uygulamayı üç haftada teslim ettim.

Su kaynakları farkındalığı

Tarayıcı sınırlarını aşan 3D anlatım

Yaratıcı yön, suyu animasyonlu 3D ile anlatmak istiyordu. O dönemde WebGL desteği tutarsızdı; bir tarayıcıda çalışan sahne diğerinde hikâyeyi aktaramayabilirdi.

Blender ile modelleme ve render işini üstlenerek anlatımı taşıyan sprite görselleri hazırladım. Canlı 3D güvenilir olduğunda bunları WebGL ile birleştirdim.

Görsel hikâye, her sahnede canlı 3D gerektirmeden farklı tarayıcılarda çalışabildi.

Kadınların güvenliği

Risk anında dikkat çekmeyen çıkış

Riskli bir ortamda kadınların güvenliği kampanyasını okuyan biri için sayfadan ayrılmak, sayfayı bulmak kadar önemli olabilir. Sıradan bir çıkış mevcut gezinme akışında belirgin iz bırakabilirdi.

Hızlı çıkışta kampanya sayfasının kendi geçmiş kaydını yönetmek için History API ve popstate kullandım. Amaç tarayıcının tüm geçmişini silmek değil, sayfadan daha dikkat çekmeyen bir çıkış sağlamaktı.

Çıkış akışı, kampanya sayfasının mevcut tarayıcı geçmişinde belirgin bir kayıt olarak kalma olasılığını azalttı.

Mobil AR

Ürünleri gerçek ortamda önizleme

Ürün görseli biçimi gösterir ama ürünün müşterinin mekânında nasıl duracağını göstermez. Eksik bağlam ürünün çevresindeki gerçek alandı.

3D tasarım varlıklarını Vectary ile mobil WebXR ve AR önizlemelerine dönüştürdüm. Telefon kamerası, ölçeği ve yerleşimi bağlam içinde inceleme aracı oldu.

Müşteriler ürün modellerini akıllı telefon kamerasıyla kendi ortamlarında yerleştirip inceleyebildi.