{"id":899,"date":"2026-02-17T14:18:12","date_gmt":"2026-02-17T14:18:12","guid":{"rendered":"https:\/\/payne.org\/blog\/?p=899"},"modified":"2026-02-17T14:18:12","modified_gmt":"2026-02-17T14:18:12","slug":"ai-developers-adult-supervision-required","status":"publish","type":"post","link":"https:\/\/payne.org\/blog\/ai-developers-adult-supervision-required\/","title":{"rendered":"AI Developers:  Adult Supervision Required"},"content":{"rendered":"\n<p>A co-founder I advise asked me about hiring a high school student for a software development internship.  They had an impressive portfolio, but it was also clear that most of it was AI-generated.  The co-founder asked, &#8220;<em>How should I think about this?<\/em>&#8221;  My answer was immediate:  &#8220;<em>I have no idea!!!<\/em>&#8220;<\/p>\n\n\n\n<p>After several weeks of some intense &#8220;vibe coding&#8221; [I <strong>do not<\/strong> like this term, but here we are], I have a more nuanced perspective.<\/p>\n\n\n\n<p>To start, I&#8217;ve reactivated the ~30-year-old dormant neurons I used to manage developers.  A good tech lead always tries to understand each developer&#8217;s strengths &amp; weaknesses and adapt accordingly.  Junior developers may need regular code and design reviews, where a more senior developer can propose an API\/design and then go implement without much guidance.<\/p>\n\n\n\n<p>In that framework, AI coding agents (today) are very strong on knowledge (e.g., instant access to Google) but weak on judgment and experience.  They are simply amazing for relatively simple or &#8220;tedious&#8221; coding tasks:  integration, basic UI, test cases, devops, validity checking, configuration, formatting, reports, basic refactoring, etc.   Being able to &#8220;Program in English&#8221; feels like nothing short of magic.<\/p>\n\n\n\n<p>But, the agents struggle when the problem moves into &#8220;real&#8221; computer science:  algorithms, asynchronous designs, threads, race conditions, locking, security, consistency, optimization, scalability, etc.   Unguided, the agent will happily write the code (eager to please!), but it&#8217;s <strong>fragile<\/strong>.  Worse, the agent doesn&#8217;t <em>know<\/em> it&#8217;s fragile:  it happily fixes bug #1 but then introduces new bugs.  Fixing those seems to work (for now), but a new bug appears later, or new features trigger cascading new bugs and long debugging and bug-fixing cycles. <\/p>\n\n\n\n<p>This is where <strong>experience matters<\/strong>: a seasoned developer will recognize the thrashing, pull back, pinpoint the fragility, and provide specific refactoring guidance to move the agent toward a more robust design &amp; implementation.  (I&#8217;ll write a follow-up post later on my experience here, with some suggested practices.)<\/p>\n\n\n\n<p>Back to the co-founder&#8217;s question:  how do we evaluate?  <\/p>\n\n\n\n<p>I think the answer (again, today) revolves around:  <strong><em>what kind of software is being developed?<\/em><\/strong>  If it&#8217;s relatively simple, tedious, integration-heavy, &#8220;forms on a database with reports,&#8221; work, junior developers with coding agents can get a lot done.  But if it&#8217;s more sophisticated than that, you risk having a huge, fragile pile of &#8220;AI slop&#8221; that looks like it works but breaks when you need it most.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A co-founder I advise asked me about hiring a high school student for a software development internship. They had an impressive portfolio, but it was also clear that most of it was AI-generated. The co-founder asked, &#8220;How should I think &hellip; <a href=\"https:\/\/payne.org\/blog\/ai-developers-adult-supervision-required\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-899","post","type-post","status-publish","format-standard","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/posts\/899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/comments?post=899"}],"version-history":[{"count":1,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/posts\/899\/revisions"}],"predecessor-version":[{"id":900,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/posts\/899\/revisions\/900"}],"wp:attachment":[{"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/media?parent=899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/categories?post=899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/payne.org\/blog\/wp-json\/wp\/v2\/tags?post=899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}