<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yaseer Arafat</title>
    <description>The latest articles on DEV Community by Yaseer Arafat (@yaseer_arafat).</description>
    <link>https://dev.to/yaseer_arafat</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3291441%2Fc29e9058-ec89-4ba4-8bf2-3c6056008316.jpg</url>
      <title>DEV Community: Yaseer Arafat</title>
      <link>https://dev.to/yaseer_arafat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yaseer_arafat"/>
    <language>en</language>
    <item>
      <title>💣 𝗠𝗮𝗻𝗮𝗴𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁 𝗪𝗶𝘁𝗵𝗼𝘂𝘁 𝗟𝗼𝘀𝗶𝗻𝗴 𝗬𝗼𝘂𝗿 𝗠𝗶𝗻𝗱</title>
      <dc:creator>Yaseer Arafat</dc:creator>
      <pubDate>Fri, 19 Sep 2025 19:51:32 +0000</pubDate>
      <link>https://dev.to/yaseer_arafat/-57n0</link>
      <guid>https://dev.to/yaseer_arafat/-57n0</guid>
      <description>&lt;p&gt;Technical debt isn’t just messy code—it’s the silent killer of productivity. Every shortcut, every rushed feature, every un-refactored module adds hidden interest that slows your releases, multiplies bugs, and drains developer morale.&lt;/p&gt;

&lt;p&gt;In my latest Medium deep dive, I show how to tackle debt practically and systematically, including:&lt;/p&gt;

&lt;p&gt;✅ 𝗜𝗱𝗲𝗻𝘁𝗶𝗳𝘆𝗶𝗻𝗴 &amp;amp; 𝗰𝗹𝗮𝘀𝘀𝗶𝗳𝘆𝗶𝗻𝗴 𝗱𝗲𝗯𝘁 across code, architecture, infrastructure, and processes&lt;br&gt;
✅ 𝗣𝗿𝗶𝗼𝗿𝗶𝘁𝗶𝘇𝗶𝗻𝗴 𝗵𝗶𝗴𝗵-𝗿𝗶𝘀𝗸, 𝗵𝗶𝗴𝗵-𝗶𝗺𝗽𝗮𝗰𝘁 𝗮𝗿𝗲𝗮𝘀 with a Risk vs Effort matrix&lt;br&gt;
✅ 𝗜𝗻𝗰𝗿𝗲𝗺𝗲𝗻𝘁𝗮𝗹 𝗿𝗲𝗳𝗮𝗰𝘁𝗼𝗿𝗶𝗻𝗴 𝘀𝘁𝗿𝗮𝘁𝗲𝗴𝗶𝗲𝘀 with real .NET before/after code examples&lt;br&gt;
✅ 𝗠𝗲𝘁𝗿𝗶𝗰𝘀 &amp;amp; 𝘁𝗼𝗼𝗹𝘀 𝗱𝗮𝘀𝗵𝗯𝗼𝗮𝗿𝗱𝘀 to track progress and justify improvements&lt;br&gt;
✅ 𝗖𝘂𝗹𝘁𝘂𝗿𝗮𝗹 𝘁𝗶𝗽𝘀 to integrate debt management into team workflows without slowing delivery&lt;/p&gt;

&lt;p&gt;If you’re building software in .𝗡𝗘𝗧, 𝗺𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀, 𝗰𝗹𝗼𝘂𝗱-𝗻𝗮𝘁𝗶𝘃𝗲 𝗲𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁𝘀, 𝗼𝗿 𝗮𝗴𝗶𝗹𝗲 𝘁𝗲𝗮𝗺𝘀, this article is a 𝗽𝗿𝗮𝗰𝘁𝗶𝗰𝗮𝗹 𝗴𝘂𝗶𝗱𝗲 𝘁𝗼 𝗿𝗲𝗰𝗹𝗮𝗶𝗺𝗶𝗻𝗴 𝘃𝗲𝗹𝗼𝗰𝗶𝘁𝘆, 𝗶𝗺𝗽𝗿𝗼𝘃𝗶𝗻𝗴 𝗰𝗼𝗱𝗲 𝗾𝘂𝗮𝗹𝗶𝘁𝘆, 𝗮𝗻𝗱 𝗸𝗲𝗲𝗽𝗶𝗻𝗴 𝘀𝗮𝗻𝗶𝘁𝘆 𝗶𝗻𝘁𝗮𝗰𝘁.&lt;/p&gt;

