<?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: Erwin Wilson Ceniza2</title>
    <description>The latest articles on DEV Community by Erwin Wilson Ceniza2 (@erwin_wilsonceniza2_adf9).</description>
    <link>https://dev.to/erwin_wilsonceniza2_adf9</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4005978%2Fc91c89c4-17e1-4452-a555-bfe9a4d50382.jpg</url>
      <title>DEV Community: Erwin Wilson Ceniza2</title>
      <link>https://dev.to/erwin_wilsonceniza2_adf9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erwin_wilsonceniza2_adf9"/>
    <language>en</language>
    <item>
      <title>Git Guide with Real-World Examples, Workflows, and Visuals</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Sun, 12 Jul 2026 11:50:45 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/git-guide-with-real-world-examples-workflows-and-visuals-49mc</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/git-guide-with-real-world-examples-workflows-and-visuals-49mc</guid>
      <description>&lt;p&gt;Hey fellow devs, ever feel like you're just button-mashing with Git instead of truly understanding what's going on under the hood?&lt;/p&gt;

&lt;p&gt;This article totally flips that script. It covers Git not just as version control, but as a powerful, distributed graph database. It walks through everything from your first &lt;code&gt;git init&lt;/code&gt; to confidently handling complex merges and large-team workflows, complete with visuals.&lt;/p&gt;

&lt;p&gt;Here are some highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built by Linus Torvalds in 2005 for thousands of contributors.&lt;/li&gt;
&lt;li&gt;Emphasizes Git's "four-area architecture": Working Directory, Staging Area (Index), Local Repository, and Remote.&lt;/li&gt;
&lt;li&gt;Core design principles: every clone is a full backup, everything is local, and branches are cheap.&lt;/li&gt;
&lt;li&gt;Cryptographic integrity ensures every object is hashed (originally SHA-1, migrating to SHA-256).&lt;/li&gt;
&lt;li&gt;Uses interactive code-morph transformations and visuals, like Mermaid diagrams, to explain complex concepts.&lt;/li&gt;
&lt;li&gt;Dives into advanced topics like rebasing, troubleshooting, and real-world team workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding these core concepts changes Git from a chore into a precision tool you wield with intention.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/git-guide-with-real-world-examples-workflows-and-visuals" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/git-guide-with-real-world-examples-workflows-and-visuals&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>versioncontrol</category>
      <category>devops</category>
      <category>github</category>
    </item>
    <item>
      <title>From Chaos to Clarity: SOLID, CQRS and Clean Architecture Explained</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Sat, 11 Jul 2026 05:15:46 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/from-chaos-to-clarity-solid-cqrs-and-clean-architecture-explained-218a</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/from-chaos-to-clarity-solid-cqrs-and-clean-architecture-explained-218a</guid>
      <description>&lt;p&gt;Ever found yourself staring at a monstrous controller, thinking 'how did we even get here?' Yeah, been there. This article dives deep into exactly that architectural chaos, showing how SOLID principles, CQRS, and Clean Architecture can rescue your codebase from becoming an unmaintainable mess.&lt;/p&gt;

&lt;p&gt;It walks through the core concepts, providing a roadmap for turning complex, tightly coupled systems into clear, maintainable solutions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlights the perils of a controller bloated with "15 more dependencies" and "300 lines of spaghetti" business logic.&lt;/li&gt;
&lt;li&gt;Breaks down each of the five SOLID principles (Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion) with practical examples.&lt;/li&gt;
&lt;li&gt;Explains CQRS by clearly distinguishing Commands (for state changes) from Queries (for data retrieval).&lt;/li&gt;
&lt;li&gt;Details Clean Architecture's layered approach, separating core business rules from external concerns like databases or UIs.&lt;/li&gt;
&lt;li&gt;Illustrates these concepts with a complete e-commerce implementation example.&lt;/li&gt;
&lt;li&gt;Touches on effective testing strategies and common architectural pitfalls to avoid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ultimately, it's about building scalable, maintainable systems that don't make you want to rewrite everything from scratch every two years.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/from-chaos-to-clarity-solid-cqrs-and-clean-architecture-explained" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/from-chaos-to-clarity-solid-cqrs-and-clean-architecture-explained&lt;/a&gt;&lt;/p&gt;

