<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code Quality on Coderrob</title><link>https://coderrob.com/tags/code-quality/</link><description>Recent content in Code Quality on Coderrob</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 10 Apr 2026 12:00:00 -0500</lastBuildDate><atom:link href="https://coderrob.com/tags/code-quality/index.xml" rel="self" type="application/rss+xml"/><item><title>Fast Is Slow When You're Neck Deep in AI Slop</title><link>https://coderrob.com/posts/fast-is-slow-when-youre-neck-deep-in-slop/</link><pubDate>Fri, 10 Apr 2026 12:00:00 -0500</pubDate><guid>https://coderrob.com/posts/fast-is-slow-when-youre-neck-deep-in-slop/</guid><description>&lt;h2 id="the-pattern-nobody-wants-to-talk-about"&gt;The Pattern Nobody Wants to Talk About&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve seen a distinct pattern where AI &lt;em&gt;slows down&lt;/em&gt; software development.&lt;/p&gt;
&lt;p&gt;I know. Heresy. But hear me out.&lt;/p&gt;
&lt;p&gt;Agents are fast, but in the old saying kind of way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fast is slow, and slow is fast.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;People push back on this. &lt;em&gt;&amp;ldquo;Humans are faster,&amp;rdquo;&lt;/em&gt; they say.&lt;/p&gt;
&lt;p&gt;Honestly? I doubt that&amp;rsquo;s true either.&lt;/p&gt;
&lt;p&gt;What I &lt;em&gt;believe&lt;/em&gt; is that most people are single-threaded. One brain, one task, one context.&lt;/p&gt;</description></item><item><title>Trust but Verify: The Math of Rigorous Software Development</title><link>https://coderrob.com/posts/trust-but-verify-the-math-of-rigorous-software-development/</link><pubDate>Fri, 10 Apr 2026 10:00:00 -0500</pubDate><guid>https://coderrob.com/posts/trust-but-verify-the-math-of-rigorous-software-development/</guid><description>&lt;h2 id="between-satire-and-ridicule"&gt;Between Satire and Ridicule&lt;/h2&gt;
&lt;p&gt;It started, as these things often do, with a comparison nobody asked for.&lt;/p&gt;
&lt;p&gt;I made a post saying that, with AI-assisted workflows, I can contribute anywhere from &lt;strong&gt;20 to 300,000 lines of change in a day&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;That number was not meant to say, &amp;ldquo;Look at me, I make ALL the tokens go brrrrrrrt&amp;hellip;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It was me counting additions plus deletions across real work: feature creation, refactoring, documentation, automation, test updates, generated assets, project scaffolding, cleanup, and the supporting files needed to make the work sustainable.&lt;/p&gt;</description></item><item><title>Announcing ESLint Zero-Tolerance AI Anti-Slop Rules</title><link>https://coderrob.com/posts/announcing-eslint-zero-tolerance-ai-anti-slop-rules/</link><pubDate>Tue, 10 Feb 2026 10:00:00 -0600</pubDate><guid>https://coderrob.com/posts/announcing-eslint-zero-tolerance-ai-anti-slop-rules/</guid><description>&lt;p&gt;AI-assisted development has a trust problem.&lt;/p&gt;
&lt;p&gt;Generated code can look polished, type-safe, and reviewable while still smuggling in shortcuts that quietly erode a codebase over time. The faster teams move with agents, the more those shortcuts compound.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ESLint Zero-Tolerance&lt;/strong&gt; is my attempt to put hard boundaries around those patterns in TypeScript projects: not as abstract guidance, but as enforceable rules and presets that make low-trust code harder to ship.&lt;/p&gt;
&lt;h2 id="the-announcement"&gt;The Announcement&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve published the &lt;strong&gt;ESLint Zero-Tolerance AI anti-slop rules&lt;/strong&gt; here:&lt;/p&gt;</description></item><item><title>Breaking Up the Big Bottom Library: Streamlining Your Code for Long-Term Health</title><link>https://coderrob.com/posts/breaking-up-the-big-bottom-library-streamlining-your-code-for-long-term-health/</link><pubDate>Wed, 11 Sep 2024 21:58:05 -0500</pubDate><guid>https://coderrob.com/posts/breaking-up-the-big-bottom-library-streamlining-your-code-for-long-term-health/</guid><description>&lt;p&gt;Over time, code libraries have a habit of expanding like that one “utility” drawer in your kitchen. At first, it’s helpful—everything in its right place, ready for use. But before long, that drawer becomes a catch-all for every stray function, random helper, and one-off module you couldn’t quite categorize. Eventually, it’s too bloated to find anything efficiently.&lt;/p&gt;
&lt;p&gt;When that happens, it’s time to consider not just a cleanup, but a deeper restructuring. Because left unchecked, your code library could evolve into something far more dangerous—a monolith.&lt;/p&gt;</description></item><item><title>Clean Up Your Conditionals: Refactoring If-Else with Switch Statements</title><link>https://coderrob.com/posts/clean-up-your-conditionals-by-refactoring-if-else-with-switch-statements/</link><pubDate>Sun, 18 Aug 2024 13:17:48 -0500</pubDate><guid>https://coderrob.com/posts/clean-up-your-conditionals-by-refactoring-if-else-with-switch-statements/</guid><description>&lt;p&gt;If you&amp;rsquo;re like me, you&amp;rsquo;ve probably dealt with your fair share of long, messy deeply nested &lt;code&gt;if-else&lt;/code&gt; chains. They can get out of hand pretty fast, right?&lt;/p&gt;
&lt;p&gt;One minute you&amp;rsquo;re making a simple decision, the next you&amp;rsquo;re wading through a maze of conditions and deeply nested logic. But guess what?&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a trick that can help clean this up: using &lt;code&gt;switch&lt;/code&gt; and &lt;code&gt;switch(true)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In this post, we&amp;rsquo;ll take a closer look at how you can use &lt;code&gt;switch&lt;/code&gt; statements to break free from the chaos and make your code more readable, more maintainable, and without overloading to your brain juggling the contextual outcomes of each branching statement.&lt;/p&gt;</description></item></channel></rss>