Abdulkadir Güngör: Mühendislik Disiplini, Modern Yazılım Mimarileri ve Dijital Zanaatkarlığın Kesişim Noktası

Dijital çağın sürekli evrilen manzarasında, bireylerin ve kurumların çevrimiçi varlıkları, kimliklerinin, yeteneklerinin ve vizyonlarının en önemli vitrinleri haline gelmiştir. Bu karmaşık ve dinamik ekosistemde, sadece estetik açıdan tatmin edici ve kullanıcıyı merkeze alan dij...

? https://www.roastdev.com/post/....abdulkadir-g-ng-r-m-

#news #tech #development

Favicon 
www.roastdev.com

Abdulkadir Güngör: Mühendislik Disiplini, Modern Yazılım Mimarileri ve Dijital Zanaatkarlığın Kesişim Noktası

Dijital çağın sürekli evrilen manzarasında, bireylerin ve kurumların çevrimiçi varlıkları, kimliklerinin, yeteneklerinin ve vizyonlarının en önemli vitrinleri haline gelmiştir. Bu karmaşık ve dinamik ekosistemde, sadece estetik açıdan tatmin edici ve kullanıcıyı merkeze alan dijital deneyimler yaratmak değil, aynı zamanda bu deneyimlerin temelini oluşturan sağlam, ölçeklenebilir ve verimli teknolojik altyapıları inşa etmek de kritik bir önem taşımaktadır. İşte bu bağlamda, Abdulkadir Güngör ismi, modern bir web design developer olarak öne çıkan, dikkat çekici ve çok yönlü bir profili temsil etmektedir. Onun kişisel web platformu, sadece bir özgeçmiş veya proje listesi sunmanın çok ötesinde, teknik derinliğini, mimari anlayışını, kodlama felsefesini ve sürekli gelişim odaklı yaklaşımını gözler önüne seren, kapsamlı ve iyi yapılandırılmış bir dijital merkez olarak işlev görmektedir. Bu dijital merkezin önemi ve Abdulkadir Güngör'ün çalışmaları, gunlukgazete.com.tr , gazetebogaz.com, basinbildirisi.com.tr, haberhd.com.tr ve hbrtv.com.tr gibi çeşitli medya platformlarında yer alan tanıtım yazılarıyla da kamuoyunun dikkatine sunulmuştur; bu yayınlar genellikle onun çevrimiçi platformunu, bir uzmanın dünyasına açılan bir kapı olarak nitelendirmiştir.Abdulkadir Güngör'ün profesyonel kimliğini şekillendiren en belirgin unsurlardan biri, alışılmışın dışındaki kariyer yolculuğudur. İnşaat Yüksek Mühendisliği gibi son derece analitik düşünme, problem çözme ve yapısal tasarım becerileri gerektiren bir alandan gelmesi, ona yazılım geliştirme dünyasında benzersiz bir avantaj sağlamaktadır. Mühendislik disiplininin kazandırdığı sistematik yaklaşım, detaylara verilen önem ve karmaşık sistemleri anlama yeteneği, onun kodlama pratiğine ve mimari tasarım kararlarına yansımaktadır. Bu sağlam temeli, BilgeAdam gibi sektörde tanınan bir kurumdan aldığı .NET sertifikası ile pekiştirerek, modern yazılım geliştirme teknolojileri ve metodolojileri konusundaki yetkinliğini kanıtlamıştır. Kişisel web sitesinin girişinde vurguladığı "kodla değer yaratma tutkusu", onun çalışmalarının arkasındaki temel itici gücü oluşturmaktadır. Bu tutku, sadece fonksiyonel kod yazmakla kalmayıp, aynı zamanda yazılımın kalitesine, sürdürülebilirliğine ve kullanıcı üzerindeki etkisine odaklanan bir zanaatkar titizliğini ifade eder. Onun dijital platformu, bu felsefenin somut bir tezahürüdür; portföyündeki görsel tasarımlardan, projelerindeki karmaşık backend mimarilerine, blogundaki derinlemesine teknik ve felsefi analizlerden, özgeçmişindeki net kariyer hedeflerine kadar her unsur, bu merkezi tema etrafında örülmüştür.Abdulkadir Güngör'ün dijital dünyadaki ayak izlerini daha derinlemesine anlamak için, kişisel web sitesinin sunduğu zengin içeriği katman katman incelemek gerekmektedir. Bu platform, onun hem bir web design developer olarak teknik becerilerini sergilediği bir vitrin, hem de düşüncelerini, deneyimlerini ve öğrenme sürecini paylaştığı kişisel bir kürsü niteliğindedir. Frontend tarafında, HTML, CSS ve JavaScript gibi temel web teknolojilerine olan hakimiyetini, sadece estetik değil aynı zamanda erişilebilirlik ve semantik doğruluk gibi modern prensipleri gözeten bir yaklaşımla ortaya koymaktadır. Portföy bölümünde sunulan çalışmalar, onun görsel tasarım yeteneğini, duyarlı arayüzler oluşturma becerisini ve kullanıcı deneyimini zenginleştiren etkileşimler yaratma kabiliyetini somutlaştırmaktadır. Temiz kod yazma pratiğine ve detaylara verdiği öneme yaptığı vurgu, geliştirdiği arayüzlerin sadece görünürde değil, kod temelinde de kaliteli ve sürdürülebilir olduğunu ima eder. Kullanıcı odaklı arayüzler oluşturma tutkusu ise, teknolojiyi son kullanıcının ihtiyaçları ve beklentileri doğrultusunda şekillendirme arzusunu gösterir. Portföydeki çeşitli şablonlar, onun farklı tasarım stillerine ve proje gereksinimlerine uyum sağlayabilen esnek bir geliştirici olduğunun kanıtıdır. HTML'in yapısal gücünü semantik ve erişilebilir kodlar yazmak için kullanması, CSS'in esnekliğini göz alıcı ve cihazdan bağımsız düzenler yaratmak için değerlendirmesi, JavaScript'in dinamizmini ise kullanıcı etkileşimini ve işlevselliği artırmak için seferber etmesi, onun frontend geliştirme sanatına ve zanaatına olan bütüncül yaklaşımını sergiler. Modern webin gerektirdiği erişilebilirlik standartlarına (WCAG gibi) ve SEO dostu kodlama pratiklerine olan dolaylı vurgusu, işinin kalitesine verdiği önemi pekiştirir.Ancak Abdulkadir Güngör'ün yetenekleri, kullanıcı arayüzünün görünen yüzüyle sınırlı değildir. Kişisel web sitesinin "Projeler" bölümü, onun backend geliştirme alanındaki teknik derinliğini ve özellikle C# dili ile .NET ekosistemi üzerindeki uzmanlığını çarpıcı bir şekilde ortaya koymaktadır. Bu bölümde detaylandırılan BilgeAdamEvimiKur ve BilgeAdamBanka projeleri, sadece kodlama becerisini değil, aynı zamanda karmaşık yazılım sistemlerini tasarlama ve modern mimari prensipleri uygulama yeteneğini de sergilemektedir. Her iki projede de .NET 8.0 platformunun kullanılması, onun güncel teknolojileri takip ettiğini ve modern platformların sunduğu avantajlardan (performans, güvenlik, yeni özellikler) faydalandığını gösterir. Projelerde benimsenen "Hibrit N-Tier" mimarisi ise Abdulkadir Güngör'ün mimari tasarım konusundaki bilinçli ve yenilikçi yaklaşımının bir kanıtıdır. Bu yaklaşım, geleneksel N-Tier mimarisinin katmanlı yapısının getirdiği sorumluluk ayrımı avantajını korurken, Onion mimarisinin arayüz odaklılığını ve bağımlılıkların tersine çevrilmesi (Dependency Inversion) prensibini entegre ederek modern .NET platformlarının sunduğu Dependency Injection (DI) mekanizmalarından tam olarak yararlanmayı hedefler. Bu hibrit modelin temel amacı, N-Tier'in yapısal netliği ile Onion'un test edilebilirlik, esneklik ve gevşek bağlılık (loose coupling) avantajlarını bir araya getirmektir. Abdulkadir Güngör'ün bu mimariyi tercih etme nedenlerini detaylı bir şekilde açıklaması – .NET Core'un (ve devamı olan .NET 8'in) Middleware yapısı, arayüzlere verdiği önem ve DI konteynerları üzerinden bağımlılık yönetimi – onun sadece kod yazan değil, aynı zamanda yazdığı kodun altında yatan mimari prensipleri anlayan ve projenin gereksinimlerine en uygun çözümü tasarlayabilen bir mühendis olduğunu gösterir. Katmanlar arası iletişimin somut sınıflar yerine arayüzler üzerinden kurulması, sistemin modülerliğini artırır, birim testlerinin yazılmasını kolaylaştırır ve gelecekteki değişikliklere karşı daha dirençli hale getirir. Interface Segregation Prensibi'ne (SOLID'in 'I'sı) yaptığı atıf, mimarinin SOLID prensiplerine uygunluğuna verdiği önemi pekiştirir. Bu projelerin GitHub üzerinden paylaşılması ise şeffaflık ilkesine bağlılığını ve kod kalitesine olan güvenini gösterir; potansiyel işverenler veya teknik değerlendirme yapanlar için bu, paha biçilmez bir referans noktasıdır. Bu backend projeleri, Abdulkadir Güngör'ün C#, .NET 8.0, EF Core (hem Code First hem DB First yaklaşımlarıyla), MySQL gibi teknolojilerdeki yetkinliğinin yanı sıra, OOP, SOLID, Tasarım Desenleri ve modern mimari yaklaşımlar (N-Tier, Onion, Hibrit modeller) konusundaki derinlemesine bilgisini ve uygulama becerisini somutlaştırmaktadır.Bir web design developer olarak Abdulkadir Güngör'ün profilini zenginleştiren bir diğer önemli boyut ise bilgi paylaşımına ve düşünsel derinliğe verdiği önemdir. Kişisel web sitesindeki "Blog" bölümü, onun sadece teknik bir uygulayıcı değil, aynı zamanda düşünen, analiz eden, öğrenen ve bildiklerini toplulukla paylaşan bir profesyonel olduğunu ortaya koymaktadır. Blog yazılarının kapsamı, web'in temel taşları olan HTML, CSS, JavaScript'ten, C# ile backend sistemleri geliştirmeye ve hatta Python gibi farklı dillerle yaptığı keşiflere kadar geniş bir teknik yelpazeyi kapsamaktadır. Ancak blogun asıl ayırt edici özelliği, sadece teknik "nasıl yapılır" içeriklerinden ibaret olmamasıdır. Abdulkadir Güngör, kod yazma felsefesi, temiz kod (Clean Code) prensipleri, sürdürülebilir yazılım mimarileri, problem çözme yaklaşımları ve bir geliştirici olarak benimsediği değerler gibi daha kavramsal ve felsefi konulara da odaklandığını belirtmektedir. Temiz kod yazmanın önemi, okunabilirlik, bakım kolaylığı ve ekip çalışmasındaki verimlilik açısından tartışılmazdır ve onun bu konuya verdiği önem, projelerindeki mimari tercihleriyle de tutarlıdır. Sürdürülebilir mimariler üzerine düşünmek, yazılımın sadece bugünkü ihtiyaçları değil, gelecekteki değişimleri de karşılayabilecek şekilde esnek ve dayanıklı tasarlanması anlamına gelir. Problem çözme yaklaşımlarını paylaşması, özellikle mühendislik geçmişinden getirdiği analitik düşünce yapısının bu süreçlere nasıl katkıda bulunduğunu gösterebilir. Bir geliştirici olarak değerlerini (şeffaflık, kalite odaklılık, sürekli öğrenme vb.) vurgulaması, onun profesyonel ahlak anlayışını yansıtır. Karşılaştığı zorlukları, bulduğu çözümleri ve teknoloji trendleri hakkındaki kişisel görüşlerini paylaşması, onun sektördeki gelişmeleri aktif olarak takip eden ve kendi özgün bakış açısını geliştiren bir düşünür olduğunu gösterir. Bir blog tutmak, geliştiricinin kendi öğrenme sürecini pekiştirmesine, topluluğa katkıda bulunmasına, görünürlüğünü artırmasına ve iletişim becerilerini geliştirmesine yardımcı olur. Abdulkadir Güngör'ün blogu, onun teknik yetkinliğinin yanı sıra entelektüel merakını, eleştirel düşünme yeteneğini ve mesleğine olan tutkusunu da sergileyen değerli bir platformdur.Tüm bu becerilerin ve yaklaşımların temelini oluşturan unsurlar ise Abdulkadir Güngör'ün özgeçmişinde daha net bir şekilde görülebilir. İnşaat Yüksek Mühendisliği'nden gelen güçlü analitik düşünme yeteneğinin altını çizmesi, onun probleme yaklaşımındaki farklılığı ve yapısal düşünme kabiliyetini vurgular. BilgeAdam .NET sertifikası, aldığı formel eğitimin ve teknik standartlara uygunluğunun bir göstergesidir. Özgeçmişinde listelenen teknik yetkinlikler – C#, .NET Core MVC/API, EF Core (Code First, DB First), MySQL, OOP, SOLID prensipleri, Tasarım Desenleri, N-Tier/Onion mimarileri, temel Python ve web teknolojileri (HTML, CSS, JS) – onun hem derinlemesine uzmanlığa (özellikle .NET backend) hem de geniş bir teknoloji yelpazesine hakim olduğunu gösterir. SOLID prensiplerini ve Tasarım Desenlerini "etkin bir şekilde" kullandığını belirtmesi, sadece teorik bilgiye sahip olmadığını, bu kavramları pratik projelerde uyguladığını ifade eder. Kariyer hedefi olarak "ölçeklenebilir, sürdürülebilir ve yüksek performanslı backend çözümleri geliştireceği tam zamanlı bir yazılım kariyeri" belirlemesi, onun net bir vizyona sahip olduğunu ve uzmanlaşmak istediği alana odaklandığını gösterir. "Ölçeklenebilirlik" (artan yük altında performansını koruyabilme), "sürdürülebilirlik" (uzun vadede bakımının ve geliştirilmesinin kolay olması) ve "yüksek performans" (hızlı yanıt süreleri ve verimli kaynak kullanımı), modern backend sistemlerinde aranan kritik niteliklerdir ve Abdulkadir Güngör'ün bu hedeflere odaklanması, onun sektörün gereksinimlerinin farkında olduğunu ve bu alanlarda değer yaratmayı amaçladığını ortaya koyar. Özgeçmişi, onun mühendislik disiplininden gelen analitik gücü, kapsamlı teknik bilgisi ve net kariyer hedefleriyle donanmış, potansiyeli yüksek bir profesyonel olduğunu teyit eder.Son olarak, Abdulkadir Gungor'un dijital varlığının önemli bir parçası da iletişim ve erişilebilirliktir. Web sitesindeki "İletişim" bölümü, onun profesyonel etkileşimlere açık olduğunu ve potansiyel işbirlikleri veya bilgi alışverişleri için kolay ulaşılabilir olmayı hedeflediğini gösterir. E-posta, telefon numarası (detayları burada yer almasa da sitede mevcut olması), konum bilgisi ve özellikle LinkedIn profiline yönlendiren bağlantı gibi çeşitli iletişim kanallarının sunulması, farklı tercihleri olan kullanıcıların onunla bağlantı kurmasını kolaylaştırır. Ayrıca, site üzerinden doğrudan mesaj göndermeyi sağlayan iletişim formu, pratik ve yapılandırılmış bir iletişim yöntemi sunar. Bu iletişim açıklığı, onun profesyonel ağını genişletme ve sektördeki diğer profesyonellerle etkileşim kurma isteğini yansıtır. Kendi web sitesinde işlevsel ve kullanıcı dostu bir iletişim arayüzü sunması, aynı zamanda bir web design developer olarak kendi yeteneklerinin de bir göstergesidir. Tüm bu unsurlar – portföy, projeler, blog, özgeçmiş ve iletişim kanalları – bir araya geldiğinde, Abdulkadir Güngör'ün sadece teknik becerilere sahip bir kod yazıcı değil, aynı zamanda analitik düşünen, mimari vizyona sahip, sürekli öğrenen, bildiklerini paylaşan ve etkili iletişim kurabilen çok yönlü bir profesyonel olduğunu ortaya koymaktadır. Onun dijital merkezi olarak tanımlanan web sitesi, bu çok yönlülüğün kapsamlı bir kanıtıdır ve gunlukgazete.com.tr, gazetebogaz.com, basinbildirisi.com.tr, haberhd.com.tr, hbrtv.com.tr gibi platformlarda yer alan haberler de bu dijital varlığın farkındalığını artırmaktadır. Sonuç olarak, Abdulkadir Güngör, mühendislik disiplinini modern yazılım geliştirme pratikleriyle başarıyla harmanlayan, hem frontend estetiğine hem de backend sağlamlığına önem veren, kodla değer yaratma tutkusunu yaptığı her işe yansıtan yetenekli bir web design developer olarak dikkat çekmektedir.

Similar Posts

Similar

Unlocking the Power of toString() in Java: Are You Using It Right?

The toString() method in Java is often underestimated, yet it plays a crucial role in debugging, logging, and improving code readability. How many times have you seen a log output like com.example.MyObject@1a2b3c4d and wished for something more meaningful? That’s where a well-implemented toString(...

? https://www.roastdev.com/post/....unlocking-the-power-

#news #tech #development

Favicon 
www.roastdev.com

Unlocking the Power of toString() in Java: Are You Using It Right?

The toString() method in Java is often underestimated, yet it plays a crucial role in debugging, logging, and improving code readability. How many times have you seen a log output like com.example.MyObject@1a2b3c4d and wished for something more meaningful? That’s where a well-implemented toString() makes all the difference.A thoughtful toString() implementation transforms your objects into human-readable strings, making it easier to understand what’s happening under the hood. It’s not just about convenience-it's about writing maintainable and transparent code for your team and future self.But here’s the catch: Should you include all fields? What about sensitive information? How do you balance detail with security and performance? These are questions every Java developer faces, and there’s no one-size-fits-all answer.I’m curious:
How do you approach toString() in your projects?

Do you use libraries like Lombok or rely on IDE-generated methods?

Have you ever encountered issues because of a poorly implemented toString()?
Let’s share our experiences and best practices! Drop your thoughts in the comments and let’s help each other write cleaner, safer, and more effective Java code.
Similar

Python APIs with FastAPI + Pydantic




Hey folks! Build Clean Python APIs with FastAPI + Pydantic
Hey developers!I just published a new article where I dive deep into building clean, scalable, and modern APIs using FastAPI and Pydantic.If you're tired of bloated frameworks or messy validation logic, this one's for you. I cover:
...

? https://www.roastdev.com/post/....python-apis-with-fas

#news #tech #development

Favicon 
www.roastdev.com

Python APIs with FastAPI + Pydantic

Hey folks! Build Clean Python APIs with FastAPI + Pydantic
Hey developers!I just published a new article where I dive deep into building clean, scalable, and modern APIs using FastAPI and Pydantic.If you're tired of bloated frameworks or messy validation logic, this one's for you. I cover:
Why FastAPI is the future of Python web frameworks
How Pydantic simplifies data validation and schema management
Structuring clean API endpoints
Real-world examples + production tips
Check it out here:
? Getting Started with FastAPI and Pydantic for Clean API DesignLet me know what you think, and drop your favorite FastAPI/Pydantic tips in the comments!Happy coding!
Similar

How to Save Composite Images with Stickers in Kotlin Compose?

IntroductionCreating an interactive image-editing application in Android using Jetpack Compose is an exciting project, especially when it involves allowing users to add stickers to their photos before saving the final composite image. In this article, we will explore how to manage and save a backgro...

? https://www.roastdev.com/post/....how-to-save-composit

#news #tech #development

Favicon 
www.roastdev.com

How to Save Composite Images with Stickers in Kotlin Compose?

IntroductionCreating an interactive image-editing application in Android using Jetpack Compose is an exciting project, especially when it involves allowing users to add stickers to their photos before saving the final composite image. In this article, we will explore how to manage and save a background image with overlaid stickers in a Kotlin Compose application.Understanding the ProblemWhile constructing your Compose UI, you've successfully managed the selection of a photo from the gallery and added stickers that users can manipulate. But you face challenges with the saving mechanism, specifically how to merge the background image and stickers into a single image file. This is a common requirement for developers crafting engaging photo editing apps.Solution OverviewTo save an image that includes stickers, we must take a few strategic steps. This involves rendering the composables to a Bitmap, merging them, and then saving the resulting Bitmap to the device storage. Below, we'll break down the process into clear steps.Step 1: Create a Bitmap from ComposableFirst, we need to define a function that captures the current Compose UI as a Bitmap. This is achieved using the GraphicsLayer and Canvas APIs.fun captureComposableToBitmap(composable: @Composable () - Unit): Bitmap {
val density = LocalDensity.current.density
val bitmap = Bitmap.createBitmap((imageSize.value.width * density).toInt(), (imageSize.value.height * density).toInt(), Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)

// Creating a composable scope to draw the UI into Bitmap
val composition = rememberCompositionLocalOf { -1 }
composition.apply { composable() }
Layout(content = composable, modifier = Modifier.size( bitmap.width.toDp(), bitmap.height.toDp() ))

return bitmap
}
Step 2: Merge the Background and StickersNow, after obtaining a Bitmap representation of your composables, you’ll want to overlay the stickers onto this Bitmap. Here’s how you can do this:fun drawStickersOnBitmap(original: Bitmap, stickers: List): Bitmap {
val canvas = Canvas(original)
val paint = Paint().apply { isAntiAlias = true }

for (sticker in stickers) {
val stickerBitmap = BitmapFactory.decodeResource(context.resources, sticker.resourceId)
canvas.drawBitmap(stickerBitmap, sticker.x, sticker.y, paint) // you can also adjust scale and rotation here
}

return original
}
Step 3: Save the Final Composite ImageAfter merging, you can save the resulting Bitmap. We will use the MediaStore or a file output stream to write the bitmap to storage. Here’s how:fun saveImageToGallery(bitmap: Bitmap, context: Context) {
val savedImageURI = MediaStore.Images.Media.insertImage(
context.contentResolver,
bitmap,
"Composite_Image",
"Composite Image with Stickers"
)
if (savedImageURI != null) {
Toast.makeText(context, "Image Saved Successfully!", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(context, "Image Saving Failed!", Toast.LENGTH_SHORT).show()
}
}
Complete Saving ProcessTo execute these methods, you can create a function that will capture the composable, merge stickers, and save it all:fun saveCompositeImage(composable: @Composable () - Unit, stickers: List, context: Context) {
val bitmap = captureComposableToBitmap(composable)
val finalImage = drawStickersOnBitmap(bitmap, stickers)
saveImageToGallery(finalImage, context)
}
Frequently Asked QuestionsHow do I manage the permissions to save images?It's crucial to request runtime permissions for writing to external storage. Ensure you handle these permissions gracefully in your application.Can I adjust the size/scale of the stickers before saving?Yes, you can store the size and rotation values for each sticker in your StickerModel and apply these when drawing them on the canvas.ConclusionBy following these steps, you can effectively create and save composite images with stickers in a Kotlin Compose application. This capability adds a significant interactive feature that can greatly enhance user engagement. Enjoy creating captivating image-editing applications with Kotlin and Jetpack Compose!