</description>
      <category>c</category>
      <category>solidprinciples</category>
      <category>cqrs</category>
      <category>cleanarchitecture</category>
    </item>
    <item>
      <title>Code Galaxy: Turning Your Codebase Into a Freaking Solar System</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Thu, 09 Jul 2026 15:10:52 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/code-galaxy-turning-your-codebase-into-a-freaking-solar-system-iid</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/code-galaxy-turning-your-codebase-into-a-freaking-solar-system-iid</guid>
      <description>&lt;p&gt;Ever opened your codebase and just... felt that familiar dread? All those files, folders, and then you try a dependency graph tool and it promptly crashes your browser tab with 8 gigs of RAM eaten? Yeah, been there.&lt;/p&gt;

&lt;p&gt;Well, this article totally flips that on its head. It walks through building "Code Galaxy," a ridiculously cool way to visualize your codebase, turning it into a freaking solar system you'd actually want to explore.&lt;/p&gt;

&lt;p&gt;Here's why it's different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It re-imagines your &lt;code&gt;App.tsx&lt;/code&gt; as a glowing blue star at the center of the system.&lt;/li&gt;
&lt;li&gt;Major modules like &lt;code&gt;AuthModule&lt;/code&gt; become Jupiter-sized planets, color-coded for their "community" (e.g., rusty red for Mars).&lt;/li&gt;
&lt;li&gt;Individual functions like &lt;code&gt;login()&lt;/code&gt; or &lt;code&gt;hashPassword()&lt;/code&gt; are represented as tiny orbiting moons.&lt;/li&gt;
&lt;li&gt;Dead code is visually rendered as distant, ominous black holes.&lt;/li&gt;
&lt;li&gt;The goal is "visual storytelling" and fostering an "emotional connection to code," moving beyond static 2D diagrams.&lt;/li&gt;
&lt;li&gt;It prioritizes "smooth 60fps exploration" to avoid the typical lag and crashes of traditional tools.&lt;/li&gt;
&lt;li&gt;It's pitched as an "over-engineered, deeply entertaining way" to understand architecture, far more engaging than "dots and lines."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional code graphs are often useless blobs; this makes architecture discovery genuinely fun and insightful.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/code-galaxy-turning-your-codebase-into-a-freaking-solar-system" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/code-galaxy-turning-your-codebase-into-a-freaking-solar-system&lt;/a&gt;&lt;/p&gt;

</description>
      <category>threejs</category>
      <category>webgl</category>
      <category>graphvisualization</category>
      <category>react</category>
    </item>
    <item>
      <title>How to Talk to Your Database Using AI: A Practical Implementation Guide</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Mon, 06 Jul 2026 06:55:51 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/how-to-talk-to-your-database-using-ai-a-practical-implementation-guide-4f27</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/how-to-talk-to-your-database-using-ai-a-practical-implementation-guide-4f27</guid>
      <description>&lt;p&gt;Let’s be honest—writing raw SQL queries to answer basic business questions for non-technical stakeholders gets old fast. I recently came across a great guide on building a reliable Text-to-SQL agent that actually works without nuking your production database.&lt;/p&gt;

&lt;p&gt;It walks through building a production-ready AI database assistant that translates natural language into secure, optimized SQL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilizing &lt;strong&gt;GPT-4o&lt;/strong&gt; and &lt;strong&gt;Claude 3.5 Sonnet&lt;/strong&gt; as the backbone for generating complex, multi-table joins.&lt;/li&gt;
&lt;li&gt;Implementing &lt;strong&gt;LangChain&lt;/strong&gt; and &lt;strong&gt;ChromaDB&lt;/strong&gt; to dynamically pull the most relevant schema definitions based on the user's question.&lt;/li&gt;
&lt;li&gt;Schema pruning techniques to keep context window usage under &lt;strong&gt;4k tokens&lt;/strong&gt; for faster response times and lower API costs.&lt;/li&gt;
&lt;li&gt;Enforcing strict security protocols, including &lt;strong&gt;read-only connection strings&lt;/strong&gt; and a &lt;strong&gt;5-second execution timeout&lt;/strong&gt; limit.&lt;/li&gt;
&lt;li&gt;Implementing a regex-based validation layer to block destructive commands like &lt;code&gt;DROP&lt;/code&gt; or &lt;code&gt;DELETE&lt;/code&gt; before execution.&lt;/li&gt;
&lt;li&gt;Boosting query accuracy from 65% to over &lt;strong&gt;90%&lt;/strong&gt; using dynamic few-shot prompt templates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of the day, LLMs are incredibly smart, but never trust an AI with write access to your database without a rock-solid sandbox in place.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/how-to-talk-to-your-database-using-ai" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/how-to-talk-to-your-database-using-ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>naturallanguageprocessing</category>
      <category>sql</category>
      <category>gemini</category>
    </item>
    <item>
      <title>The Laws of Diminishing Returns in AI: When Bigger Is No Longer Better</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Fri, 03 Jul 2026 22:05:55 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/the-laws-of-diminishing-returns-in-ai-when-bigger-is-no-longer-better-1nk1</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/the-laws-of-diminishing-returns-in-ai-when-bigger-is-no-longer-better-1nk1</guid>
      <description>&lt;p&gt;Let’s face it—we've been obsessed with "bigger is better" in AI for years, but throwing more GPUs at the problem is starting to hit a major wall. I've been tracking how scaling laws are flattening, and it's clear the era of just doubling parameters for easy performance gains is over. &lt;/p&gt;

