{"id":482,"date":"2026-05-17T15:13:15","date_gmt":"2026-05-17T15:13:15","guid":{"rendered":"https:\/\/codingismycraft.blog\/?p=482"},"modified":"2026-05-17T20:51:01","modified_gmt":"2026-05-17T20:51:01","slug":"confusing-consumption-with-creation-in-modern-software","status":"publish","type":"post","link":"https:\/\/codingismycraft.blog\/index.php\/2026\/05\/17\/confusing-consumption-with-creation-in-modern-software\/","title":{"rendered":"Confusing Consumption with Creation in Modern Software"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-487\" src=\"https:\/\/codingismycraft.blog\/wp-content\/uploads\/2026\/05\/the-ai-iceberg.png\" alt=\"\" width=\"1115\" height=\"719\" \/><\/p>\n<article>It has become incredibly common to hear &#8220;full stack&#8221; developers talk about how they recently &#8220;discovered AI,&#8221; marveling at how simple it is to stitch together a fully functional agentic system.<\/p>\n<p>While their observations about the accessibility of these tools are technically true, it highlights a classic, modern case of confusing <strong>consumption<\/strong> with <strong>creation<\/strong>. This misunderstanding exposes a massive, growing divide in what we call &#8220;modern software development.&#8221;<\/p>\n<p>In a way, this dynamic is highly analogous to comparing the user of a word processor like Open Office to the programmers who actually wrote it or the user of a web browser to the engineers who built it. The user can create documents or browse the web, but they are not creating the underlying software that enables those actions. They are consuming the product of others&#8217; engineering work, and while they may feel empowered by the tools, they are not engaging in the complex process of building the systems themselves.<\/p>\n<section>\n<h2>The Illusion of the 20 Minute Agent<\/h2>\n<p>Building an AI &#8220;agent&#8221; in Python using high level frameworks like LangChain, AutoGen, or CrewAI is fundamentally an exercise in <strong>configuration<\/strong> and <strong>prompt engineering <\/strong> rather than <strong>true<\/strong> software development.<\/p>\n<p>The barrier to entry is so low that any tech savvy layman can watch a 20 minute YouTube tutorial, copy a script, and deploy a functional agentic workflow. Because the output feels like magic, it creates a powerful illusion: the developer feels like they have &#8220;created&#8221; an intelligent system, and they walk away believing that AI engineering is easy.<\/p>\n<p>In reality, engineering the systems that make AI viable is orders of magnitude more complex than traditional software development.<\/p>\n<p>Traditional software engineering is already a notoriously difficult discipline, requiring rigorous logic and systematic debugging; however, building, training, and optimizing the architectural layers that power these models are way more sophisticated programming layers like optimizing parallel processing of CUDA kernels, customizing PyTorch data pipelines, and bare-metal hardware constraints\u2014is on an entirely different level of complexity.<\/p>\n<\/section>\n<section>\n<h2>Scarcity Drives Value<\/h2>\n<p>The simplicity projected onto full stack developers is a deceptive abstraction. These high level frameworks act as a &#8220;black box,&#8221; deliberately hiding the staggering complexity of the underlying software and hardware orchestrations that keep the models running efficiently.<\/p>\n<p>When a developer writes an agentic script to call an API or configure a premade framework, they aren&#8217;t truly creating a novel AI system. They are consuming the monumental, low level engineering work of the teams who built the architectures underneath.<\/p>\n<p>This divide is creating a sharp bifurcation in the tech job market:<\/p>\n<ul>\n<li><strong>The Commodity Layer:<\/strong> A massive, rapidly growing flood of developers who know how to call an LLM API or chain prompts together. Because this skill set is easily replicated, its market value will naturally commoditize.<\/li>\n<li><strong>The Architecture Layer:<\/strong> A small, highly specialized group of engineers who possess a deep, mechanical understanding of the underlying software, mathematical models, and hardware limitations powering these systems.<\/li>\n<\/ul>\n<p>From a professional and strategic perspective, the economic rule remains absolute: <strong>scarcity drives value<\/strong>.<\/p>\n<p>While the market fills to the brim with developers who simply consume the work of others via high-level wrappers, the true systems architects who understand the silicon, the memory layouts, and the foundational software layers will remain in desperate demand.<\/p>\n<\/section>\n<section>\n<h2>The Reality at the Edge of the Silicon<\/h2>\n<p>Ultimately, the grand illusion of the AI is based on the idea that prompts consisting of unstructured text fed to an LLM, or Python scripts configuring an agentic framework, represent the pinnacle of engineering.<\/p>\n<p>Based on my opinion, <b>they do not<\/b>.<\/p>\n<p>While a commodity developer spends their afternoon tweaking a prompt template to make an agent behave, a systems architect is working at the assembly instruction level to make that behavior economically viable. They are the ones writing custom CUDA kernels, figuring out how to collapse data across physical hardware execution lanes using system primitives most of them are far more complicated and challenging to use compared to API calls that are the norm in high level development that relies to third parties.<\/p>\n<p>And yes, despite of what I keep on reading on blogs and social media, learning to use a third party API has a much simpler learning curve when compared to talking directly to the silicon.<\/p>\n<p>When the hype settles and AI infrastructure becomes a game of margins, performance, and efficiency, the industry will pivot hard toward those who have the deep expertise to understand, design and implement low lever algorithms and solutions that will become the basis of the higher level APIs used by the &#8220;Full Stack Engineers&#8221;. <\/p>\n<p>There will always be a place for those who write the scripts at the surface, but the engineers who know how to fold a warp, align a memory bank, and control the bare metal are the ones who hold the keys to the kingdom. They aren&#8217;t just driving the AI car\u2014they are the ones who know how to build the engine.<br \/>\n<\/section>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>It has become incredibly common to hear &#8220;full stack&#8221; developers talk about how they recently &#8220;discovered AI,&#8221; marveling at how simple it is to stitch&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"categories":[12],"tags":[],"class_list":["post-482","post","type-post","status-publish","format-standard","hentry","category-innovation"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":418,"url":"https:\/\/codingismycraft.blog\/index.php\/2026\/02\/09\/the-art-of-real-programming-why-tools-arent-engineering\/","url_meta":{"origin":482,"position":0},"title":"The Art of &#8220;Real Programming&#8221;: Why Tools Aren\u2019t Engineering","author":"john","date":"February 9, 2026","format":false,"excerpt":"In the modern software industry, there is a growing, dangerous belief: that programming is a \"boring detail.\" The narrative suggests that anyone can become an \"engineer\" in a few months, or better yet, bypass the craft entirely by using AI to \"glue\" components together. This is nonsense. The need for\u2026","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/codingismycraft.blog\/index.php\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":37,"url":"https:\/\/codingismycraft.blog\/index.php\/2013\/03\/11\/bugs\/","url_meta":{"origin":482,"position":1},"title":"Bugs","author":"john","date":"March 11, 2013","format":false,"excerpt":"Developing software has as side effect the creation of bugs that compromise the quality of it and add to the total cost of the solution... Here you can get a feeling of what can be caused by a bug: http:\/\/www.devtopics.com\/20-famous-software-disasters There is no software that is completely bug-free. The number\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":176,"url":"https:\/\/codingismycraft.blog\/index.php\/2017\/09\/27\/shipping-buggy-code-the-most-critical-skill-for-a-programmer\/","url_meta":{"origin":482,"position":2},"title":"Shipping buggy code: The most critical skill for a programmer","author":"john","date":"September 27, 2017","format":false,"excerpt":"NASA\u2019s Mars Climate Orbiter was launched on December 11 1998 with the ambitious mission of \u00a0studying Martian climate; the cost of the program was more than $300M and a good share of it was allocated to development of the necessary software. \u00a0Unfortunately, as the \u00a0Orbiter was approaching the red planet\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":49,"url":"https:\/\/codingismycraft.blog\/index.php\/2014\/05\/20\/thoughts-about-software-quality\/","url_meta":{"origin":482,"position":3},"title":"Thoughts About Software Quality&#8230;","author":"john","date":"May 20, 2014","format":false,"excerpt":"This might sound a bit axiomatic but it has to be true: software that remains alive while still expanding the number of it users as time goes on, is the epitome of good software; anything else that can possibly be used as quality metric is more of an implementation detail\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":174,"url":"https:\/\/codingismycraft.blog\/index.php\/2017\/09\/16\/talent-is-the-best-metric-to-measure-a-software-developer\/","url_meta":{"origin":482,"position":4},"title":"Talent is the best Metric to measure a Software Developer.","author":"john","date":"September 16, 2017","format":false,"excerpt":"Like in any other activity that requires expertise, software developers can be classified based on their productivity and ability to innovate and create new approaches and solutions to specific problems. The main dimensions that dictate the quality of a developer are knowledge, experience and talent and the ability to recognize\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":64,"url":"https:\/\/codingismycraft.blog\/index.php\/2015\/10\/07\/metrics-converted-to-goals-lose-their-focus\/","url_meta":{"origin":482,"position":5},"title":"Metrics converted to goals lose their focus","author":"john","date":"October 7, 2015","format":false,"excerpt":"One of the common discussions I have had with my colleagues over the last years was about the creation of metrics to express the productivity and the quality of an individual developer. At first glance, the idea of expressing the ability of a programmer, with a small set of easy\u2026","rel":"","context":"In &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/codingismycraft.blog\/index.php\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/comments?post=482"}],"version-history":[{"count":19,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/482\/revisions"}],"predecessor-version":[{"id":506,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/posts\/482\/revisions\/506"}],"wp:attachment":[{"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/media?parent=482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/categories?post=482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codingismycraft.blog\/index.php\/wp-json\/wp\/v2\/tags?post=482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}