<?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: Kay Macfoy</title>
    <description>The latest articles on DEV Community by Kay Macfoy (@temphero).</description>
    <link>https://dev.to/temphero</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%2F4151144%2F82108cb3-9a2e-4aa2-a4f1-55870ff7eba2.png</url>
      <title>DEV Community: Kay Macfoy</title>
      <link>https://dev.to/temphero</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/temphero"/>
    <language>en</language>
    <item>
      <title>Why You Should(n’t) Use AI: The Trouble With Reading Carefully</title>
      <dc:creator>Kay Macfoy</dc:creator>
      <pubDate>Wed, 30 Sep 2026 01:29:48 +0000</pubDate>
      <link>https://dev.to/temphero/why-you-shouldnt-use-ai-the-trouble-with-reading-carefully-547a</link>
      <guid>https://dev.to/temphero/why-you-shouldnt-use-ai-the-trouble-with-reading-carefully-547a</guid>
      <description>&lt;p&gt;A few years ago, I saw the Cloud Resume Challenge and thought to myself that it would be a fun challenge to do one day. In IT, however, complacency eventually leads to being promoted to civilian, to add some humor. So, in 2025, I began the journey with scraps of long-forgotten HTML knowledge and a few frantic Google searches about how to create HTML, when a thought occurred to me:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What if I used AI?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At the time, ChatGPT was on version 4. Creating the HTML was easy enough. A couple of &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;tags and a whole multitude of &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tags later, I had a website. Then came more requests about how to transform this site, put together in Visual Studio, into something that could actually be reached over the Internet.&lt;/p&gt;

&lt;p&gt;AI helped with that, too.&lt;/p&gt;

&lt;p&gt;So far, you may wonder if AI was enough to get through the entire challenge. With only 16 steps and the first five knocked out, this would be a breeze, I thought.&lt;/p&gt;

&lt;p&gt;That thought would be proven wrong in short order.&lt;/p&gt;

&lt;p&gt;The first bottleneck came shortly after Step 7. With some vibecoding—and ChatGPT choosing Node.js instead of the Python specified by the challenge— the counter worked.&lt;/p&gt;

&lt;p&gt;Then it stopped working.&lt;/p&gt;

&lt;p&gt;The site went down shortly afterward.&lt;/p&gt;

&lt;p&gt;Thus began many, many sessions of explaining the problem, taking screenshots (Snipping Tool was fantastic in this regard), and waiting for the desktop version of ChatGPT to come back with some solution that would hopefully fix the issue.&lt;/p&gt;

&lt;p&gt;Now we bring our attention to the subtitle of this post: &lt;strong&gt;&lt;em&gt;The Trouble With Reading Carefully.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During my many prompts and responses, I had missed something crucial in the configuration. This was discovered after what felt like the 50th dive into the Kudu console and viewing the Log Stream with hope and optimism.&lt;/p&gt;

&lt;p&gt;The Azure Function responsible for my counter was missing required storage configuration.&lt;/p&gt;

&lt;p&gt;This was an important lesson because AI could keep giving me commands, settings and troubleshooting steps—and I could keep dutifully trying them—but neither of those things meant I understood how all the pieces fit together. Once the missing configuration was corrected, the counter came back to life.&lt;/p&gt;

&lt;p&gt;When the counter went down, it was around 103. By the time I got everything visible and working again, it was somewhere in the mid-180s. The backend, nobly carrying on while I repeatedly interrogated Kudu, had apparently been doing more work than I realized.&lt;/p&gt;

&lt;p&gt;During all of this, I also obtained the AZ-104 certification after four attempts spread across two years.&lt;/p&gt;

&lt;p&gt;The next hurdle came during Step 11. While configuring tests and deployment through YAML, the counter broke again—although thankfully, this time the site itself remained online.&lt;/p&gt;

&lt;p&gt;The culprit was the deployment workflow. I had not configured &lt;code&gt;deploy.yml&lt;/code&gt; correctly.&lt;/p&gt;

&lt;p&gt;There was substantially less downtime this time around. The counter went from roughly 185 to around 200 before I got everything working again.&lt;/p&gt;

&lt;p&gt;Eventually, after learning quite a bit more about Azure, GitHub Actions, and where everything actually lived—and after a great many &lt;code&gt;git commit -am&lt;/code&gt; commands — the project was complete.&lt;/p&gt;