&lt;p&gt;This article walks through the shift from brute-force compute scaling to efficient, domain-specific AI architectures.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The shift from the Scaling Era (2017–2024) to the Diminishing Era (2025+) where returns on pure compute are rapidly eroding.&lt;/li&gt;
&lt;li&gt;Why scaling a model's compute budget by 3.6x annually now only yields fleeting, marginal performance advantages.&lt;/li&gt;
&lt;li&gt;The trajectory shift from linear cost and super-linear gains (2017–2022) to hyper-exponential costs and sub-linear plateaus (2025+).&lt;/li&gt;
&lt;li&gt;The rise of "meek" models that allow small teams with a $1M budget to rival tech giants playing with $1B+ budgets.&lt;/li&gt;
&lt;li&gt;How fine-tuning specialized data on efficient architectures levels the playing field against raw 500B+ parameter models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real takeaway is that winning in AI is no longer about who has the biggest GPU cluster, but who builds the smartest, most efficient pipelines.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/the-laws-of-diminishing-returns-in-ai" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/the-laws-of-diminishing-returns-in-ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>diminishingreturns</category>
      <category>scalinglaws</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>GraphQL Query &amp; Mutation Architecture, A Production Deep Dive</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Thu, 02 Jul 2026 00:35:23 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/graphql-query-mutation-architecture-a-production-deep-dive-4g18</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/graphql-query-mutation-architecture-a-production-deep-dive-4g18</guid>
      <description>&lt;p&gt;I’m sharing what I learned building a production GraphQL API: how to design query and mutation architecture that scales without losing consistency or clarity. This article walks through a code-first HotChocolate implementation using BatchDataLoader, CQRS, and the transactional outbox pattern, with real examples from an EMR system serving three portals via a single schema.&lt;/p&gt;

&lt;p&gt;Key takeaways:&lt;br&gt;
— How to structure GraphQL queries and mutations cleanly in a .NET code-first approach&lt;br&gt;
— Using BatchDataLoader to prevent N+1 problems while keeping resolvers maintainable&lt;br&gt;
— Applying CQRS to separate read and write concerns without complicating the API layer&lt;br&gt;
— Pairing writes with a transactional outbox pattern for reliable, production-grade event delivery&lt;/p&gt;

&lt;p&gt;Read the full article here: &lt;a href="https://erwinwilsonceniza.qzz.io/blogs/graphql-query-mutation-architecture-a-production-deep-dive" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/graphql-query-mutation-architecture-a-production-deep-dive&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  GraphQL #DotNet #CSharp #HotChocolate #CQRS #OutboxPattern #DesignPatterns #EnterpriseArchitecture #DotNetConf #GraphQLAPI
&lt;/h1&gt;

</description>
      <category>api</category>
      <category>architecture</category>
      <category>dotnet</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Automating Dev.to Cross-Posts with n8n: From Manual to Hands-Free in 10 Minutes</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 23:20:25 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/automating-devto-cross-posts-with-n8n-from-manual-to-hands-free-in-10-minutes-4f6</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/automating-devto-cross-posts-with-n8n-from-manual-to-hands-free-in-10-minutes-4f6</guid>
      <description>&lt;p&gt;I finally got tired of manually copy-pasting my blog posts over to Dev.to. It’s one of those chores that either gets forgotten or ends up with broken formatting and missing canonical links, so I decided to automate the whole thing.&lt;/p&gt;

