İçeriğe geç

Hakkımda

Kod yazarken matematikle düşünüyorum

Adım Kaan Baha Sever. İstanbul’da yaşıyorum ve yazılım geliştiriyorum. Matematik lisansımı İstanbul Üniversitesinde tamamlamak üzereyim; sonrasında bilgisayar bilimleri alanında yüksek lisans yapmayı planlıyorum.

Genellikle donanıma yakın çalışan programlar geliştiriyorum ve bunun için modern C++ ile Go kullanıyorum. Matematik bana iki şey öğretti: kod yazmaya başlamadan önce problemi iyice anlamayı ve kodumun neden doğru çalıştığını açıklayabilmeyi. Testlerin geçmesi elbette önemli ama bana tek başına yetmiyor.

Aşağıda hikâyemi en baştan anlatıyorum: çocukken söküp taktığım aletler, uzay merakım ve ilk C# programlarım, sonra roketler, en sonunda da bugün geliştirdiğim sistemler.

Kısaca

Yaşadığım yer
İstanbul, Türkiye
Okuduğum bölüm
Matematik, İstanbul Üniversitesi
Her gün kullandığım diller
Modern C++ ve Go
Şu an geliştirdiğim proje
AsionErken erişim

Bugüne nasıl geldim

Bölümler kabaca zaman sırasıyla ilerliyor: uzay uçuşlarına duyduğum ilk meraktan bugün geliştirdiğim yazılımlara kadar. Şekiller her bölümün ana fikrini basitçe gösteriyor. Çoğunu elle çizmedim, anlattıkları fikrin küçük bir modelinden hesapladım.

  1. Çocukluk – 2015

    Gökyüzüne bakmak: uzay araştırmaları

    Uzay merakım çok küçükken “Contact” filmiyle başladı. Filmden sonra durmadan okuyup araştırdım. Ay görevleri beni derinden etkiledi; onlarla ilgili ne bulursam okuyordum. Sonra sıra Mars görevlerine geldi. Uzayda kaybolan ya da arızalanan sondalar da çok ilgimi çekti.

    Sovyetler Birliği ile ABD arasındaki uzay yarışını baştan sona araştırdım; bu yarışı anlatan bütün filmleri de izledim. 2015’te de uzayla ilgili kendimce küçük projeler geliştirmeye başladım.

    Eski bir projeye de hayran kalmıştım: Titan’a gönderilmesi düşünülen bir denizaltı. Titan, Satürn’ün en büyük uydusu; yüzeyinde sıvı metan ve etandan oluşan denizler var. 2014–2015’te NASA için hazırlanan bu çalışma, denizlerin en büyüğü olan Kraken Mare’yi bir denizaltıyla keşfetmeyi öneriyordu.

    Bu merak hiç geçmedi. İzlerini aşağıdaki roketçilik bölümlerinde ve Apollo 11 mürettebatının 1969’daki Anıtkabir ziyaretini anlattığım “Ay’dan Anıtkabir’e Yolculuk” yazısında görebilirsiniz.

    Şekil 1Hohmann transferi: bir Ay görevi planlanırken çizilen klasik ilk taslak. Yerberide, yani Dünya’ya en yakın noktada, motor bir kez ateşlenir (Δv ≈ 3,1 km/s). Bu ateşleme, 300 km yükseklikteki park yörüngesini (yarıçap r₁) uzatıp bir elipse çevirir. Araç yaklaşık 5 gün sonra elipsin uzak ucunda Ay’ın yörüngesine (yarıçap r₂) ulaşır. Çizim ölçekli değildir.
  2. 2016 – 2019C# · MS SQL

    Programlamanın temelleri

    Programlamaya 2016’da meslek lisesinde, C# ile başladım. Önce temelleri öğrendim, sonra veri yapılarına ve algoritmik problem çözmeye geçtim. Bu arada küçük matematik hesaplama motorları da yazdım. 2019’da artık Microsoft SQL Server (MS SQL) kullanan eksiksiz veri tabanı uygulamaları geliştiriyordum.

    Lise bitirme projelerim XOX ve Amiral Battı oyunlarının masaüstü sürümleriydi. Amiral Battı, çocukken babamla oynadığım oyundu; kendi sürümümü tasarlamak istememin nedeni de bu. O ilk sürümün C# kaynak kodu GitHub’da duruyor. Av ve hedef (Hunt & Target) algoritmasını ise sonradan geliştirdim. Bugün Amiral Battı’da bilgisayarın nereye ateş edeceğine bu algoritma karar veriyor: Önce tahtada gemi arıyor, bir gemiyi vurduğunda da atışlarını o noktanın çevresine topluyor.

    İki oyunun tarayıcı sürümleri de artık bu sitede. Bilgisayar rakip ikisinde de bir algoritmayla oynuyor: Amiral Battı’da av ve hedef, XOX’te ise alfa–beta budamalı minimax araması. Buradan Amiral Battı ya da XOX oynayabilirsiniz.

    Şekil 2Oyunların tarayıcı sürümlerindeki algoritmalar. Solda Amiral Battı’daki bilgisayar rakip gemi arıyor: Beş ıskadan sonra her hücrenin rengi, kalan gemilerin o hücreyi kaç farklı yerleşimle kapladığını gösteriyor. Sıradaki atış en koyu hücreye yapılıyor. Sağda minimax, en kötü durumda en iyi sonucu veren hamleyi seçiyor.
  3. 2019 · TÜBİTAK

    Kriptografi ve görsel programlama üzerine bir araştırma

    2019’da bir TÜBİTAK lise araştırma projesi yaptım. Projede kriptografiyi ve görsel programlamanın mantığını inceledim.

    Projenin bir parçası, akış şemalarıyla çalışan görsel bir kodlama aracının erken bir prototipiydi. Bu araçta programı satır satır yazmak yerine akış şemasını çizerek oluşturuyorsunuz.

    Şekil 3Programı yazmak yerine çizmek: Sezar şifresinin akış şeması. Mesajdaki her cᵢ harfi alfabede k harf ileri kaydırılır (mod 26). Bu, i sayacı mesajın uzunluğuna (n) ulaşana kadar sürer. Sağda aynı program k = 3 ile çalışıyor.
  4. 2019 – 2022Roket ve Uzay Kulübü

    Roketçilik ve uçuş aviyoniği

    Kasım 2019’da üniversiteye başladım ve İstanbul Üniversitesi Roket ve Uzay Kulübüne katıldım. 2022’ye kadar kulübün başkan yardımcısıydım. Ekip olarak üç roket tasarlayıp ürettik. Biri, hedef irtifası 5.000 ft olan alçak irtifa roketiydi; diğer ikisi ise hedef irtifası 10.000 ft olan yüksek irtifa roketleriydi.

    Uçuş aviyoniğinin gömülü yazılımı ve paraşüt açma kontrol sistemi tamamen benim sorumluluğumdaydı. İki sistem de sensör füzyonuna dayanıyordu; yani roketteki sensörlerden gelen yönelim, jiroskop ve altimetre verilerini birleştirerek çalışıyordu. Bu gürültülü veriden Kalman filtresiyle nasıl iyi bir tahmin çıkardığımızı ve PID kontrolcülerini nerede kullandığımızı sonraki bölümdeanlatıyorum.

    Telemetrinin SD karta nasıl kaydedileceğini belirleyen protokolleri de ben tasarladım. SD karttaki kayıt, telemetriyi RF ile ileten modüllerle birlikte çalışıyordu. Ayrıca bir masaüstü telemetri paneli geliştirdim. Bu panel uçuş verisini ayrıştırıp uçuştan sonra yörünge grafiklerini çiziyordu.

    Şekil 4İki irtifa sınıfı aynı ölçekte, ideal uçuşlarla gösteriliyor: hedef irtifası 5.000 ft olan bir alçak irtifa roketi ve hedefi 10.000 ft olan iki yüksek irtifa roketi. Tepe noktası, roketin yükselmeyi bıraktığı yerdir (dh/dt = 0). Noktalar, kaydedilen telemetri ölçümlerini temsil ediyor.
  5. Roket ve Uzay Kulübü · Kalman · PID

    Gürültülü veriden doğru tahmine: Kalman filtresi ve PID

    Roketteki sensörlerin verisi hiçbir zaman tertemiz değildir: Altimetre her an biraz farklı bir değer okur, ivmeölçer motorun titreşimini de yakalar. Bu yüzden roketleri geliştirirken ölçülen veriyi bir Kalman filtresinden geçirmeyi araştırdık. Algoritmalarını yazdık ve defalarca test ettik.

    Kalman filtresi her adımda önce roketin nerede olması gerektiğini tahmin eder, sonra bu tahmini yeni ölçümle düzeltir. Hangisine ne kadar güveneceğine de ikisinin ne kadar belirsiz olduğuna bakarak karar verir. Karanlık bir odada adımlarınızı sayarak yürüdüğünüzü, bir duvara dokununca da yerinizi düzelttiğinizi düşünün; filtre de aynısını yapar.

    Dikey iniş gibi deneylerde ise PID kontrolcüleri kullandık. PID, hedefle ölçülen değer arasındaki farka üç açıdan bakar: Şu an ne kadar uzaktayız (P), ne zamandır uzaktayız (I) ve fark ne kadar hızlı değişiyor (D). Duşta suyun sıcaklığını ayarlarken biz de farkında olmadan aynı şeyi yaparız.

    Şekil 5Bu bir örnek çizim; kulübün uçuş verisi değil. Solda gürültülü altimetre ölçümleri (noktalar) ve Kalman filtresinin tahmini (vurgulu çizgi) var; tahmin gerçek yola (ince çizgi) çok daha yakın. Sağda basit bir dikey iniş var: Roket PID ile hedef yüksekliğe (kesikli çizgi) oturuyor, integral terimi olmadan (PD) hedefin altında kalıyor.
  6. Araştırma

    Otonom paraşüt güdümü ve hassas iniş

    Otonom paraşüt, üniversitede arkadaşlarımızla yaptığımız, tamamen deneysel ve çok keyifli bir projeydi. Soru basitti: Paraşüt açıldıktan sonra yük, kendini yerde seçilen bir noktaya yönlendirebilir mi?

    Mekanik kısmı arkadaşlarımızdan biri çözmüştü. Yazılım tarafı bendeydi: Lineer cebire dayanan bir karar algoritması yazdım. Bir de simülasyon ortamı kurdum. Birkaç arkadaşımız algoritmayı güzelce test etti.

    Bu konuda daha önce yazılmış birçok makale okuduk ve çok şey öğrendik. Açı hesaplarında kosinüs teoremini ve birçok trigonometrik özdeşliği kullandık. Karar mekanizmasını da atan2 gibi fonksiyonlarla sağlamlaştırdık: atan2(Δy, Δx), sıradan arktanjanttan farklı olarak açının hangi çeyrekte olduğunu da bulur ve Δx sıfır olduğunda bile çalışır.

    Python kodu GitHub’da herkese açık: AutonomousParachute.

    Şekil 6İniş hedefinin çevresindeki yönlendirme alanı, kuş bakışı. Oklar her noktada gidilmesi gereken yönü gösteriyor. Vurgulu çizgi, güdümlü bir inişin izlediği yol.
  7. Python (2020) → C++ (bugün)

    Uçuş simülasyonu: prototipten Rocket-Up’a

    Uçuş simülasyonu aslında tek bir proje; yalnızca yıllar içinde biçim değiştirdi. 2020’de Python ile yazdığım bir prototip olarak başladı. Roket yörüngelerini üç boyutta, sayısal olarak hesaplayan bir simülasyondu. Kapsamı dardı ve tek bir amaç için tasarlanmıştı.

    Şimdi projeyi Rocket-Up adıyla, modern C++ ile baştan yazıyorum. Rocket-Up dinamik ve açık kaynak bir aerodinamik simülasyon motoru. Hedefim daha yüksek performans ve temiz bir mimari.

    Şekil 7Üç boyutta adım adım hesaplanan bir yörünge. Kesikli çizgi yörüngenin yerdeki izdüşümünü, v oku da bir andaki hız vektörünü gösteriyor.
  8. Roket ve Uzay Kulübü · CubeSat

    CubeSat: bitiremediğimiz uydu

    Roket ve Uzay Kulübünün son döneminde bir CubeSat, yani küçük bir küp uydu geliştirmeye karar verdik. Uydumuz CubeSat standardının bütün kurallarına uyacaktı. NASA’nın CubeSat geliştirenler için hazırladığı bir PDF rehber vardı ve ondan çok şey öğrendik: nasıl lehim yapılacağını, fırlatmaya hazır bir CubeSat’ın nasıl tasarlanacağını.

    Çok araştırdık. Güneş panellerini, uydunun içinde çalışacak yazılımı, hatta yer istasyonu yazılımını tek tek düşünüp tasarladık. Uydunun içindeki kartları ben programlayacaktım. Bir de yer istasyonu yazılımını, yani bir bilgisayarda çalışacak bir kontrol panelini (dashboard) ben yazacaktım.

    Ama bütçe kesintileri ve kulübün dağılması yüzünden proje yarım kaldı. Çok güzel bir projeydi; ne yazık ki bitiremedik.

    Şekil 8Şematik bir çizim. Örnek bir 1U CubeSat: 10 cm’lik bir küp, güneş panelleri yüzeylerinde. Kesikli çizgi bir yer istasyonuna uzanıyor. Vurgulu yay, yörüngenin bu istasyondan ufkun en az 10° üzerinde görülen kısmı. Örnek olarak 400 km yükseklikte bir yörüngede, tam tepeden geçen bir uydu bu yayda yalnızca yaklaşık 6 dakika kalır. Yer istasyonu yazılımı bu birkaç dakikayı en iyi şekilde kullanmak zorundadır. Çizim ölçekli değildir.
  9. 2021 – 2024crowd.inc

    crowd.inc’te yazılım geliştirici

    crowd.inc, insanların fikirlerini paylaşıp bu fikirler için yardım bulduğu bir web sitesiydi. Yüzlerce kullanıcısı vardı; birçok projeye ev sahipliği yaptı, sitede bir sürü fikir ve hedef paylaşıldı. Sonraları da herkese açık olmayan, özel fikirlere yöneldik.

    Temmuz 2021’den Mart 2024’e kadar orada yazılım geliştirici olarak çalıştım. Geliştirme sürecinin her aşamasını üstlendim: PostgreSQL’de ilişkisel veri tabanı şemalarını tasarladım, Python ve Flask ile REST API’ler, jQuery ile de ön yüz geliştirdim, Linux sunucularını kurup yapılandırdım ve otomatik testler yazdım.

    Ayrıntılı yetkilere dayanan bir rol tabanlı erişim kontrolü (RBAC) tasarladım ve herkese açık verilerle özel veriler arasında net bir sınır çizdim. İçerik akışı için ölçeklenebilir sayfalama ve dinamik veri yükleme geliştirdim. Platformun güvenilir çalışması için de kapsamlı birim ve entegrasyon testleri yazdım.

    Şekil 9Şematik bir çizim: crowd.inc’te insanlar fikirlerini paylaşıyor, başkaları da bu fikirler için yardım ediyordu. Büyük daireler fikirler, küçük noktalar kullanıcılar; çizgiler kimin hangi fikir için yardım ettiğini gösteriyor. Vurgulu daire, en çok yardım alan fikir. Sağdaki kesikli sınırın içinde de son dönemde yöneldiğimiz, herkese açık olmayan özel fikirler var.
  10. GDSC · Matematik Kulübü

    Topluluk: atölyeler, canlı yayınlar ve yarışmalar

    2023’te Google Developer Student Clubs (GDSC) çekirdek ekibindeydim. Flask, HTML ve Git/GitHub üzerine teknik atölyeler ve canlı yayınlar yaptım. Siber Güvenlik Haftası etkinliğini de düzenledim. Etkinlikte CCIE sertifikalı bir ağ güvenliği mühendisiyle canlı yayında teknik bir söyleşi vardı.

    Üniversitenin ilerleyen yıllarında Matematik Kulübü için de akademik etkinlikler düzenleyip yürüttüm: seminerler ile mantık ve matematik yarışmaları.

    Şekil 10Sözsüz bir ispat: Matematik Kulübünün seminerlerine ve yarışmalarına yakışacak türden bir bulmaca. Tek sayıları sırayla toplayınca hep bir tam kare çıkar. L biçimindeki her parça sıradaki tek sayıyı ekler ve karenin kenarını bir birim uzatır. Böylece 1 + 3 + 5 + 7 + 9 = 5² olur.
  11. Bugün

    Bugün en çok kullandığım diller: modern C++ ve Go

    Bugünlerde zamanımın çoğunu üç tür yazılıma ayırıyorum: sistem araçları; telemetri ve cihaz yönetimi yazılımları; algoritmaya dayalı uygulamalar. Bunları genellikle modern C++ ve Go ile yazıyorum. Tam listeyi projeler sayfasında bulabilirsiniz. Aşağıda iki örnek var.

    2024’te geliştirmeye başladığım Asion, gizliliği ön planda tutan bir üretkenlik ve bilgisayar etkinliği takip aracı. macOS, Linux ve Windows’ta çalışıyor; onu kendi sunucunuza kurabileceğiniz şekilde tasarladım. Temelinde işletim sisteminin yerel olay kancaları (OS event hooks), arka planda çalışan hafif bir daemon ve bileşenleri arasındaki gRPC iletişimi var. Şu an erken erişimde.

    Novacast’i 2025’te, çalıştığım bir bilgisayar firmasında geliştirmeye başladık. Firmadaki eski yazılım hantaldı ve ihtiyaçlarımıza yetmiyordu; Novacast onun yerine geçti. Farklı modellerdeki birçok ekranı tek bir web panelinden yönetiyor: Windows, macOS ve Linux bilgisayarları; Samsung, LG ve Android TV’leri. Her ekranda Rust ile yazılmış küçük bir oynatıcı çalışıyor. Go ile yazılmış sunucu da bu ekranlara bir MQTT aracısı (broker) üzerinden ulaşıyor. Proje bugün canlıda çalışıyor.

    Bir yandan da İstanbul Üniversitesindeki matematik lisansımı tamamlıyorum. Kodumda reel analizi, soyut cebiri ya da topolojiyi doğrudan pek görmezsiniz. Ama bu derslerin bana kazandırdığı alışkanlıkları olduğu gibi yazılıma taşıyorum: kavramları net tanımlamak ve her adımı kontrol etmek.

    Şekil 11Yayıncı/abone (pub/sub) modeli: Mesajlar tek bir aracıdan (broker) birçok aboneye dağılır.
  12. Bugün · CI/CD

    Otomasyon: tek tıkla test, paketleme ve dağıtım

    Yerel (native) bir yazılımı üç işletim sistemi için birden yayımlamak, tekrarlanan adımlar kendi kendine çalışmazsa pek pratik değil. Bu yüzden GitHub Actions iş akışlarıyla ve çapraz derleme yapan runner’larla çok platformlu CI/CD süreçleri kuruyorum. Adımları da Bash, Batch ve Python ile yazdığım betiklerle birbirine bağlıyorum.

    Asion ekosisteminde bu düzen, tek tıkla çalışan CI/CD süreçlerine dönüştü. Tek bir tetiklemeyle kod test ediliyor, paketleniyor; her platform için derleme çıktıları üretilip dağıtılıyor.

    Şekil 12Tek bir tetikleme önce testleri çalıştırır. Sonra akış dallanır ve her platform için ayrı bir derleme başlar. Derlemelerin çıktıları yeniden bir araya gelir, paketlenir ve dağıtılır.

