26 Kasım 2023 Pazar

Çalışanın Kariyeri mi Performansı mı?

     Selamün Aleyküm Arkadaşlar,

    Bugün belki de net bir doğru cevabı olmayan bir konuyu ele almayı düşünüyoruz. Bir yazılımcı ya da çalışanın kariyeri/teknik bilgisi mi önemli yoksa o anda çalıştığı şirketteki performansı mı önemli sorusunun cevabı üzerinde tartışıyor olacağız. Hazırsak başlayalım.

19 Kasım 2023 Pazar

Outsource Çalışmak ve Çalıştırmak

     S.A. Arkadaşlar,

    Bugün outsource (dış kaynak) olarak hem çalışmanın hem de çalıştırmanın avantaj ve zorluklarından dilimiz döndüğünce bahsetmeye çalışacağız. Tabi bunu birkaç başlık altında ele almak daha doğru olur diye düşünüyorum. Proje teslimi olarak çalışmak, direkt olarak müşterinin projesinde ve yönetiminde çalışmak, outsource projelerde inhouse (şirket içi ya da iç kaynak) olarak çalışmak gibi konuları ele almaya çalışacağız. Hazırsak başlayalım.

Legacy ve Modern Projelerde Çalışmak

    S.A. Arkadaşlar,

    Birçoklarımızın yaka silktiği ve bu yüzden de iş aramaya başladığı legacy kodlarda çalışmak ile herkesin kovaladığı ve çalışmak istediği modern yapılı (kimine göre mikroservis, kimine göre modüler veya en azından güncel teknoloji ile yazılmış) projelerde çalışmaktan bahsedeceğiz. Belki çok inanmak istemeseniz de iki projede de çalışmanın avantajları olduğunu düşünüyorum. Hazırsak başlayalım.

6 Kasım 2023 Pazartesi

Document(ion) Driven Development

     S.A. Arkadaşlar,

    Bugün biraz cahilliğime güleceğim, ayrıca birlikte düşüneceğimiz bir konu üzerine yazmayı düşünüyorum. Geçenlerde şirkette bir geliştirme yapacaktık, bu geliştirmeyi yapmadan önce yazılım mimarımız ile konuştuk (Gökhan abi) ve genel başlıkları kabaca çıkardık, bunu dokümante ettik. Daha sonra bu projeyi kullanacak diğer ekiplere sunduk, onların da fikirlerini alarak dokümantasyonu güncelledik. Son halinde hemfikir olduktan sonra da kodlamaya başladık. Buraya kadar her şey iyiydi, taa ki bu yazıya başlayınca kadar :) TDD'nin temel prensibi önce testi yazıp sonra kodunu yazmak üzerine nasıl kurulu ise biz de önce dokümantasyonu hazırladık sonra kodunu yazdık, buna da "Document Driven Development" (bazı yerlerde Document DD olarak da geçiyor) diyebiliriz diye kendi kendime düşünüyordum, ama böyle bir şey var mı diye başlığı arattığımda maalesef cehaletim yüzüme gün gibi çarptı. Böyle bir şey düşünebildiğime mi sevineyim yoksa bunu hiç duymamış olmama mı üzüleyim, açıkçası bilemedim. Hazırsak başlayalım.

5 Kasım 2023 Pazar

İngilizce Kısaltmalar

     S.A. Arkadaşlar,
     Bugün iş hayatımızda kullandığımız bazı ingilizce kısaltmaları paylaşmak istiyorum. Hem çalıştığım ekiplerden hem kod incelemelerinden (code-review) hem de internette denk geldiklerimi derlemiştim. Uzun süredir not defterimde duruyordu, onları da düzenleyerek bir yazı haline getirmek istedim. Umarım işinize yarar. Hazırsak başlayalım.