&lt;p&gt;The article walks through building a self-hosted automation pipeline using n8n that pulls content from a personal portfolio and syndicates it perfectly every time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configures a 5-minute polling interval via a Schedule Trigger to check for new content.&lt;/li&gt;
&lt;li&gt;Uses a Function node to isolate exactly one blog post per run to prevent bulk-processing errors.&lt;/li&gt;
&lt;li&gt;Integrates a custom AI summary step using Gemini to transform long-form content into punchy, Dev.to-friendly versions.&lt;/li&gt;
&lt;li&gt;Navigates the Dev.to API rate limit of 30 articles per 30 seconds using a mandatory 30s Wait node.&lt;/li&gt;
&lt;li&gt;Automatically handles SEO requirements by injecting the original &lt;code&gt;canonical_url&lt;/code&gt; into the API payload.&lt;/li&gt;
&lt;li&gt;Secures the workflow using Bearer auth to fetch unposted items from a private &lt;code&gt;/unposted-devto&lt;/code&gt; endpoint.&lt;/li&gt;
&lt;li&gt;Closes the loop by updating your internal database via a &lt;code&gt;/devto-mark&lt;/code&gt; endpoint once the post is live.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automating your distribution is great, but if you don't build in rate-limit safety and canonical links from day one, you’re just creating a technical debt nightmare for your SEO.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/automating-devto-cross-posts-with-n8n-from-manual-to-hands-free-in-10-minutes" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/automating-devto-cross-posts-with-n8n-from-manual-to-hands-free-in-10-minutes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>devto</category>
      <category>crosspost</category>
    </item>
    <item>
      <title>Building a Binary MLM System: From Tree Algorithms to Transactional Ledgers</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 23:15:15 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/building-a-binary-mlm-system-from-tree-algorithms-to-transactional-ledgers-58bo</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/building-a-binary-mlm-system-from-tree-algorithms-to-transactional-ledgers-58bo</guid>
      <description>&lt;p&gt;Ever had to build a system where every single user action triggers a recursive recalculation across a massive, branching tree? I recently went down the rabbit hole of Multi-Level Marketing (MLM) architecture, and it is a lot more complex than just drawing circles on a whiteboard.&lt;/p&gt;

&lt;p&gt;The article walks through the heavy lifting required to build a binary commission engine from scratch, focusing on the intersection of tree data structures and high-integrity financial ledgers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementation of the Binary Tree Algorithm to manage strict left and right "legs" for every distributor.&lt;/li&gt;
&lt;li&gt;Real-time Point Volume (PV) propagation that rolls up sales data from child nodes to the root.&lt;/li&gt;
&lt;li&gt;Using a Double-Entry Transactional Ledger to ensure commission payouts are immutable and audit-ready.&lt;/li&gt;
&lt;li&gt;Logic for Balancing Thresholds (like the common 1:1 ratio) to trigger automated payouts once specific PV targets are met.&lt;/li&gt;
&lt;li&gt;Optimizing database reads using the Nested Set Model to handle deep tree traversals without hitting recursion limits.&lt;/li&gt;
&lt;li&gt;Utilizing Idempotency Keys in the commission engine to prevent double-counting during high-concurrency event processing.&lt;/li&gt;
&lt;li&gt;Solving the "Flash-out" problem where excess volume is cleared based on daily or weekly earning caps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The real challenge isn't just the tree traversal; it’s keeping the ledger perfectly balanced when thousands of nodes are triggering commission calculations at the same time.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/building-a-binary-mlm-system-from-tree-algorithms-to-transactional-ledgers" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/building-a-binary-mlm-system-from-tree-algorithms-to-transactional-ledgers&lt;/a&gt;&lt;/p&gt;

</description>
      <category>multilevelmarketing</category>
      <category>binarytree</category>
      <category>commissionengine</category>
      <category>distributedsystems</category>
    </item>
    <item>
      <title>The Functional Workflow of a Cold Storage WMS: From Supplier to Storage</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 23:10:25 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/the-functional-workflow-of-a-cold-storage-wms-from-supplier-to-storage-4gpa</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/the-functional-workflow-of-a-cold-storage-wms-from-supplier-to-storage-4gpa</guid>
      <description>&lt;p&gt;Ever had a batch of frozen seafood turn into a soggy mess because someone left the truck in the sun too long? It’s a nightmare. I’ve been looking into how a Warehouse Management System (WMS) actually handles these high-stakes cold chain logistics beyond just simple CRUD operations.&lt;/p&gt;