&lt;p&gt;Or so I thought.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The $75 Cloud Resume&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The Cloud Resume Challenge is supposed to cost practically nothing to operate.&lt;/p&gt;

&lt;p&gt;Mine was costing me around &lt;strong&gt;$75 per month.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Early in the project, I had been told to create resources that I didn't actually need. Because I had focused primarily on getting the project to work, rather than understanding why each resource existed, those costs remained largely unquestioned.&lt;/p&gt;

&lt;p&gt;Once I finally investigated them, I discovered resources that weren't necessary for the site I had actually built. After confirming that I could safely remove them, my monthly Azure bill fell from roughly &lt;strong&gt;$74 to about $3.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Removing Azure Front Door brought the cost down further and finally got the project much closer to the inexpensive architecture the challenge had promised.&lt;/p&gt;

&lt;p&gt;Once again, the problem wasn't that AI couldn't give me a working answer.&lt;/p&gt;

&lt;p&gt;The problem was that &lt;strong&gt;“working” and “understood” are not the same thing.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Coming Back to the Project
&lt;/h2&gt;

&lt;p&gt;By 2026, I knew considerably more than I had when I started. So I came back to the project — not to rebuild it, but to find out whether I actually understood what I had built.&lt;/p&gt;

&lt;p&gt;That turned into dependency upgrades, security improvements and substantially better testing.&lt;/p&gt;

&lt;p&gt;The backend eventually reached eight automated tests, covering successful counter increments, initialization, CORS behavior, unsupported HTTP methods, missing environment variables and failure conditions. Those tests became part of the deployment pipeline, meaning a failed test could stop a bad backend deployment.&lt;/p&gt;

&lt;p&gt;After upgrading the project's dependencies, npm audit reported zero known vulnerabilities.&lt;/p&gt;

&lt;p&gt;Then came Infrastructure as Code.&lt;/p&gt;

&lt;p&gt;Azure was perfectly willing to export my existing environment for me. The resulting ARM template was &lt;strong&gt;3,813 lines long.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rather than simply committing Azure's autobiography to GitHub and declaring Step 12 complete, I started over.&lt;/p&gt;

&lt;p&gt;I wrote a much smaller ARM template containing only the infrastructure the backend actually required: storage, a Consumption hosting plan, Cosmos DB, its database and container, and the Function App itself.&lt;/p&gt;

&lt;p&gt;And this time, I read it.&lt;/p&gt;

&lt;p&gt;I validated the template. I ran a what-if deployment. I deployed the entire stack into a disposable resource group. I checked that the Cosmos database and container actually existed with the expected partition key. Only after Azure had recreated the infrastructure successfully did I consider the step finished.&lt;/p&gt;

&lt;p&gt;Then I deleted the test environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Should You Use AI?
&lt;/h2&gt;

&lt;p&gt;Absolutely.&lt;/p&gt;

&lt;p&gt;And absolutely not.&lt;/p&gt;

&lt;p&gt;AI allowed me to attempt a project that would have taken me considerably longer otherwise. It helped me write HTML and JavaScript, troubleshoot Azure, understand error messages, create tests, work with GitHub Actions, modernize old dependencies, and eventually build infrastructure as code.&lt;/p&gt;

&lt;p&gt;But AI also made it extraordinarily easy to do something dangerous in IT:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;make progress without understanding why.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A generated command can work without you understanding the command. Generated code can pass a test without you understanding the code. An Azure resource can solve today's problem while quietly adding $70 to next month's bill.&lt;/p&gt;

&lt;p&gt;And an AI can confidently tell you to remove two seemingly unnecessary lines from a deployment workflow — only for the deployment to immediately break.&lt;/p&gt;

&lt;p&gt;Ask me how I know.&lt;/p&gt;

&lt;p&gt;The most useful change between the person who started this project and the person who finished it wasn't access to a better AI model.&lt;/p&gt;

&lt;p&gt;It was learning when to stop prompting and start reading.&lt;/p&gt;

&lt;p&gt;Use AI to move faster.&lt;/p&gt;

&lt;p&gt;Just make sure you still know &lt;strong&gt;where you're going.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here's the site that put my screenshot abilities and patience to the test: &lt;a href="https://resume.kaymacfoy.com" rel="noopener noreferrer"&gt;Resume&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudresumechallenge</category>
      <category>azure</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
