Category Archives: Yapay Zeka
Yeni Podcast: Yapay Zekâ Çağında Kimler Oyunda Kalacak?
Fıkra
Syntax check, autocomplete, type inference, refactoring, debugger, Stack Overflow, framework, compiler olmadan üretkenliği dramatik biçimde düşecek bir yazılımcı, yapay zekâ tarafından üretilmiş çalışan kodu “gerçek yazılım geliştirme değil” diye küçümsüyor.
Fikra bu kadar!
Yazılım geliştirme hiçbir zaman çıplak insan zekâsıyla yapılan bir faaliyet olmadı. Hep araçlarla genişletilmiş bir zihinsel faaliyet oldu. Yapay zekâ sadece bu araç zincirindeki en yeni ve en güçlü katman.
Yazılımcının işi kod yazmak değil, çalışan bir sistem meydana getirmektir. Kod bunun için kullanılan ara temsillerden yalnızca biridir.
Programcı Mesleği Değer Üretmiyor
Kıymetli olan kodun kendisi mi yoksa canlıda onun çalışan hali mi?
Günün sonunda kimse yazılmış kodla ilgilenmez. Önemli olan tek şey, onun çalışıyor ve görevini yerine getiriyor olmasıdır.
Bu sebeple kodun çalışacağı ortamı hazırlamak ve onu çalışır hale getirmek çok daha önemli bir iştir.
Yapay zeka öncesi kod yazmak çok maliyetli ve zahmetli bir işti. Bu yüzden yazılım kod yazma olarak algılanırdı.
Yapay zeka ile bu durum değişmiş durumda.
Kod yazma derdi ortadan kalktı.
Ama şu problemler aynı hızda ortadan kalkmıyor:
- Bu kod nerede çalışacak?
- Nasıl deploy edilecek?
- Veritabanı nasıl migrate edilecek?
- Secret’lar nasıl yönetilecek?
- Sistem çökerse ne olacak?
- Logları kim okuyacak?
- Backup var mı?
- Restore gerçekten çalışıyor mu?
- Trafik artarsa ne olacak?
- Yeni sürüm eski sürümü bozarsa nasıl geri dönülecek?
Dolayısıyla değer zincirinde ağırlık merkezi kod üretmekten çalışan sistem üretmeye kayıyor.
Bir programcı ile bir yazılım mühendisini ayıran nokta da her zaman bu olmuştur.
Programcı: Kod üretir.
Yazılım mühendisi: Çalışan sistem üretir.
Hangisine artık ihtiyaç kalmadı ve bu yüzden kısa bir zaman sonra tamamen ortadan kalkmış olacak?
Programcı mesleği yok olmak zorunda, çünkü artık bir değer üretmiyor.
Merak
Siradan bir Java yazilimcisi JVM icinde ne dolaplar döndügünü pek bilmez.
Sadece merakli olanlar bunu bilirler ve bu merak onlari daha iyi bir yazilimci yapar. Ama bilmeseler de iyi kod yazabilirlerdi.
Hicbir yazilimci bir derleyicinin nasil calistigini umursamaz bile.
Sadece merakli olanlar bunu bilir ve bu merak onlari daha iyi bir yazilimci yapar. Ama bilmeseler de yazdiklari kod derlenirdi.
Çoğu yazılımcı yapay zekânın nasıl çalıştığını bilmez. Ama yapay zeka ile yazilim gelistirebilir.
Sadece meraklı olanlar bunları öğrenirler.
Ve evet, bu merak onları yine daha iyi bir yazılımcı yapar.
Ama burada önceki örneklerden farklı bir durum var. JVM’i bilmemek, yazdığın Java kodunun ne olduğunu değiştirmiyordu.
Derleyiciyi bilmemek, programlama biçimini kökten değiştirmiyordu.
Yapay zekâyı anlamamak ise onunla nasıl çalıştığını doğrudan etkiliyor. Çünkü yapay zekâ sadece altta çalışan yeni bir teknoloji katmanı değil. Aynı zamanda seninle birlikte düşünen, üreten ve karar süreçlerine dahil olan yeni bir çalışma katmanı.
Bu yüzden mesele artık bir LLM’in matris çarpımlarını bilmek değil.
Onun neyi iyi yaptığını, nerede yanıldığını, nasıl bağlam kurduğunu, neden bazen emin bir şekilde yanlış konuştuğunu ve senden nasıl yön beklediğini anlamak.
Bir yazılımcının JVM’in garbage collector algoritmasını bilmesine gerek olmayabilir.
Ama yapay zekâ ile çalışan bir yazılımcının, yapay zekânın sınırlarını bilmemesi ciddi bir problem olabilir. Çünkü artık kullandığımız araç sadece komutlarımızı yerine getirmiyor.
Yorumluyor.
Tamamlıyor.
Tahmin ediyor.
Bazen de bizim yerimize düşünüyor.
Dolayısıyla yapay zekâ çağında iyi yazılımcı olmak için yapay zekâ mühendisi olmak gerekmiyor.
Ama yapay zekânın çalışma karakterini anlamak gerekiyor.
Eskiden merak, bizi daha iyi yazılımcı yapıyordu.
Şimdi ise merak, oyunda kalmamızı sağlıyor.
Tutunacak Bir Dal
Eskiden yazilim yapiyordum. Simdi yazilim yaptiriyorum.
Peki eskiden yazilim yaptiranlar simdi ne yapiyor?
Eskiden yazilim yaptiranlar katmani ortadan kalkiyor. Dip dalga olarak gelen bu degisiklikler yekünü yapanlarin yaptiran olmasina, yaptiranlarin ise issiz kalmasina neden olacak.
Bu gidisati karsi korunmanin en iyi yolu, her daim yapan / üreten pozisyonunda kalabilmek. Yapay zeka ile calisabilen yazilimcilar yine yapan / üreten pozisyonunda olacaklar.
Yapmak birseye tutunmak anlamina geliyor. Dip dalga geldiğinde tutunacak bir dalın yoksa, dalgayla birlikte sürüklenirsin.
Asil mesele her daim birseylere tutunabilmek olmustur.
Büyük dönüşümler gürültüyle değil, dip dalgalarla gelir. Fark edilmezler; fakat geride bıraktıkları dünya artık eskisi değildir.
Hayatta kalanı en güçlü olanlar değil, tutunacak yeni dalları en hızlı bulanlar olur.
Kim Senior Yazılımcıdır?
Senior yazilimci ne anlama geliyor, ondan bahsetmek istiyorum.
Senior anlam olarak icinde ne barindiriyor?
Senior tecrübeden gücünü alan sezgi demektir.
Suna sahit olmussunuzdur. Bir problemi cözmek icin ugrasirsiniz, ama cözümü hemen göremezsiniz. Senior birisine sorarsiniz, “söyle yapacaksin” diiye aninda tepki verir. Düsünmeden, merminin tabancadan cikmasi gibi bu cevap ve ihtiva ettigi cözüm nereden gelmektedir sizce? Sezgi!
Bu sebeple yapay zeka ile olan calisma tarzina da en yatkin olanlar senior yazilimcilardir, cünkü yapay zekaya ilk dokunduklarinda o sezgi onlara isin nereye gidecegini aninda göstermistir.
Bu sebeple yapay zeka ile yazilim yapabilmek icin iyi bir senior yazilimci olmak gerekiyor. Iyi bir yazilimci olma yolunda o sezgisel gücü edinmis olanlar, yapay zekanin nelere kadir oldugunu bilenlerdir.
Nasil senior yazilimci olunur?
10 sene boyunca degisik yazilim alanlarinda ihtisas yaparak! Ayni seyi 10 sene tekrar etmis olmak ayni sey degildir, hele hele 3-5 sene sonra profile senior yazilimci ibaresini eklemek hic degil!
Benim icin senior yazilimcilik 10+ ile baslar. 1-5 sene tecrübe ciraklik, 5-9 sene tecrübe ile kalfa olunur. Buradaki en önemli nokta bu 10 senenin hangi tecrübeler ile dolduruldugudur. Programci ile yazilim mühendisini ayirt eden en büyük farklilik buradaki bilgi ve tecrübe yelpazesidir.
Bizde ne kadar üniversite ve yazilim mühendisi enflasyonu varsa, bir o kadar da senior enflasyonu var.
Bu yazi nereden kaynaklandi diye sorarsaniz, aciklayayim.
Ben senior yazilimcilardaki o sezgiye cokca sahit olmus birisiyim. Burada kendini senior fullstack ya da senior backend yazilimci ünvanlari ile yorum yapan yazilimcilara denk geliyorum. Yorum olarak verdikleri tepkiler o kadar o bahsettigim sezgilere ters ki, senior olmadikarini ifsa etmis oluyorlar.
Almanca’da bir deyim var: Namen sind Schall und Rauch. Türkce’ye isimler ses ve dumandir yani bir anlam ifade etmezler seklinde tercüme edilebilir. Insanlarin kendilerine ya da baskalarinin insanlara verdikleri ünvanlar birsey ifade etmezler. Önemli olan insanin tasidigi inherent degerlerdir.
Video: Forward Deployed Engineer
Yapay Zeka ve Production
Iyi bir yazilimciyi vasatindan ayirt edici en önemli özellik canli tecrübesidir, yani bütün resmi görebilmek. Proje yapmak, kod yazmak insani bir yere kadar yetistiriyor. Asil is, projeyi yazilim ürünü olarak canliya tasimak ve orada isletebilmek.
Simdiye kadar yapay zeka araclari ile nasil yazilim ürünü gelistirilir sorularini tartistik. Projemi henüz teknik olarak bir ürün haline dönüstürme safhasini tamamlamadim. Ama aklim simdiden yapay zeka destekli canli isletme modeline kaymaya basladi. Bu yapay zekaya yazilim yaptirmaktan cok daha heyecan verici bir alan.
Bu model ile:
- Realtime log analizi
- Hatalarin loglar üzerinden tespiti ve dev staging alaninda giderilmesi
- Runtime memeory leak ve yük analizleri ve otomatik kapasite optimizasyonu
- Realtime monitoring ile sistemsel ve mimari sorunlarinin kesfi ve girelimesi
- Kendi kendini runtime icinde tamir eden uygulamalar
gibi konulara birlikte isik tutacagiz.
Yapay zeka araclari ürün gelistirme konusunda muazzam potansiyelleri olduklarini kanitladilar. Canlida calisan bir ürün icin CI yani continious improvement konusunda potansiyellerinin cok daha büyük oldugunu düsünüyorum.
Daha yapay zeka ile veri analizi konusuna girmedik bile. Ücüncü kademe de bu konuya da egilecegiz.
Bu konularin hepsini birlikte burada inceliyor olacagiz. Tecrübelerimi sizlerle paylasamaya devam edecegim.
Video: Yazılımcı Rolleri Değişiyor
Vibecoding ile Neler Yapılamaz?
Yazilim bilgisi olmayan bir vibecodingcinin yapamayacaklari:
- Veritabani ve index nedir bilgisi eksikligi yüzünden olusan veritabani performans problemlerini cözmek
- Canlida yük dagitimi yapmak (HA)
- Veritabani replikasyonu
- Uygulamayi bulut bilisim ya da klasik sunuclarda isletmek
- Bu sunucularin güvenlik ayarlarini (firewall; ufw) ayarlarini yapmak
- Canlida olusan teknik ve network problemlerini cözmek
- Network konfigürasyonu
- Prometheus ve Grafana ile monitoring altyapisini kurmak ve canlida metrik ölcümlerini yapmak
- CI / CD pipeline olusturmak
- Memoryleak analizleri yapmak
- Yazilim ve network mimarisi kurgulama
- Artan yükle altyapiyi scale ettirmek
- Veri migrasyonlari ve backuplar yapmak
- Efektiv git ve branch yönetimi yapmak
- API tasarlamak
- Event driven design yapmak
- Code review yapmak
- Test yazmak
- ERD veri modelleri olusturmak
Daha onlarca konu sayabiliirim.
Yani kod yazdirabilmek, kaldi ki onu da dogru yapamaycaktir, tek basina hicbir anlam ifade etmemektedir.
Bu alanlarin hepsine hakim olan senior yazilimci arkadaslara selamlarimi gönderiyorum.
Sky is the Limit
2022 yilina kadar 25 sene boyunca programci olarak calistim. Yapay zeka araclari kullaniminda sifir kod yazma, sifir kod review, sifir test yazma evrelerine kadar geldim. Yazilimda her zaman müsterinin ve onun isteklerinin ön planda olmasi gerekliligine inandim ve bunu hep savundum. Ama günün sonunda hep masa basina dönüp, kod yazmak zorunda kaldim.
Artik böyle bir zorunluluk yok. Simdi tamamen müsteri odakli calisiyorum ve yapay zeka ile ortaya cikan ürünler daha önce teknik olarak belki hayal edilir ama yapilamaz türden.
Ürünler bir tebesir ile kara tahtada cizilir kadar kolay ortaya cikiyor. Bu satirlari yazarken Fable 5 arka planda su saniyede onlarca belki yüzlerce satir kod yazdi. Ben bu yaziyi tamamladigimda, istedigim uygulama özelligi de calisir durumda olacak.
Hayal edebilene artik hayat bu kadar kolay.
Not: hayallerinin gercekleseceginden emin olsaydin, ne kadar büyük hayal kurardin?
Kod Yazarken Uygulama Gelistirilmez
1.5 yildir bir Java sinifi, tasarim sablonu, algoritma ya da hangi veri yapisini kullanacagim aklima bile gelmiyor. Ben bütün gün uygulamanin faal olacagi alan (domain) icinde takiliyorum ve ne sorusunun cevabini ariyorum:
- müsteri ne istiyor?
- sürec abc ne anlama geliyor ve nasil isliyor?
- beklentiler neler?
- riskler neler?
- böyle yapsak ya da yapmasak ne olur?
Beni daha iyi bir programci yapan hicbir zaman teknik bilgim olmadi. Nasil sorusuna cevap bulmakla yükümlü yapay zekayi yönlendirirken bu teknik bilgi elbette cok faydali. Bu teknik bilgi ile giris ve cikis kapilarini tutmus oluyorsunuz ve giren ve cikan sizin kontrolünüzde oluyor. Ama bundan daha önemli olan sey, icerde olup, bitenleri tayin edebilmek, yani nasil sorusunun dogru cevaplarinin yapay zeka tarafindan bulunmasini saglamak. Bunun yolu sadece alan hakimiyetinden ve o alanda yasanan süreclerin idrak seviyelerinden geciyor.
Bir programciyi iyi bir programci her daim ne sorusunun pesinde olmasi yapmistir. Isin nasil kismi yani kod yazmak cok kücük bir alanla istigal etmekti. Eskiden de iyi programcilar müsterilerine iyi kulak verenlerdi, simdilerde de ayni sey gecerli.
Bir uygulama cikarmak icin gerekli en önemli yetiler analitik düsünme, gereksinim analizi ve iletisim olmustur, kod yazmak degil.
Kisaca kod yazarak uygulama gelistirilmez. Bir uygulama düsünerek ve sorgulayarak gelistirilir. Artik kod yazmamiza gerek kalmadigina göre, asil isime konsantre olabilliriz.
Hayirli düsünmeler.
Video: Yazılım Fabrikasından Taze Çıkan Somut Bir Ürün Örneği
Video: Software Factories
Software Factory Pattern
Daha önceki yazilarimda yapay zeka araclari ile calisirken gectigim evreleri sizinle paylasmistim. Buna bir yenisi daha eklendi: Software Factory Pattern
Gectigim Evreler:
Autocomplete -> Prompt Engineering -> Loop Engineering -> Software Factory Pattern
4 sene öncesinde benim icin ilk yapay zeka araci olan Github Copilot ile tanistigimda, satir bazinda autocomplete özelligi ile bu arac benim kodumu tamamlayabiliyor, alternatif kod örnekleri sunabiliyordu. Bunu daha sonra metot ve sinif bazinda yapmaya basladim.
Daha sonra chat özelligi geldi ve ben promptlar ile calismaya basladim. Akabinde uygulama özelliklerini promptlar ile gelistirmeye basladim.
Loop engineering ile bunu otomatize ettim ve uygulama özellikleri icin bir pipeline olusturdum. Daha sonra bunu tüm bir uygulama icin yapabilecegimi gördüm ve simdilerde software factory pattern ile calisiyorum.
Nedir bu software factory pattern?
Yazilim üretilen bir fabrika düsünün. Ben bir ekosistemi olusturan onlarca uygulama üzerinde calisiyorum. Eskiden bir uygulamayi secip, onun parcalari üzerinde calisirdim. Simdilerde bütün bir uygulamayi loop engineering ile bir bütün olarak insa ettiriyorum. Bu 24-48 saat zaman diliminde otonom calisan Codex + Fable 5 ile gerceklesiyor. Fabrika bir sonraki uygulanin kaba insaatini yaparken, ben bu zaman diliminde fabrikadan taze cikmis baska bir uygulama icin fine-tuning islemlerine basliyorum. Fine-tuning prompt engineering ile uygulamayi kaba halinden alip, istedigim hale sokma islemi.
Bunun nasil yapildigini bir sonraki videoda sizlerle paylasacagim.
Yapay Zeka ile Uygulama Geliştirme Yol Haritası
Yapay zeka araclari ile ürün gelistirmek istiyorsaniz, bunu nasil yapmaniz gerektigine dair benim uyguladigim yol haritasini sizinle paylasmak isterim.
Yol haritasi su sekilde:
- Iyi bir fikrim var
- Analiz safhasi
- Loop engineering ile kaba insaat
- Prompt engineering ile ince insaat (fine-tuning)
- CI / CD ile ilk testler, sürüm ve deployment
- Sistem hatalari ve kullanici geribildirimleri ile düzeltmeler
- Hardening ile güvenlik aciklarinin kapatilmasi
- Performans testleri ile yük kapasitesinin ölcümü ve memory leak düzenlemeleri
- Canliya alim.
- Canlida olusan hatalari ve loglari sürekli yapay zekanin ulasabilecegi bir yere birakma ve hatalarin tamir edilmesi.
Ben öncelikle iyi bir fikri oldugunu düsündügüm noktada ise koyuluyorum. Buradan girisimcilik, piyasa arastirmasi, fizibilite, rekabet kosullari vb gibi konulari göz ardi ediyoruz. Ben ürünün teknik olarak nasil olusturulacagina deginecegim.
Fikir tek basina birsey ifade etmez. Önce fikrin yapilabilirliginin analiz edilmesi gerekmektedir. Bu amacla Codex / Gpt 5.5-high ile önce konuyu netlestirmek icin sohbet turlarina basliyorum. Buradaki maksat henüz göremedigim dolayli ve dolaysiz noktalara ulasabilmek. Akabinde alani (domain) tanimak icin bu sohbetleri analizlere dönüsecek sekilde derinlestirmek oluyor. Bununla birlikte uygulamanin mimari yapisi hakkinda fikir alisverisinde bulunuyorum. Burada benim cerceveyi tanimlamam gerekiyor, aksi taktirde yapay zeka istedigi ve cogu zaman benim tasvip etmedigim sekilde mimari ve kod olusturacaktir. Bu noktada mümkün mertebe baska projeleri referans olarak almasini sagliyorum ve bir senior dev gibi hareket etmesini saglayacak CLAUDE.md dosyasini olusturuyorum.
Bu safhada teknik olarak yeni projeyi baslatabiliriz. Bunun icin Codex’den gereklli tüm loop planlarini olusturmasini ve isi Opus ile koordine etmesini istiyorum ve bu noktada benim aradan cekilme vaktim gelmis oluyor.
12/24/48 saat araliklarinda gidisati konrol ediyorum. Olusan uygulama kaba hatlari ile benim siparis ettigim türde bir uygulama seklinde yapilandirlilmis olacaktir. Bu benim o uygulamayi hemen alip, canliya atarak, kullanabilecegim anlamina gelmemektedir. Bu noktada fine-tuning baslamak zorunda.
Öncelikle uygulamaya kullanmaya baslayarak, kesif turlarina cikmam gerekiyor. Bir son kullanici icin atilmasi gereken adimlari Codex’den bana yazmasini istiyorum. Bu arada Codex her loop sonunda gerekli test adimlarini ihtiva eden jira loop ticketleri olusturdu. Ben onlari tek tek inceleyerek, ne insa edildigini ve nasil calistigini görebilirim. Bu benim e2e testlerimi kolaylastiran bir sürec.
Uygulayi ve kapsadigi tüm sürecleri anladiktan sonra fine-tuning islemini baslatiyorum. Burada tek tek uygulama özelliklerini derinlesecek ve benim istedigim sekle gelecek sekilde prompt engineering yöntemleri ile fine-tune ediyorum, yani mevcut özellikleri degistiriyorum, yeni özellikler ekliyorum.
Bu noktadan itibaren uygulama test amacla ilk kullanicilari ile bir araya getirilebilir. Bu arada ben degisik staging alanlari icin deployment pipeline olusturmus oluyorum. Her degisiklik sonunda yeni bir sürüm olusturuluyor ve gerekli staging alanlarina test amacli deployment gerceklesiyor. Bu noktadan itibaren hardening ve performance testing sürecleri basliyor.
Bu islemler sonunda uygulama kullanicilari ile bulusacak canli ortamina alinabilecek kivama geliyor. Bu islemi tamamlayip, uygulamayi calisir halde kullanicilari ile bulusturuyorum.
Ben arka planda olusan bir hatalar icin jira ticketleri olusmasini sagliyorum. Yine düzenli araliklarla Codex buraya göz atip, sorunu analiz ettikten sonra loop planlari hazirliyor ve bu problemlerin Opus yardimi ile cözülmelerini sagliyor.
Yeni uygulama özellikleri icin döngüye yeniden baslatiyorum. Bu kadar :)
Loop Engineering ve Otonom Uygulama Geliştirme
Yapay zeka araclari ile ilk zamanlar line autocomplete özelligini kullanarak uygulama gelistirme serüvenime devam etmistim. Daha sonralari bunu metot ve sinif bazinda yapmaya basladim. Akabinde promptlarla uygulanin parcalarini degistirmeye basladim.
Daha sonra promptlarla komple uygulama özellikleri gelistirebilecegimin farkina vardim. Promptlarin uygulama özelligi gelistirme konusunda yetersiz kaldiklarini, tüm bir uygulama özelligi icin onlarca prompta ihtiyac oldugunu ve bunlari elden yönetmeye calismanin zaman kaybi oldugunu gördüm. Kendimce bir döngü kurmaya karar verdim.
Analizleri gpt’nin yaparak, promptlari olusturmasini sagladim. Prompt yazma derdinden kurtulmustum. Sira bunlari arka arkaya sistem tarafindan tek tek uygulama özelligine dönesecek sekilde uygulanmalarini saglamakti. Bunun icin kücük bir döngü catisi olusturdum. Bu aslinda iptidai bir loop engineering sekliydi. Daha sonra loop enginneering ile tanistim ve sistemin loop planlari olusturmasini ve bu planlarin otonom bir sekilde kosturulmasini sagladim.
Loop engineering ile uygulama özelliklerinin el sürmeden ve basinda bekleden olusturulmalarini sagladim. Simdilerde komple uygulamalarin loop enginnering ile el sürmeden olusturulmalarini seyrediyorum.
Bunun ilk örnegin distributed file storage uygulamasi. Döngü 30 saattir isliyor ve kodun %80 i tamamlanmis durumda.
Özetle yapay zeka araclari ile calisirken nereden nereye geldim?
Satir autocomplete -> metot autocomplete -> sinif autocomplete -> prompt ile degisiklik yapma -> prompt ile uygulama özelligi gelistirme -> loop engineering ile uygulama özelligi gelistirme -> loop engineering ile komple uygulama gelistirme -> nirvana :-)
“Aksamdan prompt verdim, sabah uygulama hazirdi” vari cümleler vibe coding camiasinda insanlarin agzina pelesenk olmus durumda. Yazilim konusunda tecrübesiz bir sahsin vibe coding ile böyle bir netice almasi imkansiz. Benim örnegimde ise bu cümle gecerliligini koruyabilir, cünkü benim gibi yazilimcilar hem sistem girdisini gerektigi sekilde sekillendirebilirler hem de ciktiyi degerlendirebilirler.
Hayallerinin Gerçek Olacağını Bilseydin
Kücük bir örnek vereyim, nereden nereye geldigimizi gözler önüne serebilmek icin..
2000 lerde yaptigim Bizimalem.com projesi full distributed bir sistemdi. Orada tüm video, resim ve benzeri binary dosyalar icin mogilefs isminde open source bir distributed file storage sistemi kullanmistim.
Detaylar icin bknz:
O zamanlar böyle bir sistemi kendim yapayim diye bir fikir bile aklina gelmezdi insanin.
Simdi baska bir proje üzerinde calisiyorum ve orada resim ve video vari dosyalari veritabaninda blob seklinde tutarak basladim, ama bunun basima bela olacagini cok iyi biliyorum.
Peki ne yapmaliyim?
Hemen mogilefs vari bir distributed file storage programlayacagim. Ben degil tabi, Opus 4.8 yapacak ;-)
Tech stack:
- backend java, spring boot
- node agentlar go
- kontrol paneli angular, typescript
Yapma süresi: max 2 gün.
Birazdan basliyorum.
Not: eger hayallerinin gerceklesecegini net olarak bilseydin, ne kadar büyük hayaller kurardin?