Okuduğum Yazarlardan Notlar 4 - Farklı İçeriklar Üzerine

     S.A. Arkadaşlar,

    Okuduğum yazarlardan notlar serisine devam ediyoruz, fakat bugünkü yazımız belirli bir yazardan değil, farklı zamanlarda aldığım notlardan oluşmaktadır. Hangi not hangi yazar veya siteden aldığımı hatırlamıyordum, bunları bu şekilde yayımlamak içime sinmedi, ufak bir araştırmayla nerelerden aldığımı yanlarına ekledim, buna rağmen maalesef 2 tanesini bulamadım. Varsa sahibi yorum olarak yazabilir, düzeltirim. Hazırsak başlayalım.

4 Kasım 2023 Cumartesi

Okuduğum Yazarlardan Notlar 3 - Ürün ve Ürün Yönetimi Üzerine

     S.A. Arkadaşlar,

    Takip ettiğim yazarlardan notlar serisinin 3.yazısı ile karşınızdayız. Bu yazıda da "ürün ve ürün yönetimi" üzerine Aykut Bal'ın Medium'da yazdığı yazılardan toparladığım notları paylaşıyor olacağız. Ürün hakkında oldukça geniş bilgiye sahip olan yazarın neredeyse bütün yazılarını okudum ve kendime birçok notlar aldım, bunları da paylaşmak istiyorum. Bu konulara ilgi duyan arkadaşların bu yazıları tek tek okuyarak notlar almasını ve mümkünse ürünleri tarafında kullanmalarını naçizane tavsiye ederim. Hazırsak başlayalım.

Okuduğum Yazarlardan Notlar 2 - Liderlik Üzerine

     S.A. Arkadaşlar,

    Bir önceki yazıda okuyup takip ettiğim yazılardan aldığım notlar serisine başladığımı söylemiştim. Bugünkü yazımız ise liderlik/yöneticlik üzerine çok bilgili olan ve sürekli bu konuda kitaplar okuyan, yazan, eğitimler veren Mert Susur'un blog'dan aldığım notları paylaşacağım. Aldığım notlar kopyala-yapıştır olarak alınmıştır. Sitesini ziyaret ederek başlıklara göz atmanızı naçizane tavsiye ederim. 

Not: Aralardaki çizgiler farklı yazılara ait notlar olduğunu göstermektedir.

Okuduğum Yazarlardan Notlar 1 - Girişim Üzerine

     S.A. Arkadaşlar,

    Uzun süredir okuduğum/takip ettiğim yazarlardan belirli konularda notlar alıyorum. O notları zaman zaman dönüp gözden geçiriyordum. Bunları bir seri olarak paylaşmayım belki başka okumak isteyenler de olur dedim. Bugünkü konumuz girişim üzerine, notları aldığım yazar ise Celil Bozkurt'un "Girişimim Nasıl Battı?" adlı serisinden. Kendisini uzun yıllar önce tanıdım ve bu konuda çok güzel içerikler üretiyor. Notları hiç düzenlemeden kopyala-yapıştır olarak aldığımı tekrardan belirtmek isterim. Yazıların tamamını okumanızı naçizane tavsiye ederim. Hazırsak başlayalım.

30 Ekim 2023 Pazartesi

Ekip Bölünmesi ve Duygusal Adaptasyon: Bir Yazılımcının Anlatısı

     S.A. Arkadaşlar,
    Bugün ufaktan da olsa duygusal bir yazı yazıyor olabilirim :) Yazılımcılık dışarıdan sanıldığı gibi asosyal bir meslek değil, tam tersine teknik olmayan yeteneklerin (soft skill) kimi zaman teknik yeteneklerin önüne de geçecek kadar önemli olduğu bir meslek dalı. Bu yetenekler devreye girdiğinde de ister istemez kalbi duygular da devreye giriyor. Konumuz iş dünyası da olsa, duygu ve düşüncelerin birlikte nasıl yola çıktıklarını anlatmaya gayret edeceğiz. Hazırsak başlayalım.

10 Ekim 2023 Salı