&lt;p&gt;This article walks through the end-to-end functional workflow of a cold storage WMS designed for 3PL providers. It covers the logic required to keep products from spoiling before they even hit the racks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing specific temperature zones including Chilled, Frozen, Deep Frozen, and Ultra-Low Temperature (ULT) storage.&lt;/li&gt;
&lt;li&gt;Handling core temperature thresholds, such as flagging items that arrive at -8°C when the required storage temp is -18°C.&lt;/li&gt;
&lt;li&gt;Appointment scheduling logic that reserves specific dock time slots to minimize exposure to ambient air.&lt;/li&gt;
&lt;li&gt;Yard Management systems (YMS) that track truck arrival times and assign specific yard spots to prevent "warm" delays.&lt;/li&gt;
&lt;li&gt;Pallet-level batch tracking that links material data to specific receiving scans during the unloading process.&lt;/li&gt;
&lt;li&gt;System-driven putaway algorithms that automatically suggest locations based on the product’s specific temperature zone and batch requirements.&lt;/li&gt;
&lt;li&gt;Integration between the physical weight scales and the WMS to ensure real-time inventory accuracy during receiving.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of the day, a WMS isn't just about moving boxes; it's about making sure your inventory doesn't literally melt away while sitting in the yard.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/the-functional-workflow-of-a-cold-storage-wms-from-supplier-to-storage" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/the-functional-workflow-of-a-cold-storage-wms-from-supplier-to-storage&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wms</category>
      <category>coldchain</category>
      <category>warehousemanagement</category>
      <category>3pl</category>
    </item>
    <item>
      <title>Engineering a Cross-Platform Face Recognition Pipeline with Anti-Spoofing</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 22:55:14 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/engineering-a-cross-platform-face-recognition-pipeline-with-anti-spoofing-2457</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/engineering-a-cross-platform-face-recognition-pipeline-with-anti-spoofing-2457</guid>
      <description>&lt;p&gt;I recently went down a rabbit hole after hearing how a major bank’s ATM face scanners were defeated by a literal piece of printer paper. It’s a classic example of what happens when we build for the "happy path" instead of the real world. If you’re building biometrics for something like employee clock-ins or secure access, you can’t just rely on a basic detection demo—you need a pipeline that actually knows the difference between a human and a photo.&lt;/p&gt;

&lt;p&gt;This article walks through building a cross-platform, offline-first face recognition system that handles everything from the initial camera frame to the final identity match.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs lightweight AI models locally via ONNX, making it fast enough for mobile devices and tablets.&lt;/li&gt;
&lt;li&gt;Filters out noise by requiring a minimum detection confidence score of 0.7.&lt;/li&gt;
&lt;li&gt;Cleans up overlapping boxes using Non-Maximum Suppression (NMS) at a 0.4 IoU threshold.&lt;/li&gt;
&lt;li&gt;Implements a dedicated anti-spoofing layer using a 112x112 face crop and a 2-class softmax model.&lt;/li&gt;
&lt;li&gt;Requires a spoof score of 0.1 or lower to ensure the subject is a live person, not a printout or screen.&lt;/li&gt;
&lt;li&gt;Generates 128-dimensional face signatures (embeddings) using FaceNet for high-precision matching.&lt;/li&gt;
&lt;li&gt;Uses HNSW indexing to search through thousands of stored faces in under 1ms.&lt;/li&gt;
&lt;li&gt;Built with .NET MAUI to share the same processing logic across Android, Windows, and cloud environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hard truth is that if your biometric system can be tricked by a $20 desk printer, your entire security model is just theater.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/engineering-a-cross-platform-face-recognition-pipeline-with-anti-spoofing" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/engineering-a-cross-platform-face-recognition-pipeline-with-anti-spoofing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>facerecognition</category>
      <category>computervision</category>
      <category>onnx</category>
      <category>antispoofing</category>
    </item>
    <item>
      <title>Designing and Debugging CQRS Mediator Pattern Applications</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 22:50:15 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/designing-and-debugging-cqrs-mediator-pattern-applications-cic</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/designing-and-debugging-cqrs-mediator-pattern-applications-cic</guid>
      <description>&lt;p&gt;I’ve definitely spent too many late nights hunting bugs in 2,000-line service classes where a "quick fix" to a GET request somehow managed to break the entire database write logic. It’s a nightmare we’ve all seen as projects scale and the "fat service" layer starts to rot.&lt;/p&gt;