&lt;p&gt;📌 𝗥𝗲𝗮𝗱 𝘁𝗵𝗲 𝗳𝘂𝗹𝗹 𝗮𝗿𝘁𝗶𝗰𝗹𝗲 𝗼𝗻 𝗠𝗲𝗱𝗶𝘂𝗺 – &lt;a href="https://blog.yaseerarafat.com/managing-technical-debt-without-losing-your-mind-e69cb82b7de9?sk=48540dbe5287939be006f34ec546e360" rel="noopener noreferrer"&gt;💣 𝗠𝗮𝗻𝗮𝗴𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁 𝗪𝗶𝘁𝗵𝗼𝘂𝘁 𝗟𝗼𝘀𝗶𝗻𝗴 𝗬𝗼𝘂𝗿 𝗠𝗶𝗻𝗱&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>refactorit</category>
      <category>agile</category>
      <category>codequality</category>
    </item>
    <item>
      <title>🩸 6 Invisible .NET Performance Killers</title>
      <dc:creator>Yaseer Arafat</dc:creator>
      <pubDate>Sat, 30 Aug 2025 01:47:08 +0000</pubDate>
      <link>https://dev.to/yaseer_arafat/6-invisible-net-performance-killers-4367</link>
      <guid>https://dev.to/yaseer_arafat/6-invisible-net-performance-killers-4367</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhuhtfot0wp5kz4jisgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhuhtfot0wp5kz4jisgg.png" alt=" Invisible .NET Performance Killers: Framework Features That Fail at Scale" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
Even the cleanest .NET code can hide &lt;em&gt;silent performance drains&lt;/em&gt; — the kind that only show up when your app is under real load.&lt;br&gt;&lt;br&gt;
Here’s a quick reference for developers and architects to spot and fix them before they bite.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 1. LINQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Deferred execution &amp;amp; hidden allocations.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Push heavy queries to SQL, avoid LINQ‑to‑Objects for large datasets.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 2. Async/Await
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Blocking calls &amp;amp; context switches.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Never block async, use &lt;code&gt;ValueTask&lt;/code&gt;, profile the thread pool.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 3. Logging
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Synchronous, verbose logs.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Structured async logging (e.g., Serilog), separate dev vs prod logging levels.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 4. Dependency Injection
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Many scoped services slow startup.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Minimize scoped dependencies, modularize DI registrations.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 5. JSON Serialization
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Large object graphs, GC pressure.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Use streaming serialization, paginate large collections.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ 6. Entity Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; N+1 queries via lazy loading.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Fix:&lt;/strong&gt; Use &lt;code&gt;.Include()&lt;/code&gt;, batch load, and analyze EF logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛡️ Key Takeaways
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Trust abstractions, but verify their cost.
&lt;/li&gt;
&lt;li&gt;Profile, measure, and optimize early.
&lt;/li&gt;
&lt;li&gt;Guardrails: logging, queries, DI, serialization.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;💡 &lt;strong&gt;Pro Tip:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Pair this checklist with a profiler (e.g., dotTrace, PerfView) to &lt;em&gt;see&lt;/em&gt; the hidden costs in action.&lt;/p&gt;




&lt;p&gt;📄 &lt;strong&gt;Full deep‑dive + visual cheat sheet here:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://blog.yaseerarafat.com/invisible-net-performance-killers-framework-features-that-fail-at-scale-f8d196720821" rel="noopener noreferrer"&gt;Invisible .NET Performance Killers — Framework Features That Fail at Scale&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#dotnet&lt;/code&gt; &lt;code&gt;#csharp&lt;/code&gt; &lt;code&gt;#performance&lt;/code&gt; &lt;code&gt;#cleanarchitecture&lt;/code&gt; &lt;code&gt;#devtips&lt;/code&gt; &lt;code&gt;#entityframework&lt;/code&gt; &lt;code&gt;#asyncawait&lt;/code&gt; &lt;code&gt;#logging&lt;/code&gt; &lt;code&gt;#dependencyinjection&lt;/code&gt; &lt;code&gt;#jsonserialization&lt;/code&gt; &lt;code&gt;#linq&lt;/code&gt;&lt;/p&gt;