İyi Yazılımcı, Daha İyi Yazılımcı

     S.A. Arkadaşlar,

    Geçenlerde okuduğum iyi ürün yönetici ve daha iyi ürün yöneticisi(yazıyı aradım maalesef bulamadım, aynı isimli kitabın özetiydi diye aklımda kalmış) adlı bir blog yazısı okumuştum. O yazıyı okuyunca her zaman kullandığım "iyi yazılımcı debug yapar, daha iyi yazılımcı log okur" (bir yerden okumuştum), sözü aklıma geldi ve bu 2 noktadan yola çıkarak ben de bu yazıyı yazmaya karar verdim. Hazırsak başlayalım...

22 Eylül 2023 Cuma

Zorluklar İnsanı Güçlendirir mi Yıldırır mı?

     S.A. Arkadaşlar,

    Sanırım 15 yıldan fazla oldu. Liseye giriş sınavı puanları açıklanmıştı. Puan beklentimin altında gelmiş, oldukça üzülmüştüm, o zaman babam bana (meğer o da Nietzsche'dan almış :)), "Bizi öldürmeyen şey güçlendirir" demişti. Gerçekten de öyle oldu. Mücadele ettikçe hayat devam ediyor. "Kaybettiğinde değil vazgeçtiğinde kaybedersin" diye boşuna dememişler. Bize mücadeleye devam etmeyi bahşeden Rabb'ime hamdü senalar olsun.

20 Eylül 2023 Çarşamba

Mülakatlarda Teorik Performans mı Pratik Performans mı?

     S.A. Arkadaşlar,

    Bir önceki yazımda da son dönemlerde masanın diğer tarafında birçok mülakata girdiğimizi söylemiştim. Tabii aday olarak da birçok mülakata girdik, girmeye de devam edeceğiz gibi görünüyor. Özellikle teknik olan bu mülakatlara bir hazırlık yapıyor muyuz ya da yapmalı mıyız? Pratik kadar teorik de önemli oluyor mu yoksa yaptıklarımız yeterli, teorik bilgiye çok takılmasak da olur mu? Sizler de bu konuyu merak ediyorsan başlayalım

19 Eylül 2023 Salı

Dönüşüm Hikayeleri 6 - Usta Yazılımcıyı Yaşlandıran O Sorun: Deadlock

    S.A. Arkadaşlar,

    Bir süredir yeni bir projeye başladığımız için legacy tarafındaki dönüşümümüz biraz yavaşladı. O yüzden bu serideki yazısı sıklığı eskiye göre azaldı. Tabii ki tek sebep bu da değil. Legacy olan kodu belirli bir olgunluğa da getirdik, fakat siz de takdir edersiniz ki hayat devam ediyor ve karşımıza her daim yeni problemler çıkacaktır. Bugün de CPU kullanımını tavan yapan bir probleme odaklanacağız. Hazırsanız başlayalım.

12 Eylül 2023 Salı

Ekip Yönetmekten Korkuyor Musunuz?

     S.A. Arkadaşlar,

    Son dönemlerde masanın diğer tarafında yoğun bir şekilde mülakatlara giriyoruz. Güzel arkadaşlara denk geldikçe de muhabbet muhabbeti açıyor. Bugün görüştüğümüz bir arkadaş (kendisine selam olsun) çalıştığı yerde "takım lideri" pozisyonunda çalışıyor ve bu yüzden de işten ayrılmak istiyor. Gideceğim yerde yönetimsel işler ile değil sadece teknik konularla ilgilenmek istiyorum dedi. Ben de bir yerden sonra bundan kaçmanın çok da kolay olmadığını söyledim. Bu konuda sizler ne düşünüyorsunuz? 

18 Ağustos 2023 Cuma

Web Socket ve AWS ELB/ALB Problemi

    S.A. Arkadaşlar,
    Bugün farklı sayılabilecek bir konu ile ilgili bazı notlarımızı paylaşmak istiyorum. Elektrikli şarj istasyonu projesini geliştirdiğimiz süreçte IoT ile yakından çalışma fırsatımız oldu. Cihaz ile web socket üzerinden OCPP protokolü ile konuşuyorduk, fakat belirli aralıklarla socket tarafında kesinti olduğunu fark ettik, bunu nasıl çözdüğümüz ilginizi çekiyorsa buyurun başlayalım.

Dotnet Tabanlı Mikroservis Projesine Go Servisi Eklemek

    S.A. Arkadaşlar,
    Yaklaşık 1 yıl önce başladığım ve uzun süredir de yazmayı düşündüğüm bir konuyu erteleye erteleye şu an ancak yazabiliyorum. Bildiğiniz gibi üzerinde çalıştığım bir mikroservis projem var. Orada 3 adet mikroservis vardı, buna ek olarak yeni bir mikroservis ekledim, fakat diğerlerinden farklı olarak bunu Golang ile kodladım. Bu nereden çıktı ve bu noktaya nasıl geldik diye bazı notlarımı paylaşmak istiyorum.

21 Haziran 2023 Çarşamba

Bir Refactoring Hikayesi: Class vs Record vs Struct

     S.A. Arkadaşlar,

    Bugün, yazdığım bir parça kodun gelişim hikayesinden bahsetmek istiyorum. Hediye kodu tanımlama ile ilgili bir iş üzerinde çalışmam gerekti. Benzersiz hediye kodları üretip bunları veri tabanına yazmam gerekiyordu. Kodun ilk hali her oluşturulan kod için veri tabanına gidip kontrol edip eğer aynı kayıt yok ise bunu kaydediyordu. Bu belki de en yavaş çözüm olabilirdi. Biz bu kod parçasını geliştirmeye çalıştık. Hazırsak başlayalım.

17 Haziran 2023 Cumartesi

OpenTelemetry

     S.A. Arkadaşlar,

    Bildiğiniz gibi mikroservis yapıları bazı zorlukları da beraberinde getiriyor. Bunlardan biri de logları, metrisleri kaydetmek, izlemek ve onları merkezi bir yapı haline getirmektir. OpenTelemetry, bu zorlukları kolaylaştırmak için açık kaynaklı bir projedir. Yeni bir proje olmasına rağmen iyi bir yapıya dayanıyor. Çok çeşitli SDK'ları ve 3. parti kütüphaneleri desteklemektedir. Tüm bu konuları ele alacağımız bir yazıya hazırsak başlayalım. 

11 Haziran 2023 Pazar

Dönüşüm Hikayeleri 5 - Operasyonel İşler

     S.A. Arkadaşlar,

    Çok bir ara vermeden eski kodları taşırken acı çektiğimiz bir noktayı daha paylaşmak isterim: Manuel olarak yapılan ve maalesef hataya çok açık işler...  Bir yandan bu işlemleri otomatize etmeye çalışırken diğer yandan yapılması gerekenleri maalesef yapmaya da devam ediyoruz. Bu işleri yapmak hem riskli, hem sancılı hem keyifsiz... Neyse burası uzar gider, hazırsak ufaktan başlayalım

3 Haziran 2023 Cumartesi

Dönüşüm Hikayeleri 4 - IYS - Veri Eşitleme

     S.A. Arkadaşlar,

    Son dönemlerde yaşadığım en yoğun hafta olabilir benim için, neyse ki acısıyla tatlısıyla atlattık ve bu yorgunluğa sebep olan konuyu ele alarak biraz rahatlamak istedim, yazmak iyi geliyor, bir de bu tecrübelerimizi not almak da istiyorum. İletişim Yönetim Sistemi (IYS) ile veri tabanımız arasında olan verileri eşitlememiz (sync) gerekiyor ve belirli sebepler nedeniyle bunu pazartesiye kadar bitirmemiz gerektiğini Çarşamba akşamı öğrendik. Stresli hikayemiz böylece başlamış oldu. Hazırsak başlayalım.

10 Nisan 2023 Pazartesi

Framework Kullanmak

     S.A. Arkadaşlar,

    Zaman zaman tartışılan ve son günlerde yine birkaç yerde karşıma çıkan "framework" konusunda ben de birkaç kelam etmek istiyorum. Framework'lar gerekli midir, işi kolaylaştırır mı, zorlaştırır mı, seni geliştiri mi, köreltir mi? Ne gibi avantaj ve dezavantajları var. Özel/gizli (private) ve açık kaynaklı olarak arada farklılıklar var mıdır gibi bazı soruları cevaplamaya çalışacağız. Öznel de olsa farklı tecrübeleri içeren bir yazı olacak. Hazırsak başlayalım...

4 Nisan 2023 Salı

Dönüşüm Hikayeleri 3 - Reverse Xamarin APK

    S.A. Arkadaşlar,

    Bugün elimizde kodlarına erişilmesi gereken xamarin ile kodlanmış ve canlıya alınmış bir APK dosyası var. Bu dosyayı okunabilir kod haline getirmeyi hedefliyoruz. Bunu yapabilmek için de öncesinde DLL haline getirmemiz lazım. Kod haline getirmemizdeki amaç ise elimizdeki kod ile karşılaştırmak olacaktır. Bu süreçte yaşadığımız zorlukları, edindiğimiz tecrübeleri aktarmak istiyoruz. Hazırsak başlayalım.

31 Mart 2023 Cuma

Dönüşüm Hikayeleri 2 - Culture ile İmtihanımız

     S.A. Arkadaşlar,

    Bugün yine karşılaştığımız bir problemi ve o problemi nasıl çözdüğümüz ile alakalı birkaç nokta paylaşmak istiyoruz. Daha önce kodların çalıştığı sunucu Türkiye'de ve biz bunu Amazon Frankfurt tarafına taşıdık. Kod içerisinde DateTime.UTC kullanıldığı için ve biz bu değişiklikleri eski projedeki kodlarda yapmak istemediğimiz için ne tarz çözümleri ele aldık onu anlatmaya gayret edeceğiz. Hazırsak başlayalım.

Dönüşüm Hikayeleri 1 - Beklenmedik Kriz: UpdateStats

    S.A. Arkadaşlar,

    Bugün yaşadığımız bir problemi anlatmak istiyorum. Tüm gün vaktimizi alan ve nedenini açıkçası hala kesin olarak bulduk diyemediğimiz fakat çözebildiğimiz bir konuyu anlatmak istiyorum. Test ortamımızda bazı uçlarda aniden bir yavaşlama oldu ve beklenmeyen dönüş süreleri ile karşı karşıya kaldık, zaman zaman timeout'lara düştük, aslında görünürde değişen hiçbir şey yoktu, ama maalesef böyle bir problem vardı. Hazırsak ayrıntılarına geçelim.

12 Mart 2023 Pazar

Pact ile CDC Testing

    S.A. Arkadaşlar,
    Araya birkaç teknik olmayan konu aldıktan sonra tekrar teknik bir konuya dönüyoruz. Bugün bahsedeceğimiz konu Consumer Driven Contracts (CDC) testing konusu olacaktır. Mikroservis yapılarda yazdığımız servislerin değişikliklerinde herhangi bir yapıyı bozup bozmaması çok önemli olmaktadır. Burada belirli bir belge(contract) üzerinde anlaşıp el sıkışma olarak düşünebiliriz. Daha sonra yapılan geliştirmeler bu belgeye sadık mı diye bakılır. Eğer bu testler patlamaya başlıyorsa sizin servisinizi tükenten diğer servisler de patlayacak demektir. Bu tarz bir kullanım için çok kullanışlı ve açık kaynaklı olarak geliştirilen Pact kütüphanesini kullanıyor olacağız. Hazırsak başlayalım.

24 Şubat 2023 Cuma

Geocoding ve Bazı Sağlayıcıları

    S.A. Arkadaşlar,

    Bugün çok farklı bir konudan bahsedeceğiz. Açıkçasını söylemek gerekirse, benim de çok aşina olduğum bir konu değil, fakat araştırmışken notlarımı paylaşmak istedim. Geocoding ve 3 parti kütüphaneler olan hellotracks ve opengacedata araçlarını ve bunların alternatiflerini ele alacağız. Hazırsak başlayalım.

21 Şubat 2023 Salı

Yarış Atı - Toksik Düşünceler

     S.A. Arkadaşlar,

    Bilgisayarın başına başka bir yazıyı yazmak için oturdum, fakat bugün duyduğum bir şey daha önce de sorguladığım bu konuyu yazmaya itti. Eşimle de bu konuyu zaman zaman konuşuyorduk, yazmak ise şimdiye nasip oldu. Hayatımızın belirli dönemlerinde çok başarılı olanların çok mutlu olacağı veya çok kazacağı yanılgısı sonucu kendimizi "yarış atı" olarak bulduğumuz ve günün sonunda bunun neleri götürüp neleri getirdiğini konuşmak istedik. Hazırsak başlayalım.

12 Şubat 2023 Pazar

Bir Şirket Kültürü Oluşturmak

    S.A. Arkadaşlar,
    Aşağıda yazacağım yazının notlarını 26 Ocak 2018'te almışım. O zamandan bu zamana taslak olarak saklıyormuşum ve zaman zaman buraya eklemeler yapıp güncellediğim oldu, fakat bunu bir türlü yazı haline getiremedim. Aslında bunun bir sebebi "Olur da bir gün şirketim olursa" gibi iddialı bir başlık olabilirdi. Onu beklemek yerine daha genel bir başlık kullanarak bu yazıyı yayımlamaya karar verdim. Hem olur da nasip olursa belki ilerideki kendime de bir mektup niteliği taşır. Öyleyse hayırlısı deyip başlayalım.

3 Şubat 2023 Cuma

Arayüz mü Komut Ekranı mı?

     S.A. Arkadaşlar,

    Yine farklı duygular içinde olduğum bir yazı düşüncesi ile başlıyorum satırlara. Tartışmalı olabilecek bir konu, doğru bir cevabı da yok bence, naçizane biraz konuyu deşelim. Belirli işleri arayüz üzerinden mi yapıyorsunuz yoksa komut ekranından mı? İkisinin birbirine göre ne gibi avantaj ve dezavantajları var. Sizler de ne düşündüğünüzü lütfen yorumlara bırakın. Hazırsak başlayalım.

31 Ocak 2023 Salı

Yazılımcıyı Daha Değerli Kılan Özellikler

    S.A. Arkadaşlar,
    Uzun yıllar önce iyi yazılımcının bazı özellikleri başlığı altında notlar almıştım. Kariyerimin başında onları okuyup acaba ben bunlara hiç sahip olabilecek miyim diye kendi kendime sorduğumu hatırlıyorum. O notları hiç silmedim, zamanla yanına ufak tefek bazı eklemeler de yaptım. Tabi bu teknik özelliklerin yanına kişisel özelliklerle ilgili de notlar aldım. İlk bakışta çok önemsenmese de aslında buradaki yetkinlikler teknik yetkiklerden çok daha önemli olduğuna yıllar içinde şahit oldum. Sizler de lütfen kendinizce önemli gördüklerinizi paylaşmayı unutmayın. Hazırsak başlayalım.

29 Ocak 2023 Pazar

Bir Geliştiricinin Windows'tan MacOS'a Geçiş Hikayesi

      S.A. Arkadaşlar,

      Çok da uzun olmayan bir aradan sonra yine birlikteyiz. Bu yazımız dolaylı yoldan teknik sayılabilecek bir yazı olacak. Başlıktan da anlaşılacağı üzere Windows'tan MacOS'a geçişimde karşılaştıklarımı anlatmak istedim. Arkadaşlar 10 günün sonunda alışacağımı söyledikleri için yazının olgunlaşması için biraz bekledim :) Tam alışabildim mi emin değilim ama eskiye oranla daha iyi tabii ki. Hazırsak başlayalım...