&lt;p&gt;This article walks through moving away from that "monolithic service hell" by implementing CQRS and the Mediator pattern in .NET 9. It uses the CloudPallet WMS (a production warehouse system) as a case study for keeping enterprise codebases modular and actually debuggable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separation of concerns across 80+ unique command files and 50+ query files, each with a single, isolated handler.&lt;/li&gt;
&lt;li&gt;Swapping out bloated &lt;code&gt;WarehouseService&lt;/code&gt; implementations for MediatR handlers to eliminate cascading regressions.&lt;/li&gt;
&lt;li&gt;Leveraging .NET 9 and ASP.NET Core to build read-optimized projections that stay completely decoupled from domain entities.&lt;/li&gt;
&lt;li&gt;Enforcing strict return types like &lt;code&gt;Unit&lt;/code&gt;, &lt;code&gt;Guid&lt;/code&gt;, or specific DTOs to ensure side-effect purity in every operation.&lt;/li&gt;
&lt;li&gt;Designing denormalized read models for performance while keeping the write-side (Commands) strictly normalized.&lt;/li&gt;
&lt;li&gt;Streamlining the debugging workflow within Visual Studio to navigate the decoupled architecture without getting lost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of the day, the biggest win isn't just the clean architecture—it’s finally being able to open a PR without worrying about breaking a feature three folders away.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/designing-and-debugging-cqrs-mediator-pattern-applications" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/designing-and-debugging-cqrs-mediator-pattern-applications&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cqrs</category>
      <category>mediatr</category>
      <category>ddd</category>
      <category>net9</category>
    </item>
    <item>
      <title>Monolith vs Microservices: A Real-World Architectural Autopsy</title>
      <dc:creator>Erwin Wilson Ceniza2</dc:creator>
      <pubDate>Tue, 30 Jun 2026 22:48:25 +0000</pubDate>
      <link>https://dev.to/erwin_wilsonceniza2_adf9/monolith-vs-microservices-a-real-world-architectural-autopsy-4d5k</link>
      <guid>https://dev.to/erwin_wilsonceniza2_adf9/monolith-vs-microservices-a-real-world-architectural-autopsy-4d5k</guid>
      <description>&lt;p&gt;I’ve spent way too many late nights arguing about whether a "legacy" monolith is actually the problem or if we’re just chasing shiny objects. It feels like the industry is finally moving past the "microservices for everything" hype and getting back to strict pragmatism regarding what actually makes sense for the budget and the team.&lt;/p&gt;

&lt;p&gt;This article walks through a forensic comparison between two real-world production codebases—SmashElite and Drobble—to show exactly how they stack up when things get complicated.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SmashElite runs as a streamlined monolith using Express.js and TypeScript, managing 18 different route modules (like shop, courts, and forums) in a single Node.js process.&lt;/li&gt;
&lt;li&gt;The monolith setup utilizes React 19 and Prisma ORM, bundling the entire stack into one Docker container for dead-simple deployments.&lt;/li&gt;
&lt;li&gt;Drobble takes the distributed route with 8 independent .NET 9.0 microservices, each assigned to dedicated ports like 5297 for UserManagement and 5059 for Orders.&lt;/li&gt;
&lt;li&gt;It implements a database-per-service pattern, mixing PostgreSQL, MongoDB, and Elasticsearch based on the specific needs of each service.&lt;/li&gt;
&lt;li&gt;Event-driven communication is handled via RabbitMQ and MassTransit, adding significant async complexity compared to the monolith’s direct function calls.&lt;/li&gt;
&lt;li&gt;The operational footprint jumps from a single docker-compose service in the monolith to over 13 total containers for the microservices infrastructure and API gateway.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest takeaway is that while microservices solve organizational scaling issues, they'll absolutely murder your productivity if you're a small team just trying to ship features.&lt;/p&gt;

&lt;p&gt;Read the full article here:&lt;br&gt;
&lt;a href="https://erwinwilsonceniza.qzz.io/blogs/monolith-vs-microservices-real-world-autopsy" rel="noopener noreferrer"&gt;https://erwinwilsonceniza.qzz.io/blogs/monolith-vs-microservices-real-world-autopsy&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>monolith</category>
      <category>microservices</category>
      <category>engineering</category>
    </item>
  </channel>
</rss>