</description>
      <category>performance</category>
      <category>csharp</category>
      <category>dotnet</category>
      <category>devtips</category>
    </item>
    <item>
      <title>Mastering EF Core: High-Performance Data Access for Modern .NET Developers</title>
      <dc:creator>Yaseer Arafat</dc:creator>
      <pubDate>Thu, 14 Aug 2025 11:06:38 +0000</pubDate>
      <link>https://dev.to/yaseer_arafat/mastering-ef-core-high-performance-data-access-for-modern-net-developers-jbf</link>
      <guid>https://dev.to/yaseer_arafat/mastering-ef-core-high-performance-data-access-for-modern-net-developers-jbf</guid>
      <description>&lt;p&gt;Tired of slow queries, bloated DTOs, and unpredictable database behavior? Dive into &lt;strong&gt;&lt;em&gt;real-world EF Core mastery&lt;/em&gt;&lt;/strong&gt;. This article covers &lt;strong&gt;&lt;em&gt;query optimization&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;compiled queries&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;raw SQL safely&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;multi-tenant patterns&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;database versioning strategies&lt;/em&gt;&lt;/strong&gt;—all illustrated with practical C# examples.&lt;/p&gt;

&lt;p&gt;Whether you’re building &lt;strong&gt;&lt;em&gt;enterprise apps&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;SaaS platforms&lt;/em&gt;&lt;/strong&gt;, or &lt;strong&gt;&lt;em&gt;high-traffic APIs&lt;/em&gt;&lt;/strong&gt;, learn how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cut response times by &lt;strong&gt;70%+&lt;/strong&gt; with smart query patterns&lt;/li&gt;
&lt;li&gt;Avoid migration headaches in team environments&lt;/li&gt;
&lt;li&gt;Safely leverage raw SQL without risking SQL injection&lt;/li&gt;
&lt;li&gt;Implement multi-tenant isolation effortlessly&lt;/li&gt;
&lt;li&gt;Debug and profile EF Core like a pro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📌 &lt;strong&gt;Read the full deep dive here:&lt;/strong&gt; &lt;a href="https://medium.com/@yaseer.arafat/mastering-ef-core-a-deep-dive-into-high-performance-data-access-for-modern-net-developers-efef3e1c0c24" rel="noopener noreferrer"&gt;https://medium.com/@yaseer.arafat/mastering-ef-core-a-deep-dive-into-high-performance-data-access-for-modern-net-developers-efef3e1c0c24&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlock &lt;strong&gt;&lt;em&gt;scalable patterns&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;query optimization techniques&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;practical examples&lt;/em&gt;&lt;/strong&gt; that every mid-to-senior .NET developer should know. Don’t just write code—&lt;strong&gt;&lt;em&gt;write high-performing&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;maintainable systems&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>efcore</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>🛑 𝙎𝙩𝙞𝙡𝙡 𝙪𝙨𝙞𝙣𝙜 .𝙍𝙚𝙨𝙪𝙡𝙩 𝙞𝙣 𝙮𝙤𝙪𝙧 𝙖𝙨𝙮𝙣𝙘 𝙘𝙤𝙙𝙚?</title>
      <dc:creator>Yaseer Arafat</dc:creator>
      <pubDate>Thu, 26 Jun 2025 17:01:09 +0000</pubDate>
      <link>https://dev.to/yaseer_arafat/--1aei</link>
      <guid>https://dev.to/yaseer_arafat/--1aei</guid>
      <description>&lt;p&gt;It’s not just a bad habit — it can deadlock your app and kill your interview.&lt;/p&gt;

