<?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[Pradeep Roark’s Lab]]></title><description><![CDATA[I write about Software Engineering. Programming Languages. AI as a fulcrum to the future. I like to tinker and bring abstract ideas to life. Posts about what worked, what didn't and what I keep working on.]]></description><link>https://lab.pradeeproark.com</link><image><url>https://substackcdn.com/image/fetch/$s_!eolZ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6baaa475-07e8-4168-999a-95848029fd9d_1254x1254.png</url><title>Pradeep Roark’s Lab</title><link>https://lab.pradeeproark.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 23 Sep 2026 08:44:48 GMT</lastBuildDate><atom:link href="https://lab.pradeeproark.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Pradeep Roark]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[pradeeproark@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[pradeeproark@substack.com]]></itunes:email><itunes:name><![CDATA[Pradeep Roark]]></itunes:name></itunes:owner><itunes:author><![CDATA[Pradeep Roark]]></itunes:author><googleplay:owner><![CDATA[pradeeproark@substack.com]]></googleplay:owner><googleplay:email><![CDATA[pradeeproark@substack.com]]></googleplay:email><googleplay:author><![CDATA[Pradeep Roark]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Spec driven development]]></title><description><![CDATA[Look ma, no code]]></description><link>https://lab.pradeeproark.com/p/spec-driven-development</link><guid isPermaLink="false">https://lab.pradeeproark.com/p/spec-driven-development</guid><dc:creator><![CDATA[Pradeep Roark]]></dc:creator><pubDate>Wed, 23 Sep 2026 08:15:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L7vq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L7vq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L7vq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 424w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 848w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 1272w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L7vq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png" width="1374" height="1145" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1145,&quot;width&quot;:1374,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:0,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L7vq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 424w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 848w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 1272w, https://substackcdn.com/image/fetch/$s_!L7vq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dfa0abe-3b3e-4d63-bbb8-dc4d02fca1e7_1374x1145.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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></figure></div><p>Agentic AI has collapsed a few layers in the traditional software development process. Particularly the claim is that you can develop a feature of a software just by writing the specification.</p><p> Already there are many frameworks written as skill bundles that direct agents how to do that. Read a spec and produce all the artefacts you could expect. A working prototype or complete software with tests and documentation.</p><p>But there is a difference between doing this with or without rigour. The looser the specifications the higher the chance of incomplete, buggy or totally irrelevant output. Otherwise SDD is still subject to the &#8220;GIGO&#8221; principle. &#8220;Garbage in Garbage out&#8221;.</p><p>But what makes a good spec over a bad one? I am going to take some well known popular applications and spec them out and let agents drive the implementations to see the results. </p>]]></content:encoded></item><item><title><![CDATA[Agentic Scratch Memory using Pensieve]]></title><description><![CDATA[Last year, I wrote an article which is almost the &#8220;hello world&#8221; of customising an agent.]]></description><link>https://lab.pradeeproark.com/p/agentic-scratch-memory-using-pensieve</link><guid isPermaLink="false">https://lab.pradeeproark.com/p/agentic-scratch-memory-using-pensieve</guid><dc:creator><![CDATA[Pradeep Roark]]></dc:creator><pubDate>Tue, 22 Sep 2026 11:03:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eolZ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6baaa475-07e8-4168-999a-95848029fd9d_1254x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last year, I wrote an article which is almost the &#8220;hello world&#8221; of customising an agent. Circa 2025, coding agents were limited in context. You needed to constantly tell them everything again in every session. Who am I? Why are we here? That sort of thing. Humour aside, you needed to feed them the same set of instructions, files that you wanted them to ground on. Also, if you were planning a long coding session, a way for them to recollect what they did. I will reproduce that article here verbatim. But note that I no longer use &#8220;Pensieve&#8221;, the tool I built for this extensively now, but still it is very informative on why it was very useful back then.</p><blockquote><p>Agentic coding is a phenomenal experience. I&#8217;ve been working with AI coding agents for a year now, primarily using Claude Code after trying a variety of models. But there&#8217;s one well-known problem &#8212; they have a &#8216;context window&#8217; - a limited memory area for what they&#8217;re holding in their &#8216;agentic minds&#8217;. Context is nearly <em>everything</em> because it guides them to approach the task from the proper perspective and captures the small details that wire projects together, keeping the process focused and relevant.</p><p>What constitutes context? It could be the code already written, high-level architectural ideas, pitfalls to avoid, or observations about the domain the problem is trying to solve. &#8220;Code&#8221; alone does not capture everything. My earlier approach was to write extensive specs and capture them as docs, which I had to constantly reference when working on a task. It wasn&#8217;t scaling, and it <em>wasn&#8217;t enough</em>. The agents frequently forgot key details I had decided were essential and wrote docs on, but they weren&#8217;t always bringing that knowledge to bear&#8230; creating weird spaghetti. Spaghetti that solved the problem at hand but was inconsistent with earlier pieces. I solved most of this by following rigid structures (like templates) for different parts of the codebase, which nearly solved the inconsistency issue, but not entirely.</p><p>Depending on the programming stack you use, there&#8217;s still information loss about the domain under consideration unless you meticulously document it in the project. The agent wasn&#8217;t <em>really</em> &#8220;learning&#8221;. This is not a meta discussion about what &#8220;learning&#8221; is and whether they really do. My insight was that they lack &#8220;knowledge&#8221; - the kind we bring to bear when we learn a codebase and the domain it&#8217;s operating in &#8212; the little trickles of insights gained that turn into a knowledge repository. What they needed was a way to build this &#8220;knowledge&#8221; themselves, through working on a project, and to bring it to bear on the problem at hand.</p><p>How did I solve this without agents before? The answer was actually so simple. I used structured notes - a scratchpad filled with entries about different aspects of the codebase or domain. For example, I documented data flow, persistence methods, and design choices&#8212;things that happen all the time in artisan coding. These notes acted as a personal memory aid, helping me recall critical details quickly and consistently during development.</p><p>But what do I mean by structured notes? You need to distinguish between free-form writing and structured writing. Free-form writing about a problem solved in a project would be like a couple of paragraphs explaining what was solved. But depending upon how good you are at keeping all relevant details, the free-form approach becomes lossy and inconsistent. So I follow a system where I design a template for each type of learning that I have. For instance, a &#8220;problem solved&#8221; template might capture the problem, the root cause, and what was learned. Or a &#8220;design principles&#8221; template might have fields for the principle itself (limited to 150 characters), the rationale behind it, and what anti-pattern it prevents. The template forces me to list the relevant details. And I design little templates to use for other things, like &#8220;patterns discovered&#8221; or &#8220;workarounds learned&#8221;. These are, by necessity, brief and distinct from project-level documentation. Having a structure enhances consistency and makes the gathered knowledge really valuable.</p><p>Now, how do I make the agents follow such a system? Define templates, and use them whenever the context dictates, preferably in a seamless way&#8230; like when I think and jot them down.</p><p>Enter Pensieve, a scratchpad for AI agents to use - a command-line interface (CLI) tool that agents can use to define templates and record notes in them and recall them as needed. Agents are very good at using CLI-based tools, and they automatically discovered how to use them with a little prompting. The agents designed templates in collaboration with me for each project I was working on and started filling them in as we tackled tasks together. And slowly, as we started new sessions, the agent started recollecting past learnings, informing the task at hand and making it more guided and precise than before. You no longer needed to <em>yell</em> the same information over and over.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZJMV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZJMV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 424w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 848w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 1272w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZJMV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png" width="155" height="262" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e015914-0e63-4f21-942e-b405d13151a8_155x262.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:262,&quot;width&quot;:155,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lab.pradeeproark.com/i/216879797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZJMV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 424w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 848w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 1272w, https://substackcdn.com/image/fetch/$s_!ZJMV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e015914-0e63-4f21-942e-b405d13151a8_155x262.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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></figure></div><p></p><p>But why exactly is this better than using CLAUDE.md or docs in the repo? It is because they are unstructured, and the agents follow those instructions in an inconsistent manner. The more you have in this memory, the less likely the agent is going to find it and use it. Also, without specifying limits, the agents generated verbose, pointless documentation which they <em>themselves</em> did not follow. By forcing the agents to create structured notes with well-defined fields and LIMITING the length of them as needed, more disciplined knowledge capture happened.</p><p>Besides templates, Pensieve also encourages agents to link entries with each other. Nothing is lost forever &#8212; a note can be &#8220;augmented,&#8221; &#8220;superseded,&#8221; or &#8220;deprecated&#8221; by another note. In most cases, this is sufficient, and the agent is encouraged to follow these links when inspecting a note. This allows the agent to crawl through memory AS NEEDED for the task at hand, digging deeper and deeper into memory, building a &#8220;graph of sorts&#8221; in its agentic mind.</p></blockquote><p></p><p>I no longer have the repo for the same open. Instead, I plan to share a spec of the tool, which should be sufficient for any agent to design one.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lab.pradeeproark.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 Pradeep Roark&#8217;s Lab! 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[The Cambrian Explosion of Software development with LLMs]]></title><description><![CDATA[Large Language Models (LLMs) have unleashed a Cambrian explosion of software.]]></description><link>https://lab.pradeeproark.com/p/the-cambrian-explosion-of-software</link><guid isPermaLink="false">https://lab.pradeeproark.com/p/the-cambrian-explosion-of-software</guid><dc:creator><![CDATA[Pradeep Roark]]></dc:creator><pubDate>Sun, 20 Sep 2026 20:09:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m_Xa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png" 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_!m_Xa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m_Xa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m_Xa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3170353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://pradeeproark.substack.com/i/216627264?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m_Xa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!m_Xa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac961ebf-a0c5-4757-b257-df8b9663ac67_1672x941.png 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 buttonBase-GK1x3M"><svg aria-hidden="true" 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" class="icon-noB79L"><g><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 buttonBase-GK1x3M"><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 icon-noB79L"><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></figure></div><p></p><p>Large Language Models (LLMs) have unleashed a Cambrian explosion of software. Over the decades, coding was partly considered elitist, despite efforts to make it accessible to more people. Many people became coders without calling themselves that. Writers and script writers were never afforded the title, despite, for all intents and purposes, they were indeed &#8220;coding&#8221;.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lab.pradeeproark.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 Pradeep Roark&#8217;s Lab! 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>Still, there was a class of software considered inaccessible to them. You needed an elaborate ritual of Software Engineering professions&#8212;from Product designers, analysts, managers, developers, and QA&#8212;to build these classes of software. Cloud apps, mobile apps, SaaS products.</p><p>The gate that prevented them had nothing to do with the complexity of the problem that they were trying to solve in a domain. The complexity of the business, be it payment processing workflows, scheduling apps, delivery apps with their own niche problems, was something product builders were able to dissect and find elegant solutions. But the translation of their solutions into software was blocked by something much more insipid.</p><p>It was the sheer amount of accidental complexity Software Architects and engineers had created over the decades. These abstractions were just endless indirections that tackled particular problems sometimes meaningful, many times not so. It still forced those looking to translate their solutions to software to deal with them.</p><p>What are React Hooks and why do you need them? What is pydantic for? What is a REST API and why do I need it?</p><p>These are worthwhile questions, but the answers and the rabbit holes of knowledge required to master them bore both deep insights and rote knowledge that needs translation and execution. The latter of which LLMs offer to solve. They can never really solve the former except to rehash pre-discovered wisdom.</p><p>How do we deal with this new world? Is it an all-or-nothing approach to go for? Is a new development approach on offer? Has a new type of coder emerged? We will set out to find out here.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://lab.pradeeproark.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 Pradeep Roark&#8217;s Lab! 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></channel></rss>