<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[CodeValid: CodeValid Blogs]]></title><description><![CDATA[We frequently share how teams optimize software development, informed by real customer experiences, lessons from the field, and what we learn building alongside developers.]]></description><link>https://codevalid.substack.com/s/codevalid-blogs</link><image><url>https://substackcdn.com/image/fetch/$s_!k709!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30f70a3b-5003-41c7-8846-8fbb7c95d123_1140x1140.png</url><title>CodeValid: CodeValid Blogs</title><link>https://codevalid.substack.com/s/codevalid-blogs</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Jul 2026 06:55:36 GMT</lastBuildDate><atom:link href="https://codevalid.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Code Valid]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[codevalid@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[codevalid@substack.com]]></itunes:email><itunes:name><![CDATA[CodeValid]]></itunes:name></itunes:owner><itunes:author><![CDATA[CodeValid]]></itunes:author><googleplay:owner><![CDATA[codevalid@substack.com]]></googleplay:owner><googleplay:email><![CDATA[codevalid@substack.com]]></googleplay:email><googleplay:author><![CDATA[CodeValid]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Stop Guessing Which Model Should Power Your AI Agent]]></title><description><![CDATA[We built a way to answer the question with data]]></description><link>https://codevalid.substack.com/p/stop-guessing-which-model-should</link><guid isPermaLink="false">https://codevalid.substack.com/p/stop-guessing-which-model-should</guid><dc:creator><![CDATA[Karthik]]></dc:creator><pubDate>Sun, 19 Jul 2026 07:54:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k709!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30f70a3b-5003-41c7-8846-8fbb7c95d123_1140x1140.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We built a way to answer the question with data &#8212; in minutes, not sprints. Here&#8217;s the 90-second demo.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;c50924f1-91f8-422f-b425-e896e8bbb2c3&quot;,&quot;duration&quot;:null}"></div><div><hr></div><h1>The most expensive default in AI engineering</h1><p>If you&#8217;re building AI agents, you&#8217;ve faced this decision: which model actually powers the thing? GPT? Gemini? Claude? Mistral?</p><p>Here&#8217;s what usually happens. Nobody has time to test properly, so the team picks the most powerful model available. It works, everyone moves on &#8212; and the bill quietly grows. The frontier model becomes the default not because the use case needs it, but because nobody could <em>prove</em> it didn&#8217;t.</p><p>That proof is exactly what&#8217;s been missing. Vendor benchmarks tell you how models perform on someone else&#8217;s tasks. What you need to know is how they perform on <em>yours</em> &#8212; your requirements, your edge cases.</p><h2>What we built</h2><p>CodeValid turns your business requirements into a test suite for your agent, automatically:</p><ol><li><p><strong>Connect your Git repo</strong> &#8212; the one with your agent code. If your requirements live in a project management tool, connect that too for full business context.</p></li><li><p><strong>CodeValid takes it from there</strong> &#8212; it sets up the test infrastructure, resolves dependencies, and generates test cases directly from your requirements. No test code written by hand. Every requirement becomes a verifiable check.</p></li><li><p><strong>Pick your models and run</strong> &#8212; select any mix, small to frontier, and run the identical suite against all of them. Adding a new model is one click.</p></li></ol><h2>What happened when we tested a real agent</h2><p>Take a look at our case study : <a href="https://codevalid.io/case_study/langchain-text-to-sql/">Langchain text to sql agent evaluation</a></p><h2>CodeValid AI agent testing is live now. </h2><p>If you're building agents and want to know which model your use case actually needs? I'd love to show you, DM me or reach out at karthikh@codevalid.io</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[If AI Can Build All the Software, Why Does CodeValid Exist?]]></title><description><![CDATA[I get this question a lot.]]></description><link>https://codevalid.substack.com/p/if-ai-can-build-all-the-software</link><guid isPermaLink="false">https://codevalid.substack.com/p/if-ai-can-build-all-the-software</guid><dc:creator><![CDATA[Karthik]]></dc:creator><pubDate>Tue, 14 Jul 2026 16:29:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k709!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30f70a3b-5003-41c7-8846-8fbb7c95d123_1140x1140.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I get this question a lot. Claude, Cursor, Codex, they can build software, run it in the browser, ship it. Implementation is getting 100X faster. So why CodeValid?</p><p>Here&#8217;s the thing: we still believe in software developers. We still believe in teams.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Yes, teams will get smaller. Radically smaller. But you cannot get rid of them, not for complex software. You still need <strong>someone who knows the </strong><em><strong>process, domain expert</strong></em><strong>.</strong> And every process can be implemented in multiple right ways, so you need <strong>someone who knows </strong><em><strong>software and design, design expert</strong></em>, who can choose between those right ways, design, optimize, maintain, and you need <strong>someone who knows sales, marketing and customer service, business expert</strong>. And when your software has real users depending on it, one person isn&#8217;t enough. You need more than one to design it, to review changes it, sell it and to maintain it.</p><p>Now look at the tools everyone&#8217;s excited about. Cursor, Claude, Codex, they&#8217;re awesome, I use it everyday! but they&#8217;re built around a single developer. One person, one perspective.</p><p>We&#8217;re not building another development tool. That race is crowded, and honestly, it&#8217;s not the problem that keeps me up at night.</p><p>The problem is this: teams come together,  developers, sales, customer service, all of them. And with AI, everyone on that team now has the flexibility to dictate a change to the code and get it done in an hour. That&#8217;s incredible. But now the question is: Can we get the same velocity of single person team? If so, how do you verify the software still does what&#8217;s right for the <em>business</em>, and keep the team aligned, when every person carries their own version of the business in their head? </p><p>So this is our bet. A world of super-optimized teams building complex software at incredible speed, and CodeValid as the alignment and verification engine underneath it all.</p><p>Making sure that what gets built is what the business required. Building Trust.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Traditional QA Automation Isn't Broken. The World Around It Changed.]]></title><description><![CDATA[Every few years, software engineering reaches an inflection point.]]></description><link>https://codevalid.substack.com/p/traditional-qa-automation-isnt-broken</link><guid isPermaLink="false">https://codevalid.substack.com/p/traditional-qa-automation-isnt-broken</guid><dc:creator><![CDATA[Rakesh Shah]]></dc:creator><pubDate>Mon, 13 Jul 2026 18:53:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k709!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30f70a3b-5003-41c7-8846-8fbb7c95d123_1140x1140.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every few years, software engineering reaches an inflection point.</p><p>The arrival of cloud computing changed infrastructure.</p><p>Containers changed deployment.</p><p>Git changed collaboration.</p><p>Today, artificial intelligence is changing how software gets written.</p><p>What&#8217;s interesting isn&#8217;t that AI can generate code.</p><p>It&#8217;s how quickly that has happened.</p><p>A developer can now generate an API, build a React application, write database migrations, create unit tests, and deploy a working prototype before lunch.</p><p>That&#8217;s remarkable.</p><p>But it also exposes something the industry hasn&#8217;t talked about enough.</p><p>Software validation hasn&#8217;t changed nearly as quickly.</p><p>Most QA workflows still look surprisingly similar to the ones we built ten years ago.</p><p>Developers write code.</p><p>QA writes automation.</p><p>CI runs tests.</p><p>Failures are investigated.</p><p>Tests are updated.</p><p>Repeat.</p><p>That workflow still works.</p><p>But it&#8217;s beginning to show strain as software changes faster than humans can comfortably maintain automation.</p><div><hr></div><h2>Traditional Automation Solved Yesterday&#8217;s Biggest Problem</h2><p>It&#8217;s worth remembering why Selenium became so successful.</p><p>Before browser automation, QA teams repeated the same manual scenarios every release.</p><p>Automation changed everything.</p><p>Later, Playwright and Cypress dramatically improved developer experience and browser reliability.</p><p>Those tools remain outstanding.</p><p>The problem isn&#8217;t Selenium.</p><p>The problem isn&#8217;t Playwright.</p><p>The problem is that the assumptions behind those tools were created in a world where humans wrote nearly all of the software.</p><p>Today, AI often writes the first draft.</p><div><hr></div><h2>The Bottleneck Moved</h2><p>When software took weeks to build, spending days creating automation made perfect sense.</p><p>When software changes every few hours, that balance changes.</p><p>Engineering leaders are beginning to notice something interesting.</p><p>Developers aren&#8217;t waiting for code anymore.</p><p>They&#8217;re waiting for confidence.</p><p>Not because testing stopped working.</p><p>Because validation hasn&#8217;t accelerated at the same pace as development.</p><div><hr></div><h2>Five Areas Where Traditional Automation Feels the Pressure</h2><p>Traditional automation still excels at browser testing, API validation, and regression testing.</p><p>But AI-generated software exposes challenges that didn&#8217;t exist before.</p><p><strong>Automation maintenance.</strong> Every UI change creates script updates.</p><p><strong>Specification drift.</strong> Software evolves faster than tests.</p><p><strong>API explosion.</strong> Modern systems expose hundreds of endpoints.</p><p><strong>AI agents.</strong> Agent behavior isn&#8217;t always deterministic.</p><p><strong>Root cause analysis.</strong> Knowing a test failed isn&#8217;t the same as understanding why.</p><p>None of these are failures of Selenium or Playwright.</p><p>They&#8217;re symptoms of a changing software landscape.</p><div><hr></div><h2>A Different Way to Think About Validation</h2><p>Most automation starts with writing tests.</p><p>A newer generation of software validation platforms starts somewhere else.</p><p>It starts by understanding the application.</p><p>Requirements.</p><p>Specifications.</p><p>Source code.</p><p>GitHub repositories.</p><p>Project documentation.</p><p>Application behavior.</p><p>Instead of asking engineers to manually describe every scenario, AI helps generate validation from the engineering context itself.</p><p>That doesn&#8217;t eliminate automation.</p><p>It changes how automation is created and maintained.</p><div><hr></div><h2>Why This Matters</h2><p>I don&#8217;t think traditional QA automation is going away.</p><p>In fact, I expect Selenium, Playwright, Cypress, BrowserStack, and Postman to remain foundational tools for years.</p><p>But I also think we&#8217;re entering another transition.</p><p>The future probably isn&#8217;t:</p><p><strong>AI replacing automation.</strong></p><p>It&#8217;s:</p><p><strong>AI helping engineers maintain confidence as software evolves.</strong></p><p>That&#8217;s a very different problem.</p><p>And I believe it&#8217;s where software validation is heading.</p><p>This shift is one of the reasons we built <strong><a href="https://codevalid.io">CodeValid</a></strong>. Rather than asking engineers to spend more time maintaining automation, we believe software validation should begin with understanding the application&#8217;s context, its requirements, specifications, source code, APIs, and intended behavior. AI can then help generate, execute, and maintain validation so engineers can focus on delivering reliable software instead of constantly updating test suites.</p><div><hr></div><h2>Final Thoughts</h2><p>For the past twenty years, software engineering has focused on writing code faster.</p><p>AI is rapidly solving that problem.</p><p>The next challenge isn&#8217;t generating software.</p><p>It&#8217;s knowing when that software is ready for production.</p><p>That&#8217;s why I believe the next decade won&#8217;t be defined by better test automation alone.</p><p>It will be defined by better software validation.</p><h2>About the Author</h2><p>Rakesh Shah is the co-founder of <strong><a href="https://codevalid.io">CodeValid</a></strong>, an AI-native software validation platform that helps engineering teams validate APIs, web applications, and AI agents using AI-assisted, context-aware validation. He writes about software quality, AI-assisted development, and the future of software engineering.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Why Aren't Domain Experts Building Their Own Software Yet?]]></title><description><![CDATA[The promise of AI, coding agents is hard to ignore.]]></description><link>https://codevalid.substack.com/p/why-arent-domain-experts-building</link><guid isPermaLink="false">https://codevalid.substack.com/p/why-arent-domain-experts-building</guid><dc:creator><![CDATA[Karthik]]></dc:creator><pubDate>Wed, 21 Jan 2026 17:02:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k709!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30f70a3b-5003-41c7-8846-8fbb7c95d123_1140x1140.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The promise of AI, coding agents is hard to ignore. Software development has undeniably accelerated, coding agents have changed the game. Today, software engineers spend far less time writing boilerplate code and far more time architecting systems, reviewing code, and making design decisions. Yet, despite these advances, Why haven't we seen a wave of domain experts - financial planners, urban planners, and researchers - independently building and publishing their own software solutions? Despite the power of AI, three invisible walls still stand in the way of the domain expert.</p><div class="pullquote"><p>Why haven&#8217;t we seen a wave of domain experts - financial planners, urban planners, and researchers - independently building and publishing their own software solutions? </p></div><h3><strong>The Gap Between Knowing and Specifying</strong></h3><p>Domain experts possess a deep, intuitive grasp of their field&#8217;s problems often far deeper than any engineer. However, there is a massive difference between understanding a problem and specifying a technical solution.</p><p>Software doesn't just need to know what a good outcome looks like, it needs to know how data flows, how systems interact, and exactly what happens when things go wrong.  Translating these understanding into a complete technical specification is hard. It&#8217;s not just about screens and buttons, it&#8217;s about how systems interact, how data flows, how edge cases are handled, and how decisions are encoded. Even with AI, incomplete or <strong>ambiguous specifications lead to software that &#8220;almost works,&#8221;</strong> but misses critical details that only surface later.</p><h3>The Weight of Compounding Complexity</h3><p>In the beginning, building an app feels like magic. But as soon as you add the second, third, or tenth feature, the &#8220;complexity tax&#8221; kicks in.</p><p>Every new button or data point introduces dependencies and unintended side effects. In software, complexity compounds. While an AI can generate a hundreds of lines of code in seconds, without good system knowledge it is hard to explain why a change in the User Profile broke the Payment Gateway. Understanding these ripples requires system-level thinking. Without it, a domain expert can quickly find themselves trapped in a <strong>&#8220;bug loop,&#8221;</strong> unable to reason through why their creation is suddenly falling apart.</p><h3>The Hidden Half of Software: Infrastructure</h3><p>Writing the code is actually only half the battle; the other half is keeping it alive.</p><p>To turn a script into a solution, you have to deploy it reliably, monitor it in production, manage failures, handle scaling, secure and compliant data, and control costs. While cloud providers promise simplicity, they often just trade one type of complexity for another. For a non-technical founder, the learning curve of infrastructure is a major barrier to entry. It&#8217;s hard to ship with confidence when you don&#8217;t fully understand the ground your software is standing on.</p><div><hr></div><h3>The Road Ahead</h3><p>There&#8217;s no denying that software development is in the middle of massive change. In the last few years alone, we&#8217;ve seen more new tools, platforms, and approaches emerge than in the previous decade. Many of these are actively working to solve the exact problems above and make software more accessible than ever before.</p><p></p><p>If you&#8217;re a non-technical user who has tried to build software to solve a real problem, <strong>what challenges did you face along the way?</strong> Share your experiences and thoughts in the comments.</p>]]></content:encoded></item><item><title><![CDATA[When AI Makes Coding Faster, and Debugging Harder]]></title><description><![CDATA[How AI accelerates development, complicates systems, and why confidence, not code, is the real bottleneck]]></description><link>https://codevalid.substack.com/p/when-ai-makes-coding-faster-and-debugging</link><guid isPermaLink="false">https://codevalid.substack.com/p/when-ai-makes-coding-faster-and-debugging</guid><dc:creator><![CDATA[Sharath]]></dc:creator><pubDate>Wed, 07 Jan 2026 15:06:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CEc3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CEc3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CEc3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 424w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 848w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 1272w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CEc3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic" width="1284" height="1545" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1545,&quot;width&quot;:1284,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:207969,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://codevalid.substack.com/i/183366625?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CEc3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 424w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 848w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 1272w, https://substackcdn.com/image/fetch/$s_!CEc3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F413cb82c-f64c-45aa-b0e6-938ec38e623f_1284x1545.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Image credit: Linkedin</figcaption></figure></div><h2>The Golden Age of Fast Development</h2><p>A few years ago, shipping a new feature meant:</p><ul><li><p>Reading requirements carefully</p></li><li><p>Designing APIs and data models</p></li><li><p>Writing code line by line</p></li><li><p>Manually testing multiple flows</p></li></ul><p>Today?</p><blockquote><p><strong>Prompt &#8594; Code &#8594; Commit</strong></p></blockquote><p>With AI tools, developers can:</p><ul><li><p>Generate APIs in minutes</p></li><li><p>Scaffold services instantly</p></li><li><p>Write complex logic without remembering syntax</p></li><li><p>Explore multiple approaches at lightning speed</p></li></ul><p><strong>Development has never been faster.</strong> </p><p>But there&#8217;s a catch.</p><div><hr></div><h2>Faster Code &#8800; Safer Code</h2><p>In real-world applications especially complex ones, <strong>features don&#8217;t live in isolation</strong>.</p><p>Every new feature interacts with:</p><ul><li><p>Existing business rules</p></li><li><p>Data contracts</p></li><li><p>User workflows</p></li><li><p>Performance assumptions</p></li><li><p>Security constraints</p></li></ul><h3>The Hidden Risk</h3><blockquote><p>When you add or modify one feature, you might silently break three others.</p></blockquote><p>This risk existed <em>before</em> AI, but AI amplifies it.</p><p>Why?</p><ul><li><p>AI generates <strong>locally-correct</strong> code</p></li><li><p>Systems require <strong>globally-correct</strong> behavior</p></li></ul><div><hr></div><h2>A Very Familiar Story</h2><p>Let&#8217;s say you ask AI:</p><blockquote><p>&#8220;Add a discount feature for premium users.&#8221;</p></blockquote><p>AI delivers:</p><ul><li><p>New DB fields &#9989;</p></li><li><p>Discount calculation logic &#9989;</p></li><li><p>API changes &#9989;</p></li></ul><p>Looks perfect.</p><p>But later you discover:</p><ul><li><p>&#10060; Existing invoices are miscalculated</p></li><li><p>&#10060; Refund flow is broken</p></li><li><p>&#10060; Reports don&#8217;t match totals</p></li><li><p>&#10060; Edge cases weren&#8217;t considered</p></li></ul><p>Nothing <em>crashed</em>. Everything <em>compiled</em>.</p><p>But the system is now <strong>wrong</strong>.</p><div><hr></div><h2>A Real-World Example: Payments Feature Gone Wrong</h2><p>Imagine a <strong>payments system</strong> in a production application.</p><h3>Existing Flow (Working Fine)</h3><ul><li><p>User places an order</p></li><li><p>Payment is captured</p></li><li><p>Invoice is generated</p></li><li><p>Refunds and reports rely on the same data</p></li></ul><p>Everything is stable.</p><div><hr></div><h3>New Feature Request</h3><blockquote><p>&#8220;Add <strong>partial payment</strong> support for enterprise users.&#8221;</p></blockquote><p>You ask AI to implement it.</p><p>AI delivers:</p><ul><li><p>New <code>payment_status</code> values &#9989;</p></li><li><p>Updated payment calculation logic &#9989;</p></li><li><p>API changes for partial capture &#9989;</p></li></ul><p>The feature works perfectly in isolation.</p><div><hr></div><h3>What Actually Breaks</h3><p>A few days later, problems surface:</p><ul><li><p>&#10060; Refunds return incorrect amounts</p></li><li><p>&#10060; Finance reports don&#8217;t match bank settlements</p></li><li><p>&#10060; Order status gets stuck in <code>PROCESSING</code></p></li><li><p>&#10060; Edge cases fail during retries</p></li></ul><p>No syntax errors. No crashes.</p><p>Just <strong>incorrect system behavior</strong>.</p><p>Why?</p><p>Because the AI optimized for <em>the new feature</em>, not for <em>system-wide behavior</em>.</p><div><hr></div><h2>Why Debugging Got Harder with AI</h2><h3>1. You Didn&#8217;t Write the Code</h3><p>When AI writes code:</p><ul><li><p>You didn&#8217;t think through every branch</p></li><li><p>You didn&#8217;t design every assumption</p></li><li><p>You didn&#8217;t anticipate every edge case</p></li></ul><p>Debugging becomes archaeology instead of engineering.</p><div><hr></div><h3>2. Confidence Without Understanding</h3><p>AI-generated code often:</p><ul><li><p>Looks clean</p></li><li><p>Follows best practices</p></li><li><p>Uses correct patterns</p></li></ul><p>This creates <strong>false confidence</strong>.</p><blockquote><p>&#8220;It looks right, so it must be right.&#8221;</p></blockquote><p>That&#8217;s dangerous.</p><div><hr></div><h3>3. Systems Are About Behavior, Not Code</h3><p>AI is great at:</p><ul><li><p>Functions</p></li><li><p>Classes</p></li><li><p>APIs</p></li></ul><p>But weak at:</p><ul><li><p>End-to-end flows</p></li><li><p>Business intent</p></li><li><p>Cross-feature impact</p></li></ul><p>Your system breaks not because the code is bad, but because <strong>the behavior changed</strong>.</p><div><hr></div><h2>The Real Question Developers Must Ask</h2><blockquote><p><strong>How do I know this AI-generated code is actually correct?</strong></p></blockquote><p>Not just:</p><ul><li><p>Does it work?</p></li><li><p>Does it compile?</p></li></ul><p>But:</p><ul><li><p>Does it satisfy the feature fully?</p></li><li><p>Does it break existing flows?</p></li><li><p>Does it introduce hidden bugs?</p></li><li><p>Does it change system behavior?</p></li></ul><p>This is where most teams struggle today.</p><div><hr></div><h2>What If We Had a Better Way?</h2><p>Imagine a world where:</p><ul><li><p>AI doesn&#8217;t just write code</p></li><li><p>AI understands <strong>system behavior</strong></p></li><li><p>AI checks <strong>existing flows</strong> before changes</p></li><li><p>AI validates <strong>feature intent</strong>, not just syntax</p></li></ul><h3>Instead of asking:</h3><blockquote><p>&#8220;Write code for this feature&#8221;</p></blockquote><p>We ask:</p><blockquote><p>&#8220;Does this change break anything?&#8221;</p></blockquote><p>That shift changes everything.</p><div><hr></div><h2>The Missing Layer: Confidence Engineering</h2><p>What developers really need is not more code, but <strong>confidence</strong>.</p><p>Confidence that:</p><ul><li><p>New features don&#8217;t break old ones</p></li><li><p>Modifications don&#8217;t alter intent</p></li><li><p>Edge cases are covered</p></li><li><p>Behavior remains consistent</p></li></ul><p>This could come from:</p><ul><li><p>Automated behavior validation</p></li><li><p>AI-assisted impact analysis</p></li><li><p>Flow-based testing instead of unit-only tests</p></li><li><p>Requirement-to-code traceability</p></li></ul><div><hr></div><h2>Why Solving This Makes Developer Life Simple</h2><p>If we solve this problem:</p><ul><li><p>Development stays fast</p></li><li><p>Debugging becomes predictable</p></li><li><p>Refactoring becomes safe</p></li><li><p>Developers sleep better &#128524;</p></li></ul><p>AI then becomes a <strong>true partner</strong>, not a risk amplifier.</p><div><hr></div><h2>Final Thought</h2><p>AI didn&#8217;t make development harder.</p><p>It made <strong>our blind spots visible</strong>.</p><p>The next evolution isn&#8217;t faster code generation.</p><p></p><blockquote><p><strong>It&#8217;s knowing before production, what will break and why</strong></p></blockquote><div><hr></div><h3>Let&#8217;s Talk &#128071;</h3><p>If you&#8217;re building <strong>real-world, complex systems</strong> with AI-generated code, this isn&#8217;t a future problem.</p><p><strong>You&#8217;re probably feeling it already.</strong></p><ul><li><p>A feature that worked perfectly&#8230; until it hit production</p></li><li><p>AI-assisted change that broke an unrelated flow</p></li><li><p>A merge that looked safe but caused silent data issues</p></li></ul><p>&#128172; <strong>I&#8217;d love to hear from you:</strong></p><ul><li><p>How do you deal with bugs introduced by AI-generated code?</p></li><li><p>What&#8217;s the hardest part for you when reviewing or merging AI-written features?</p></li><li><p>How do <em>you</em> gain confidence that nothing breaks?</p></li></ul><p>Share your experiences or challenges in the comments &#128071;</p><p>Let&#8217;s learn from each other, and figure out how to make AI a true engineering partner, not just a fast code generator.</p><div><hr></div><p>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/p/when-ai-makes-coding-faster-and-debugging?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">We write about making software development more efficient and enjoyable. Know someone who&#8217;d benefit? Please share it with them.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://codevalid.substack.com/p/when-ai-makes-coding-faster-and-debugging?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://codevalid.substack.com/p/when-ai-makes-coding-faster-and-debugging?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>