&lt;p&gt;👉 I just dropped a post breaking down:&lt;/p&gt;

&lt;p&gt;Why &lt;code&gt;.𝘙𝘦𝘴𝘶𝘭𝘵&lt;/code&gt; is dangerous in ASP.NET &amp;amp; UI contexts&lt;/p&gt;

&lt;p&gt;How async/await works under the hood&lt;/p&gt;

&lt;p&gt;The 𝗴𝗼𝗹𝗱𝗲𝗻 𝗿𝘂𝗹𝗲 that every production dev should follow&lt;/p&gt;

&lt;p&gt;What this tells a 𝗿𝗲𝗰𝗿𝘂𝗶𝘁𝗲𝗿 about your coding maturity&lt;/p&gt;

&lt;p&gt;📎 𝘐𝘯𝘤𝘭𝘶𝘥𝘦𝘴 𝘣𝘦𝘧𝘰𝘳𝘦/𝘢𝘧𝘵𝘦𝘳 𝘤𝘰𝘥𝘦 + 𝘢 𝘥𝘰𝘸𝘯𝘭𝘰𝘢𝘥𝘢𝘣𝘭𝘦 Gist&lt;br&gt;
🎯 Short, sharp, real-world — built for working devs&lt;/p&gt;

&lt;p&gt;🔗 𝗥𝗲𝗮𝗱 𝗶𝘁 𝗵𝗲𝗿𝗲:&lt;br&gt;
&lt;a href="https://medium.com/@yaseer.arafat/task-result-will-wreck-your-app-and-your-interview-4076197fcca1" rel="noopener noreferrer"&gt;https://medium.com/@yaseer.arafat/task-result-will-wreck-your-app-and-your-interview-4076197fcca1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👇 What’s your team’s policy on .𝘙𝘦𝘴𝘶𝘭𝘵? Seen it cause issues?&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>asyncawait</category>
      <category>architecture</category>
    </item>
    <item>
      <title>🧱 𝗙𝗿𝗼𝗺 𝗠𝗼𝗻𝗼𝗹𝗶𝘁𝗵 𝘁𝗼 𝗠𝗼𝗱𝘂𝗹𝗮𝗿 — 𝗘𝘅𝘁𝗲𝗻𝘀𝗶𝗯𝗶𝗹𝗶𝘁𝘆 𝗶𝗻 .𝗡𝗘𝗧 𝟭𝟬</title>
      <dc:creator>Yaseer Arafat</dc:creator>
      <pubDate>Tue, 24 Jun 2025 17:38:13 +0000</pubDate>
      <link>https://dev.to/yaseer_arafat/--16on</link>
      <guid>https://dev.to/yaseer_arafat/--16on</guid>
      <description>&lt;p&gt;Still chaining &lt;code&gt;.AddXyz()&lt;/code&gt; in a bloated Program.cs?&lt;/p&gt;

&lt;p&gt;That startup code you’re proud of? It won’t scale when your CTO wants white-label features, your PM adds a regional billing rule, or a client demands custom auth.&lt;/p&gt;

&lt;p&gt;We’ve been building apps — not platforms.&lt;/p&gt;

&lt;p&gt;.NET 10 quietly introduces AppHost and AppBuilder — a clean path to plugin-ready architecture:&lt;br&gt;
✅ Runtime feature loading&lt;br&gt;
✅ Per-tenant customization&lt;br&gt;
✅ Versioned, testable modules&lt;/p&gt;

&lt;p&gt;No more rigid startup logic.&lt;br&gt;
No more branching monoliths.&lt;br&gt;
Just modular systems that evolve without fear.&lt;/p&gt;

&lt;p&gt;🧠 I break it all down in my latest article:&lt;br&gt;
&lt;a href="https://medium.com/@yaseer.arafat/from-monolith-to-modular-architecting-for-extensibility-in-net-10-473c2a375970" rel="noopener noreferrer"&gt;From Monolith to Modular: Architecting for Extensibility in .NET 10&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>cleanarchitecture</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