Kilometre taşları

Önemli tarihleri eskiden yeniye sıraladım.

  1. 2000

    Ankara’da doğdum

    Zaman çizelgesi burada başlıyor. Bugün İstanbul’da yaşıyor ve çalışıyorum.

  2. Çocukluk

    Söktüğüm aletlerden kendi bilgisayarıma

    Küçüklüğümden beri bir şeylerin nasıl çalıştığını hep merak etmişimdir. Evdeki aletleri söküp takar, elektrik ve elektronik parçaları kurcalardım; prizler bile bu meraktan nasibini alırdı.

    2005’te kendi bilgisayarım oldu. Ondan önce kuzenlerimin bilgisayarlarını kurcalayarak büyüdüm; sistemi de oyunları da o bilgisayarlarda keşfettim.

    Donanıma ve bir şeyleri keşfetmeye duyduğum bu merak, zamanla sistem programlama ve yazılım geliştirme tutkusuna dönüştü. Bugün genellikle donanıma yakın çalışan programlar geliştirmemin nedeni de bu.

  3. Uzayla ilgili ilk küçük projelerim

    Uzay merakım çok küçükken “Contact” filmiyle başladı. 2015’te de uzayla ilgili kendimce küçük projeler geliştirmeye başladım. Yukarıdaki hikâye de buradan başlıyor.

  4. 2016

    C# ile ilk programlarım

    Meslek lisesinde C# ile programlamaya başladım. Önce temelleri öğrendim, sonra veri yapılarına ve algoritmik problem çözmeye geçtim.

  5. Haziran 2017 – Aralık 2018

    İspanya’da Erasmus+ Gençlik Değişimi

    İspanya’nın Arrecife şehrinde düzenlenen bir Erasmus+ Gençlik Değişimi projesine katıldım.

  6. 2018

    Veri tabanı uygulamaları ve bitirme projeleri

    Microsoft SQL Server (MS SQL) kullanan eksiksiz veri tabanı uygulamaları geliştirdim. Lise bitirme projelerim XOX ve Amiral Battı oyunlarının masaüstü sürümleriydi. Amiral Battı’nın C# kaynak kodu GitHub’da duruyor. Amiral Battı’daki bilgisayar rakibin kullandığı av ve hedef (Hunt & Target) algoritmasını ise sonradan geliştirdim. İki oyunu da artık tarayıcıda oynayabilirsiniz.

  7. 2019

    Kriptografi ve görsel programlama üzerine bir TÜBİTAK projesi

    Lisedeyken bir TÜBİTAK araştırma projesi yaptım. Projede kriptografiyi ve görsel programlamanın mantığını inceledim. Akış şemalarıyla çalışan görsel bir kodlama aracının erken bir prototipi de projenin parçasıydı.

  8. Kasım 2019

    İstanbul Üniversitesinde matematik

    İstanbul Üniversitesi Fen Fakültesinde matematik lisansına başladım. Ağırlıklı olarak saf matematik okuyorum: reel analiz, soyut cebir ve topoloji. İlerleyen yıllarda Matematik Kulübü için akademik etkinlikler düzenledim: seminerler ile mantık ve matematik yarışmaları. Şimdi mezun olmaya hazırlanıyorum. Sonra bilgisayar bilimlerinde yüksek lisans yapmayı planlıyorum.

  9. 2019 – 2022

    İstanbul Üniversitesi Roket ve Uzay Kulübünde başkan yardımcısı

    Ekip olarak üç roket tasarlayıp ürettik. Biri, hedef irtifası 5.000 ft olan alçak irtifa roketiydi; diğer ikisi ise hedef irtifası 10.000 ft olan yüksek irtifa roketleriydi. Uçuş aviyoniğinin gömülü yazılımı ve paraşüt açma kontrolü tamamen benim sorumluluğumdaydı. Telemetri çalışmalarını yukarıdaki roketçilik bölümünde anlatıyorum. Gürültülü sensör verisi için Kalman filtrelerini araştırdık; dikey iniş gibi deneylerde de PID kontrolcüleri kullandık. Kalman ve PID bölümü bunları ayrıntılı anlatıyor. Kulübün son döneminde bir CubeSat geliştirmeye de giriştik ama bu proje yarım kaldı. Hikâyesini CubeSat bölümünde bulabilirsiniz.

  10. 2020

    YetGen 21. Yüzyıl Yetkinlikleri

    Mehmet Zorlu Vakfının düzenlediği YetGen 21. Yüzyıl Yetkinlikleri programını tamamladım ve sertifikamı aldım. Programda sunum becerileri, Excel’in Çözücü (Solver) aracı ve girişimcilik üzerine seminer ve dersler vardı.

  11. 2020

    Python ile bir uçuş simülasyonu prototipi

    Roket yörüngelerini üç boyutta hesaplayan bir simülasyonun prototipini Python ile yazdım. Kapsamı dardı ve tek bir amaç için tasarlanmıştı. Şimdi aynı projeyi Rocket-Up adıyla, modern C++ ile baştan yazıyorum. Rocket-Up açık kaynak bir aerodinamik simülasyon motoru.

  12. Temmuz 2021 – Mart 2024

    crowd.inc’te yazılım geliştirici

    crowd.inc, insanların fikirlerini paylaşıp bu fikirler için yardım bulduğu, yüzlerce kullanıcısı olan bir web sitesiydi. Orada geliştirme sürecinin her aşamasını üstlendim. Sitenin hikâyesini ve orada neler yaptığımı yukarıdaki crowd.inc bölümünde anlatıyorum.

  13. 2023

    Google Developer Student Clubs çekirdek ekibi

    Flask, HTML ve Git/GitHub üzerine teknik atölyeler ve canlı yayınlar yaptım. Siber Güvenlik Haftası etkinliğini de düzenledim. Etkinlikte CCIE sertifikalı bir ağ güvenliği mühendisiyle canlı yayında teknik bir söyleşi vardı.

  14. 2024 – günümüz

    Asion’u geliştirmeye başladım

    Asion, gizliliği ön planda tutan bir üretkenlik ve bilgisayar etkinliği takip aracı. Farklı platformlarda çalışıyor; onu kendi sunucunuza kurabileceğiniz şekilde tasarladım. Proje hâlâ geliştiriliyor; erken erişim sürümü asion.app adresinde. Tek tıkla çalışan CI/CD süreçleri onu her platform için test ediyor, paketliyor ve dağıtıyor.

  15. 2025

    Novacast’i geliştirdik

    Novacast’i, çalıştığım bir bilgisayar firmasında hantal ve ihtiyaçlarımıza yetmeyen eski yazılımın yerine geçsin diye geliştirdik. Farklı modellerdeki birçok ekranı tek bir web panelinden yönetiyor; Windows, macOS, Linux, Samsung TV, LG TV ve Android TV’de çalışıyor. Her ekranda Rust ile yazılmış küçük bir oynatıcı var. Go ile yazılmış sunucu da ekranlara bir MQTT aracısı (broker) üzerinden ulaşıyor. Proje bugün canlıda çalışıyor.

  16. Haziran 2026

    Açık Matematik’i yayına aldım

    Açık Matematik, acik-matematik.com adresinde yayına girdi. Lisans düzeyindeki matematik için Türkçe ve açık kaynak bir akademik yayın platformu; aynı zamanda modern bir ders kitabı girişimi. Sayısal örnekler koddan yeniden hesaplanıyor, belgeler de özenle hazırlanıyor. Fikir 2023’te, akademik ders notlarıyla yaşadığım sıkıntıları çözmek isterken aklıma geldi. Geliştirmeyi Mart 2026’da hızlandırdım. Açık kaynak sürümünü de Eylül 2026’da duyurdum.

  17. Ağustos 2026

    NeoSMBIOS’u yayımladım

    NeoSMBIOS projesini MIT Lisansıyla yayımladım. Bu, C++23 için yazılmış bir SMBIOS/DMI ayrıştırıcısı. Tek bir başlık dosyasından oluşuyor (header-only) ve veriyi kopyalamadan okuyor (zero-copy). Gömülü yazılımın sunduğu bu tabloları okumak için WMI’ya ya da işletim sisteminin başlık dosyalarına ihtiyaç duymuyor.

  18. 2026

    Karecik’i yayına aldım

    Karecik artık canlıda çalışan bir ürün: yerel kafe ve restoranların kullandığı, çok kiracılı (multi-tenant) bir QR menü platformu. Ortaokuldan bir arkadaşımın kafesi için yaptığım bir QR menüyle başladı. O arkadaşım bugün üç şubesinde de Karecik’i kullanıyor. İlk prototipler 2021’e dayanıyor; proje o zamanlar başka adlar taşıyordu. Go ile yazdım; veri tabanı olarak PostgreSQL kullandım. Kesintisiz ve hızlı çalışsın diye tasarladım. Kaynak kodu GPL-3.0 lisansıyla açık.