<?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[Talking with Robots]]></title><description><![CDATA[Former Staff Software Engineer at The New York Times personally exploring the evolution of software engineering with natural language, (X)LMs and Generative AI.]]></description><link>https://www.paulbonneville.com</link><image><url>https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png</url><title>Talking with Robots</title><link>https://www.paulbonneville.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 03 Apr 2026 19:34:31 GMT</lastBuildDate><atom:link href="https://www.paulbonneville.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Paul Bonneville]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[paulbonneville@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[paulbonneville@substack.com]]></itunes:email><itunes:name><![CDATA[Paul Bonneville]]></itunes:name></itunes:owner><itunes:author><![CDATA[Paul Bonneville]]></itunes:author><googleplay:owner><![CDATA[paulbonneville@substack.com]]></googleplay:owner><googleplay:email><![CDATA[paulbonneville@substack.com]]></googleplay:email><googleplay:author><![CDATA[Paul Bonneville]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Follow up on my previous writings on agentic coding]]></title><description><![CDATA[What I thought a year and a half ago and what I think now.]]></description><link>https://www.paulbonneville.com/p/follow-up-on-my-previous-writings</link><guid isPermaLink="false">https://www.paulbonneville.com/p/follow-up-on-my-previous-writings</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Mon, 16 Mar 2026 05:46:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>To quote myself from late 2024:</p><div class="pullquote"><p>&#8230;A focus on memorizing or mastering syntax is likely to have a diminishing value as natural language slowly becomes the next highest level abstracted language in our programming toolbox.</p></div><blockquote><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d70ffab7-61db-44b3-987d-1d1e6436cc6e&quot;,&quot;caption&quot;:&quot;Diving into a new software technology without established norms, while keeping up with a rapidly evolving release cycle, can make this field feel almost impossible to learn. What you learn today may be obsolete within a month&#8212;a drastic reduction from the typical year-long stability we used to expect with both open source and proprietary software. Previo&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Rapid Evolution of Software Engineering in the GenAI Era&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:197352598,&quot;name&quot;:&quot;Paul Bonneville&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26956b23-90f7-4c8b-ba75-485b04bf4225_200x200.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-11-09T15:01:45.068Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fceaac0f-449f-4621-a738-c5ff0c835d6e_1024x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.paulbonneville.com/p/the-rapid-evolution-of-software-engineering&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:150876542,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:3109749,&quot;publication_name&quot;:&quot;Talking with Robots&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!T3_X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></blockquote><p>That was just some context on what I was thinking more than a year ago on GenAI (a term that I don&#8217;t even use anymore) before I reflect on where I am today:</p><h2>My Turn</h2><p>Last May I found myself unexpectedly in the job market. In my 30 years as a web and mobile developer, I had never been laid off for any reason. In my case it was a small &#8220;restructuring&#8221; that led to my position being cut (I estimate that a couple dozen of us were let go). I had always counted myself lucky up until that point.</p><p>It took me about 7 months to find my next position. This was for a few reasons, and not exclusively related to the job market.</p><p>First, I&#8217;m over fifty and the market was not in a growth position for software engineers as it was. There were and are a lot of people to choose from.</p><p>Second, I asked each hiring manager what their company and the engineering team&#8217;s positions were on AI and, more specifically agentic coding. I knew I was not taking a job with a company who had no position or a negative position on AI. I was fine with ambiguity like &#8220;we&#8217;re still kicking the tires&#8221;, but &#8220;probably not doing too much as of yet&#8221; was a hard pass for me.</p><p>Third, in my 30 years, I had never taken any sort of sabbatical outside a few minor alternate career explorations. I took some time to think, explore, and put some energy into a side business my wife and I had been slowly growing for a couple of years.</p><p>No matter how you spin it though, I did not think it would take 7 months.</p><p>I thought I was unlucky, but I had gone nearly my entire career without having to deal with unemployment, so I accepted that it was my turn. It was not fun but fortunately, I was financially able to survive it with room to spare. Not unscathed, but not sunk either. Not everyone is in that position.</p><h2>The Upside</h2><p>There was one thing that happened, which it turns out, was not unlucky. Having had a vision and a taste of what agentic coding was and where it was going, I had nothing but time to give the practice my full attention. I have been almost exclusively coding with Claude Code since July of 2025. Today, I fall squarely into the &#8220;I have not written a line of code&#8221; camp on all my personal projects.</p><h2>It Very Much Is the Reason</h2><p>There are two types of posts that, today, tell me exactly where people are at with their position on AI. The first are the posts where an engineer, CTO, or &#8220;Founder&#8221; declares &#8220;AI can&#8217;t do X&#8221; or &#8220;AI could never do Y&#8221;. I&#8217;ll make no bold assumptions on what or how they were doing things, but for every project or exploration I have tried, the coding agent was able to deliver. Perfection was never the expectation, goal, or result. When a project that would have taken 3 months to deliver with a traditional engineer took a week, bugs or no bugs, how do you think a business is going to react? &#8220;Oh, it has bugs? Might as well keep all these engineers just to be safe.&#8221; Or, &#8220;I already get bugs with all these engineers, so let&#8217;s throw a couple guardrails and tests in and trim the payroll.&#8221; It&#8217;s not a hard decision (moral and ethics notwithstanding).</p><p>The second type of post, which as of this writing is on the rise, correlates directly with layoffs being attributed to AI and efficiency. These posts suggest that AI may be part of the reason, but argue it&#8217;s not the full story. Regardless of the details or the spin, the takeaway is the same: AI is not truly the real reason. I will tell you that it is very much the reason, if not exclusively.</p><p>As someone who has been fully in this agentic coding world since the full public release of Claude Code in May of last year, using it across languages, platforms and stacks, including a few I have never used, agentic coding is very much a reason that companies are laying people off, at least the smart ones that have had anything near the experience I have had with the technology.</p><h2>Many More on the Way</h2><p>I may follow up with all of my &#8220;proof&#8221; but at the moment, I just want to capture my position, not document the reasoning. This is moving so fast, that in the next several months, any need to provide justification for my thinking will be absolutely moot as proven out in the industry.</p><p>If you look at my resume, you can see I&#8217;ve been doing this a while, nearly exclusively, for my professional career. There is no putting the genie back in the bottle, no putting the cat back in the bag. The die is cast, the ship has sailed, and every other poorly aligned metaphor I can pile on here applies.</p><p>When I thought I was unlucky, I realize now that I wasn&#8217;t. Getting laid off gave me the time to practice agentic coding full time, and like any other skill, it takes time and repetition to become effective at. That head start put me ahead of a sea change in engineering that is now here, one that many engineers are only beginning to see. The layoffs are real, and I am of the mind that many more are on the way.</p><p>To be clear, even with a head start, I don't think that puts me or my career in the clear. Things are weird and incredible at the same time. It is part of the reason I've headed back towards my love of the world of embedded electronics and the like. Robotics might be calling my name a bit as well (weed killing laser robot anyone?) :)</p>]]></content:encoded></item><item><title><![CDATA[Looking for "Neemee Notes" Beta Testers]]></title><description><![CDATA[A web-based, universal note repository: Your notes, your data, across every AI tool you use]]></description><link>https://www.paulbonneville.com/p/looking-for-neemee-notes-beta-testers</link><guid isPermaLink="false">https://www.paulbonneville.com/p/looking-for-neemee-notes-beta-testers</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Mon, 10 Nov 2025 20:14:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3CkX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>TLDR: I built Neemee Notes, a lightweight notes app as an alternative to Google Docs or Apple Notes that also lets you clip web content to reduce browser tab clutter. The kicker is that you can access your notes across multiple AI tools (Claude, ChatGPT, Gemini, etc.), so no more scattered notes and documents across different AI platforms. Looking for beta testers to help work out the bugs before launch. <a href="https://neemee.app">Sign up for beta access here</a>.</h4><div><hr></div><p>In this week&#8217;s issue of DeepLearning.AI&#8217;s <a href="https://www.deeplearning.ai/the-batch/issue-326">The Batch newsletter</a>, Andrew Ng hit on something that&#8217;s been on my mind as the big AI companies fight to pull you into their proprietary ecosystems: </p><blockquote><p><em>&#8220;AI agents are getting better at looking at different types of data in businesses to spot patterns and create value. This is making data silos increasingly painful. This is why I increasingly try to select software that lets me control my own data, so I can make it available to my AI agents.&#8221;</em></p></blockquote><p>That quote perfectly captures why I&#8217;ve been building <a href="https://neemee.app">Neemee Notes</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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><h2>The Problem with AI Tool Data Silos</h2><p>We&#8217;re all using multiple AI tools now. Claude, ChatGPT, Gemini, and more. But here&#8217;s what&#8217;s happening: you do research in one tool, compile a list in another, get a second opinion somewhere else, and suddenly your valuable work is scattered across different proprietary environments. You don&#8217;t really own it, you can&#8217;t easily move it around, and you&#8217;re basically at the mercy of whatever company happens to host that particular AI tool.</p><p>That&#8217;s not sustainable, especially as we move toward a future where AI agents become more central to how we work. This is part of why I built Neemee Notes, a web-clipping, lightweight notes app for the web.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3CkX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3CkX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 424w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 848w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3CkX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png" width="1456" height="1014" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1014,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:476605,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.paulbonneville.com/i/178310404?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.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_!3CkX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 424w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 848w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 1272w, https://substackcdn.com/image/fetch/$s_!3CkX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F134da37f-1c55-4f6f-bc48-0631cfbb549c_2458x1712.png 1456w" sizes="100vw" loading="lazy"></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></figure></div><h2>What Neemee Notes Does</h2><p><a href="https://neemee.app">Neemee Notes</a> is my approach to a solution for this growing data ownership problem. It&#8217;s a web-based app that gives you one central place for all your curated content, with three core capabilities:</p><p><strong>1. Web Clipping That Actually Works</strong><br>Highlight text your are interested in saving on any webpage, tap the &#8220;Post to Neemee&#8221; bookmarklet in your browser, configure your note, tap save, and you&#8217;re done. The content and the web link are now saved to your notes collection. No more keeping 20 read-it-later tabs open or emailing articles to yourself just to lose them in the clutter. You text is saved, as is the link to the source you captured it from. I built Neemee originally because I was constantly finding articles and job posts I wanted to reference later for social media or research.</p><p><strong>2. True Data Portability</strong><br>Everything is saved as <a href="https://www.markdownguide.org/">Markdown</a>. If you don&#8217;t know what that is, just know it&#8217;s the format most AI tools use for text output. This means you can copy, paste, or download your content anytime from Neemee without dealing with proprietary formatting like Google Docs. Your data stays flexible and accessible.</p><p><strong>3. Cross-AI Tool Integration</strong><br>This is the BIG one. Neemee integrates with many AI tools through <a href="https://modelcontextprotocol.io/docs/getting-started/intro">Model Context Protocol (MCP)</a>. Any AI tool that supports MCP <em>should</em> be able to connect to your Neemee notes (the tools I&#8217;ve tested are <a href="https://neemee.app/docs">here</a>, but they are changing often, breaking things along the way). You can say &#8220;Create something in Neemee notes&#8221; in Claude, then hop over to ChatGPT and say &#8220;Pull down that note I just created so we can work on it together.&#8221;</p><p>I personally use Neemee across Claude Desktop, Claude Code, ChatGPT, and Codex CLI. The point is that your curated data remains yours and works everywhere.</p><h2>The Agentic Coding Experiment</h2><p>Here&#8217;s what makes this project especially interesting for me: I built <a href="https://neemee.app">Neemee Notes</a> almost entirely using agentic coding tools, specifically Claude Code, with Codex and Github Copilot as supplemental assistants. Now, I&#8217;m a senior software engineer with experience across stacks and cloud platforms, so this wasn&#8217;t complete &#8220;vibe coding,&#8221; but I purposefully limited my hands-on interaction with the code to see how far these tools have come.</p><p>Neemee Notes itself is the experiment. It&#8217;s my test to see if agentic tools can produce code quality good enough for a stable production app. The results have been promising, but not perfect. But this experiment is really just getting started.</p><div class="pullquote"><p>I do want to highlight that I am loosely emulating much of what I am seeing in the AI-forward business model that the folks at <a href="https://every.to">Every</a> are evolving with their growing suite of applications. Building production apps with smaller teams that leverage agentic coding is a reality that they are proving and iterating on daily.</p></div><h2>Why This Matters Now</h2><p>I fully believe the future of interacting with our data isn&#8217;t about clicking through apps and mobile interfaces. It&#8217;s about voice and conversational interaction with AI agents. But for that future to work, we need robust tools that let you manage your data in one place while keeping it compatible across different AI systems. It is also paramount that these interactions remain simple, without bloated UI&#8217;s with lots features and button, so that our primary interactions can be boiled down to simple commands. </p><p>Neemee Notes doesn&#8217;t try to manipulate your data with AI. At the moment, it has <strong>no</strong> AI functionality at all. It&#8217;s purely about giving you control over your information so you can use it with whatever AI tools you choose. I do have plans for personal knowledge management features and graph database capabilities, but that&#8217;s phase two or three, depending on whether people find value in this foundational approach.</p><h2>How It&#8217;s Different from Existing Tools</h2><p>Andrew Ng mentioned <a href="https://obsidian.md/">Obsidian</a> in his newsletter, which is a fantastic app that does many similar things. But I&#8217;m trying to make Neemee even simpler. I don&#8217;t want large feature sets that complicate the core use case (for me). I also don&#8217;t want the data stored locally on personal devices because I need it accessible across all my tools and devices by default. I&#8217;ve lost files that way before, so cloud-based with full export capability is my preference. Think of it as a very simplistic version of Obsidian specifically designed for the multi-AI tool world we&#8217;re living in now.</p><h2>Looking for Beta Testers</h2><p>This brings me to why I&#8217;m writing this post: I&#8217;m looking for beta testers to help me work out the bugs and see if there&#8217;s real value here that people want to use.</p><p>If you&#8217;re juggling multiple AI tools, frustrated with data silos, or interested in seeing what agentic coding can produce, I&#8217;d love to have you try Neemee Notes and give me feedback.</p><p><strong>Interested? Here&#8217;s how to get access:</strong><br>Visit <a href="https://neemee.app">https://neemee.app</a> and click on the &#8220;Request Beta Access&#8221; link and I will send you an invite (timing may depend on the volume of interest, but I will likely send out your invite within a day or two). <br><br>This is the first round of testing that is happening outside of my own happy-path flows that I&#8217;ve been going through as a developer and my basic suite of tests, so there will be bumps, but if you are feeling adventurous, jump on in and sign-up!</p><p>Neemee Notes is my attempt to solve a problem that I think we&#8217;re all going to face more and more as AI tools become central to how we work. Your data should be yours, and it should work everywhere you need it.</p><div><hr></div><p><em>The full quote from Andrew Ng that inspired me to finally write this post and start Beta Testing:</em></p><blockquote><p><em>&#8220;AI agents are getting better at looking at different types of data in businesses to spot patterns and create value. This is making data silos increasingly painful. This is why I increasingly try to select software that lets me control my own data, so I can make it available to my AI agents...</em></p><p><em>...P.S. As an individual, my favorite note-taking app is Obsidian. I am happy to &#8220;hire&#8221; Obsidian to operate on my notes files. And, all my notes are saved as Markdown files in my file system, and I have built AI agents that read from or write to my Obsidian files. This is a small example of how controlling my own notes data lets me do more with AI agents!&#8221;</em></p></blockquote><p><a href="https://www.deeplearning.ai/the-batch/issue-326">https://www.deeplearning.ai/the-batch/issue-326</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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 AI Coding Perception Gap]]></title><description><![CDATA[Why Your 6-Month-Old Opinion May Need an Update]]></description><link>https://www.paulbonneville.com/p/the-ai-coding-perception-gap</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-ai-coding-perception-gap</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Tue, 21 Oct 2025 02:26:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spoken with people from various organizations over the past several months as part of my job hunt, and there&#8217;s definitely no consensus on what &#8220;AI Coding&#8221; looks like from an implementation standpoint within organizations. I&#8217;ve heard more than once that &#8220;it can&#8217;t do X very well...&#8221; from folks who may have formed that opinion 6 months ago and decided to shelf further exploration until the technology matures.</p><p>If you wait a year, IMO you&#8217;ll be too late if you have any competitors in your business domain. AI coding is as much of a mindset as it is a modification of status quo software engineering.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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>From my experience as a senior, staff level engineer, coding with AI agents very much can do &#8220;X&#8221; in many cases, though certainly not all. And when it doesn&#8217;t do X well currently, I&#8217;ve found you can often guide it to better results. The technology continues to improve rapidly.</p><p>I&#8217;ve been doing extensive AI coding over the last several months (Anthropic <strong><a href="https://www.linkedin.com/feed/#">Claude</a></strong> Code, <strong><a href="https://www.linkedin.com/feed/#">OpenAI</a></strong> Codex CLI), including working on my own web-based &#8220;mini Google Docs replacement&#8221; service that lets you bring your own notes in and out of ChatGPT, Claude Desktop, Claude Code and Codex via MCP so that you always maintain control over your own work.</p><p>Purposefully, I have not touched a line of code in that project to see if I can bring it all the way to production without significant intervention with manual coding.</p><p>But stepping back from the specific &#8220;production level code&#8221; end product, if you&#8217;re A/B testing features with test groups, AI coding speeds up the iteration process for product teams considerably. If it is a POC or MVP, a little imperfection in the code is fine as long as you have guardrails that cover you and security and basic performance. You can put those in place and build some of that into automated PR reviews.</p><p>While the jury may still be out on the production viability of a 100% AI coded app, adapting our thinking around the evolution of coding seems increasingly important.</p><p>Anecdotally, the piece by <strong><a href="https://www.linkedin.com/feed/#">Ethan Mollick</a></strong> that I read that inspired this post, is on the money:</p><div class="pullquote"><p><a href="https://www.linkedin.com/posts/emollick_there-are-at-least-a-dozen-models-of-developers-activity-7385844996261990400-271T">The lack of a consensus about how to reconstruct coding workflows around AI isn't helping. This same issue will soon plague every enterprise discussion as "using AI" can stand-in for "having a dumb model do the work," or "having a smart model do the work," or "using co-intelligence along with an expert."</a></p></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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[Random thoughts on Engineering Hiring Strategies during Generative AI Proliferation]]></title><description><![CDATA[Today&#8217;s passing thought:]]></description><link>https://www.paulbonneville.com/p/ramdom-thoughts-on-engineering-hiring</link><guid isPermaLink="false">https://www.paulbonneville.com/p/ramdom-thoughts-on-engineering-hiring</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Fri, 03 Oct 2025 18:30:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today&#8217;s passing thought:<br><br>Many software engineering jobs are moving back closer to company headquarters, which is shrinking their talent pool options geographically again. From what I&#8217;ve seen job hunting over the past several months, this shift is real. Positions that used to be remote are increasingly listed as in-office or hybrid only. Many of the remote positions I see are ones that are continuously reposted. More than 50% of the positions I saw when I started my search are still up and being reposted weekly or monthly.<br><br>At the same time, there&#8217;s another trend pulling in a different direction: AI adoption is creating a divide within engineering teams. Whether it&#8217;s for coding assistance or business applications, organizations and engineers are split into two camps. Some are fully embracing the technology and see it as the future, while others are skeptical about its value and resist the change entirely.<br><br>As someone who&#8217;s all-in on AI and has been talking with engineering leaders during interviews, I can tell you there&#8217;s no consensus on strategy. One of my primary questions during interviews has been to ask about a company&#8217;s general AI position and or strategy. The responses I get are all over the map. Some say &#8220;if you&#8217;re interested in AI, this is probably not the position for you&#8221; while others want &#8220;AI forward engineers with 2 years experience building LLM backed applications.&#8221; <br><br>There is a big gap between those two positions that in my mind are clinging to traditional software engineering hiring strategies. From my perspective, to not have an active AI strategy is not good nor is saying &#8220;we only want people with experience with these specific tools&#8221;. <br><br>Generative AI, whether for coding or delivering business value through automation or novel products, is not about code or tools. It is about learning quickly and focusing on application of this new-ish technology in ways that deliver measurable business value. Both coding and AI applications require a different mindset and the time to experiment. &#8220;We don&#8217;t use AI&#8221; and &#8220;we want people who already have experience&#8221; both miss what I am speculating is the right balance for a digital strategy that will have legs over the next few years.<br><br>My point here, if there is one, is that I do not envy the position that the hiring managers are in right now. A list of must-know technologies and desire for engineers who want to work outside of their lane via AI empowerment makes for a near impossible candidate technical evaluation process :)<br><br>Strange days for sure...</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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["FOMO is the Mind Killer"]]></title><description><![CDATA[There's real pressure to stay on top of every new AI tool and technology. It can be demoralizing.]]></description><link>https://www.paulbonneville.com/p/fomo-is-the-mind-killer</link><guid isPermaLink="false">https://www.paulbonneville.com/p/fomo-is-the-mind-killer</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Thu, 14 Aug 2025 22:28:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tKdJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.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_!tKdJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tKdJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tKdJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2611449,&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://www.paulbonneville.com/i/171011016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.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_!tKdJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tKdJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c66ff03-9d38-42fd-b93e-69b01c65e959_1024x1024.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"><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></figure></div><p></p><p>Whether you're in engineering, marketing, design, or any other field, we feel the need to evolve our workflows to adopt AI tools, learn to build AI-powered applications, and somehow track every breakthrough that happens seemingly daily if we want to stay relevant.</p><p>Coming from experience, trying to stay on top of all these tools will absolutely slow you down. My pro tip this week: drop the FOMO and focus. Not on a tool per se, but how to use generative AI in general. That means learning how to "talk" with these models to get them to do things that bring direct and immediate value to you and/or your job&#8212;whether that's getting AI to draft proposals, analyze data, create designs, or write code.</p><div class="pullquote"><p>My pro tip this week: drop the FOMO and focus.</p></div><p>We're dealing with a whole new dynamic here. Generative AI creates tools and apps that create even more tools and apps. The pace is unlike anything we've seen before. You master one framework or tool, and three more have already launched. It's not sustainable to chase everything.</p><p>To boot, the barriers to creating with AI are dropping so fast that competitive advantages disappear quickly. What takes you weeks to build, someone else might recreate in days. Yes, you can crank out work a lot faster with these tools growing in numbers and capability by the day, but so can everyone else.</p><p>Rather than letting FOMO drive your decisions, focus on what actually makes your work better. Pick the tools that solve real problems for you. Build genuine expertise instead of surface-level familiarity with dozens of platforms. The fundamentals still matter more than knowing every new tool that drops.</p><p>Learn how to talk to these tools, using your words, to get them to do things. Focus on that skill above all else. Find a tool that gives you the most mileage to that end and lean into it.</p><div class="pullquote"><p>Learn how to talk to these tools, using your words, to get them to do things. </p></div><p>As an engineer, for me it is has been the Anthropic ecosystem and <em>Claude Code</em> specifically, and I've been leaning in for a couple of months. Not to the exclusion of the other generative AI players, but focusing in one space for a while have been immensely productive for me.</p><p>I've gained a clear vision for what I believe the future of software engineering work will look like in a year...and it's about clear and concise communication, not just coding syntax mastery. <br><br>It&#8217;s your words that matter more than the code you can write.</p>]]></content:encoded></item><item><title><![CDATA[The Expert Generalist in the age of Generative AI]]></title><description><![CDATA[Silo Bridging, AI Coding Tools, and the Case for Generalists]]></description><link>https://www.paulbonneville.com/p/the-expert-generalist-in-the-age</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-expert-generalist-in-the-age</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Tue, 29 Jul 2025 17:04:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hYgh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have always been a "t-shaped generalist" when it comes to software engineering. I have deep technical roots in a few areas, but a broad swath of shallow knowledge and experience across many other domains.</p><p>That breadth has always been a strength, but it hasn't always fit neatly into traditional roles at the companies I&#8217;ve worked for. More so because most organizations are not quite sure how to capitalize on it, combined with the fact that I was not necessarily that successful at selling that skillset.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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>This is part of why I've been so bullish on AI-assisted coding. I know the fundamentals of most technologies that are technically "outside my lane," so being able to tap into a more efficient way to both answer questions and implement those technologies I am still learning has been sped up exponentially.</p><p>That was the preamble. Now I&#8217;m going to shamelessly self-promote this <em><a href="https://martinfowler.com/articles/expert-generalist.html">Expert Generalist</a></em><a href="https://martinfowler.com/articles/expert-generalist.html"> article</a> co-authored by Martin Fowler with Unmesh Joshi and Gitanjali Venkatraman that promotes the Expert Generalist concept since I now know that I am one. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hYgh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hYgh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hYgh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1830021,&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://www.paulbonneville.com/i/169579537?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.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_!hYgh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!hYgh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdae4f082-bb83-47c4-9464-633ea32f14e3_1024x1024.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"><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></figure></div><p></p><p>I won&#8217;t spoil the article (go read it), but one theme in the piece highlights the value of software engineering generalists when it comes to breaking through vertical siloes within organizations:</p><blockquote><p><em>"The ability to see complex systems across their full breadth can be essential when things go wrong. Faults are often not in the depth of a single technology, but in the implicit interactions between them. If specialists can't see the whole picture, they easily miss what falls between the gaps."</em></p></blockquote><p>One of the larger projects I worked on in my last role fits that description precisely.</p><h2>Vindication!</h2><p>Last week I wrote a piece on this Substack called "<a href="https://www.paulbonneville.com/p/breaking-down-engineering-silos-with">Breaking Down Engineering Silos with AI Coding Tools: DevOps</a>" where I posited:</p><blockquote><p><em>"AI coding assistants like Claude Code aren't just transforming how we write code; they're enabling silo bridging between traditionally separated engineering functions. For mobile and frontend engineers who've been focused on their platforms, these tools provide a gateway to understanding infrastructure concepts and handling routine tasks that would otherwise require immediate DevOps assistance."</em></p></blockquote><p>Martin&#8217;s article presented the following observation which completely aligns with my own experience and that quote from my piece:</p><blockquote><p><em>"Large Language Models and tools based on LLMs are growing in prominence. We've observed that Expert Generalist capabilities are considerably more valuable with these LLMs. The relationship between Expert Generalists and LLMs is often similar to that between Expert Generalists and specialists in a team. Similarly to a specialist, an LLM can rapidly answer questions that an Expert Generalist will have when working in a new domain. This significantly lowers the barrier for exploring completely new and unfamiliar tools, offering a quick way to get started."</em></p></blockquote><p>Could not agree more.</p><p>Here&#8217;s to the rise of the <em>Expert Generalist</em> in the age of generative AI. I&#8217;ve found my codified place in the world.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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[Breaking Down Engineering Silos with AI Coding Tools: DevOps]]></title><description><![CDATA[TLDR: I experimented with how Claude Code interacts with cloud platforms like GCP and AWS to speed up generative AI experimentation when PaaS is not an option.]]></description><link>https://www.paulbonneville.com/p/breaking-down-engineering-silos-with</link><guid isPermaLink="false">https://www.paulbonneville.com/p/breaking-down-engineering-silos-with</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Wed, 23 Jul 2025 18:42:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dUYp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI coding assistants like Claude Code aren't just transforming how we write code; they're enabling silo bridging between traditionally separated engineering functions. For mobile and frontend engineers who've been focused on their platforms, these tools provide a gateway to understanding infrastructure concepts and handling routine tasks that would otherwise require immediate DevOps assistance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dUYp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dUYp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dUYp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/caab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1676258,&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://www.paulbonneville.com/i/169070307?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.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_!dUYp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!dUYp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaab231f-2edf-4b1b-959c-d3e60f9a3e80_1024x1024.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"><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">Bridging the engineering silos</figcaption></figure></div><p>This isn't about replacing DevOps expertise but enabling collaboration across the full stack. When mobile and frontend engineers understand infrastructure decisions, DevOps engineers can focus on architecture and optimization rather than routine tasks. From my perspective, this makes teams more effective, especially when DevOps designs appropriate guardrails that let other engineers contribute safely without risking production systems.</p><p>For the past month, I've been experimenting with an important question: How effectively can AI coding tools help non-DevOps engineers manage cloud infrastructure, including complex tasks like cost optimization? The results have been intriguing enough to share and suggest there's real potential worth exploring further.</p><h2>What AI Can and Can't Do</h2><p>To be specific about the silo bridging I'm describing: AI tools show real potential for helping with routine infrastructure tasks like resource provisioning, basic monitoring setup, and cost optimization through configuration adjustments. However, they don't replace the deep expertise needed for designing fault-tolerant systems, implementing security best practices, handling complex networking scenarios, or making architectural decisions that affect system reliability at scale.</p><p>Think of it this way: AI tools help application engineers speak enough "infrastructure" to have meaningful conversations and handle day-to-day tasks, while DevOps engineers remain essential for the strategic decisions that keep systems secure, scalable, and resilient.</p><p>This infrastructure literacy addresses a common organizational challenge: engineers who don't understand their infrastructure often write code that ignores resource consumption and scaling costs. Minor inefficiencies can become expensive at scale. AI tools help non-DevOps engineers see these connections, creating a culture where everyone considers their code's downstream impact, reducing both DevOps monitoring burden and costly surprises.</p><h2>The Experiment</h2><p>I set up Claude Code with AWS and GCP CLI tools and used it to:</p><ul><li><p>Provision infrastructure for various projects (FastAPI apps, Neo4j databases, n8n workflows) using GCP services like Cloud Run, Compute Engine, Cloud SQL, Cloud Secret Manager, and Terraform, plus AWS services like SES for email routing</p></li><li><p>Troubleshoot deployment issues</p></li><li><p>Analyze and optimize cloud costs</p></li><li><p>Configure appropriate resources for proof-of-concept deployments</p></li></ul><p>The attached screenshot shows a concrete example: Claude Code helped me identify and resolve a Cloud Run cost issue through iterative resource optimization over just a few days.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5KR1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5KR1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 424w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 848w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 1272w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5KR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png" width="1456" height="788" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1272837,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.paulbonneville.com/i/169070307?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.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_!5KR1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 424w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 848w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 1272w, https://substackcdn.com/image/fetch/$s_!5KR1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b7ca6eb-b3bb-4094-8156-7d531ec705c2_4064x2200.png 1456w" sizes="100vw" loading="lazy"></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></figure></div><p>These experiences taught me valuable lessons about the current capabilities and limitations of AI-assisted infrastructure management.</p><h2>Why This Exploration Matters</h2><p>You might wonder: Why not just use managed services like Render, Heroku, or DigitalOcean? These PaaS offerings are excellent and often the right choice. My goal wasn't to avoid them, but rather to explore how AI tools could help engineers who traditionally work at the application layer understand and manage the infrastructure layer when needed.</p><p>This capability becomes valuable for:</p><ul><li><p>Understanding the full stack to make better architectural decisions</p></li><li><p>Prototyping ideas that require specific infrastructure configurations</p></li><li><p>Debugging issues that span multiple layers</p></li><li><p>Contributing to infrastructure discussions with more context</p></li><li><p>Reducing the communication gap between application and infrastructure teams</p></li></ul><p>From a cost perspective, PaaS solutions work well for focused deployments. However, organizations running hundreds of applications often find that managing their own cloud infrastructure becomes more economical than paying PaaS premiums at scale. For these companies, having engineers who can navigate cloud platforms directly, even without deep DevOps expertise, becomes a significant advantage.</p><h2>Key Insight</h2><p>I'm not a DevOps engineer. I know enough to deploy to production, but infrastructure optimization isn't my specialty. Yet with Claude Code, I successfully managed complex infrastructure tasks that would typically require deeper expertise.</p><p>This experience revealed something important: AI coding tools aren't replacing DevOps professionals. Instead, they're creating opportunities for better collaboration. When engineers from different domains can understand and contribute to infrastructure decisions, it leads to:</p><ul><li><p>More informed architectural choices</p></li><li><p>Better communication between teams</p></li><li><p>DevOps engineers freed up to tackle complex challenges rather than routine tasks</p></li><li><p>Platform engineers who can prototype and validate ideas independently</p></li></ul><p>The result? I've deployed and optimized multiple open-source applications while significantly reducing costs. This demonstrates how AI coding tools are breaking down silos between engineering functions, platforms, and technology stacks, fostering a more collaborative and efficient development environment.</p><h2>The Bigger Picture</h2><p>As AI coding assistants continue to evolve, we're seeing the emergence of more versatile engineers who can work across traditional silos. This doesn't make specialists obsolete; it makes them more valuable. When everyone has basic literacy across domains, specialists can focus on the truly complex problems that require their deep expertise, while routine tasks become accessible to a broader range of team members.</p><p>For organizations, this means more flexible teams, faster prototyping, and better cross-functional understanding. For individual engineers, it means the opportunity to break out of traditional silos and become more effective collaborators.</p><h2>Looking Forward</h2><p>This month-long experiment revealed something crucial for larger corporations exploring AI: when engineers can rapidly provision and optimize infrastructure without waiting for DevOps cycles, the pace of generative AI experimentation accelerates dramatically. Teams can prototype ideas, test hypotheses, and validate AI use cases faster than ever before. In an era where AI innovation speed matters, breaking down these engineering silos isn't just about efficiency; it's about competitive advantage in the race to implement transformative AI solutions.</p>]]></content:encoded></item><item><title><![CDATA[The Evolving Need for AI Engineering and GenAI Adoption Consulting]]></title><description><![CDATA[The tools are here but the educational gap presents an opportunity]]></description><link>https://www.paulbonneville.com/p/the-evolving-need-for-ai-engineering</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-evolving-need-for-ai-engineering</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Wed, 16 Jul 2025 18:30:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>What started as my annual tech stack review has evolved into something bigger: recognizing that <em>AI Engineering</em> isn't just a buzzword. It's a critical need that most organizations haven't figured out yet.<br><br>Amazon's new <a href="https://aws.amazon.com/blogs/aws/introducing-amazon-bedrock-agentcore-securely-deploy-and-operate-ai-agents-at-any-scale/">Bedrock AgentCore</a> platform announced today highlights exactly why this matters. While Big Tech can build powerful AI agent platforms, there's a massive gap between having the technology and actually using it effectively. As <a href="https://www.semafor.com/newsletter/07/16/2025/amazon-helps-businesses-build-an-army-of-ai-agents">this article</a> by Rachyl Jones, a Tech Fellow at Semaphor, puts it: </p><div class="pullquote"><p>The argument from Big Tech executives is that the technology will make workers&#8217; lives easier, so why wouldn&#8217;t they adopt it? That may be true, but it also requires every employee, including the tech-challenged and tech pessimists, to experiment with agents enough to reach their personal aha moment. Education could fill the gap &#8212; imagine training videos or workshops hyper-specific to automating personal workflows &#8212; but that&#8217;s not Amazon&#8217;s job, and many businesses lack the time and bandwidth to create programming.</p></div><p>This is where AI Engineering and adoption consulting looks to me to be becoming and essential practice. Organizations need more than just access to AI tools. They need stewardship, education, and practical guidance on integrating these technologies without disrupting what already works.</p><p>After 30 years in mobile/web/cloud development, I'm finding this intersection of technical expertise and organizational change management aligns perfectly with my own growing interest in helping teams bridge the gap between AI potential and AI reality.</p><p>The tools exist. The education and implementation strategy? That's the real opportunity.</p><h2>Evolving as a Software Engineer</h2><p>The immediate challenge is packaging my skills and passion for building dynamic, sustainable, fact-based systems (fundamental in GenAI) in a way that clearly demonstrates where I can help organizations navigate AI adoption. I can't be the only software engineer evolving alongside the industry while waiting for these new types of roles to crystallize within organizations.</p><p><em>AI Engineering and GenAI Adoption Consulting</em> is the direction I'm defining for myself, even though job boards don't yet reflect what I believe organizations actually need quite yet. "AI Engineer" positions are appearing more frequently, but they typically have requirements like "3+ years delivering generative AI applications" and focus on technical delivery rather than the educational and organizational change management that most companies desperately need. I believe the change management and implementation are two sides of the same coin. You can&#8217;t split them in my opinion.</p><p>The gap is clear: organizations have access to powerful AI tools but lack the expertise to implement them effectively without disrupting existing workflows. That's where the real opportunity lies.</p><p>It's a wild time to be job hunting, but I'm seeing a definitive rise in opportunities that align with what I want to build. The demand is there, even if the job descriptions haven't caught up yet.</p><p>That's actually the best news.</p>]]></content:encoded></item><item><title><![CDATA[The Overwhelming Effect of the Cambrian Bloom in Generative AI]]></title><description><![CDATA[As the pace of change continues to accelerate with software engineering and digital product development, staying grounded is becoming its own kind of strategy. Here&#8217;s where I&#8217;ve landed so far.]]></description><link>https://www.paulbonneville.com/p/the-overwhelming-effect-of-the-cambrian</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-overwhelming-effect-of-the-cambrian</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Tue, 01 Jul 2025 23:45:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ciwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It is not your imagination. It is indeed getting harder to keep up. Whether you&#8217;re a software engineer or someone just trying to make sense of new tools at work, the speed of change in generative AI is overwhelming. New frameworks, services, and entire ecosystems seem to spring up weekly. Even the most experienced technologists are struggling to track what&#8217;s important, what&#8217;s noise, and what&#8217;s already outdated. And I say that as someone who&#8217;s been following this space pretty closely for the past two years.</p><p>My working theory is that the reason it feels so overwhelming is because of the sheer scale of this shift. I get into that scale further down in the post, but the key difference with GenAI is that the technology can help build itself. Generative AI is being used to create more generative AI, which means the tools are now helping build more tools. That recursive nature means the pace of change isn&#8217;t just fast-it&#8217;s accelerating exponentially.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ciwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ciwb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ciwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2826387,&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://www.paulbonneville.com/i/167307760?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.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_!Ciwb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Ciwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21cfdd59-a9ab-4201-a91d-d7da1aa3a723_1024x1024.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"><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></figure></div><p>In October 2024, Thoughtworks released a Technology Radar report that described a "Cambrian explosion" of generative AI tools (<a href="https://www.thoughtworks.com/en-us/radar">https://www.thoughtworks.com/en-us/radar</a>). That is where I first heard the term. The report highlighted a sudden surge in agent frameworks, evaluation tools, guardrails, vector databases, and observability platforms. It compared this moment to the JavaScript framework boom of the mid-2010s, but faster and far more complex.</p><p>Not to split hairs, but I&#8217;m thinking the term <em>Cambrian Bloom</em> might be a better fit here. The term comes from biology, where the Cambrian period saw an explosion of life forms in a short span of time, resulting in rapid diversification and complexity. Bloom suggests not just an explosion, but a flourishing. A diverse, fast-moving ecosystem growing in all directions. Generative AI isn&#8217;t limited to one domain. It&#8217;s reshaping how we build software, create media, do research, and run businesses.</p><p>Before we can fully understand the scale of what's happening with generative AI, it helps to look back at the other major technological shifts that came before it. Each one brought new capabilities, new ways of interacting with software, and entirely new business models. But none of them had the kind of exponential self-propelling growth we&#8217;re seeing now.</p><h2>The PC Era</h2><p>The PC era introduced computing to individuals and laid the foundation for personal productivity software and early desktop tools. It laid the foundation for personal productivity software and early desktop applications. The innovation was significant, but mostly focused on standalone tools. It created a new industry but didn&#8217;t yet connect the world.</p><h2>The Web Era</h2><p>The web era brought connection. With the rise of browsers, websites, and online services, software became global. Businesses could now operate online, and the internet became part of daily life. This shift was more than a new toolset. It changed how we shared, sold, and experienced information.</p><h2>The Mobile Era</h2><p>The mobile era put software in everyone&#8217;s pocket. Smartphones made apps the dominant interface for digital services. The app economy exploded. New business models and personal, always-connected user experiences emerged. Mobile scaled software&#8217;s reach more than ever before.</p><h2>The GenAI Era</h2><p>Now comes GenAI. And unlike previous shifts, this one is recursive. Generative AI is being used to build generative AI. Tools, platforms, and workflows evolve daily. Language is becoming the interface. Developers are moving from UI kits to APIs to prompts to autonomous agents. The Cambrian Bloom isn&#8217;t just about apps. It includes everything that makes them possible, including model infrastructure, safety systems, protocol standards, and evaluation methods.</p><p>In terms of scale, GenAI makes past shifts look small. The PC era brought computing to individuals. The web connected the world. Mobile made it personal and portable. GenAI is everywhere at once. It touches every domain and evolves at a pace that no single person or company can fully wrap their head around.</p><h2>Comparing the Scale of Each Era</h2><p>It can be hard to put this moment into perspective without looking at what came before. Each previous technological shift brought its own kind of disruption, but also had its limits in terms of reach and impact. GenAI isn&#8217;t just a new kind of technology. It operates on a completely different scale than what came before. This table offers a rough, imaginary sense of how each wave compares to the next in terms of influence and growth velocity.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1BF2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1BF2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 424w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 848w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 1272w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1BF2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png" width="728" height="194" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:388,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:50413,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.paulbonneville.com/i/167307760?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.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_!1BF2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 424w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 848w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 1272w, https://substackcdn.com/image/fetch/$s_!1BF2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf895639-cf6e-4ac1-ad13-f4bf6432ad2c_1576x420.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Finding Your Footing</h2><p>The Cambrian Bloom is a helpful way to think about what&#8217;s happening right now. It reflects just how quickly and widely things are evolving. This isn&#8217;t just another wave of innovation. It&#8217;s more like a feedback loop, where tools help create more tools and new systems pop up faster than anyone can keep track. </p><p>If we look back at earlier tech shifts, they all brought big changes, but none moved with this kind of speed or touched this many areas at once. GenAI is changing how we build software, run businesses, and even how we think about work itself. And because it can improve and extend itself, the pace keeps picking up. It&#8217;s a lot to take in. But if we can step back and see the broader shape of what&#8217;s happening, it gets a little easier to find our footing and move forward.</p><p>One of the biggest challenges right now is simply finding your footing. That&#8217;s something I&#8217;ve been working on myself as a software engineer, trying to stay grounded in what and where I spend my time on, while everything shifts so quickly. </p><p>Whether you're leaning into AI or intentionally steering clear, it helps to have a steady point of reference. Something you can return to as the landscape keeps evolving. Reorientation is becoming a skill in itself.</p><p>Borrowing from Apple&#8217;s old tag line, it&#8217;s time to &#8220;Think Different&#8221;.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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[Back in the Market]]></title><description><![CDATA[And Thinking About What&#8217;s Next in Programming]]></description><link>https://www.paulbonneville.com/p/back-in-the-market</link><guid isPermaLink="false">https://www.paulbonneville.com/p/back-in-the-market</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Mon, 19 May 2025 05:55:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/38303aee-92c8-442d-a439-b90ed83e6a23_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An unexpected turn has me back in the job market, looking for new opportunities.</p><p>It&#8217;s certainly a wild time to be job hunting&#8212;both for personal reasons (being 50+ among them) and because the tech hiring climate feels pretty uncertain, at least anecdotally, from what I&#8217;ve been seeing and hearing over the last year or so.</p><p>That said, after nearly 30 years in the web and mobile space, I do feel incredibly fortunate&#8212;this is actually my first experience being directly impacted by any sort of layoff, large or small. To be clear, this sucks, but I've always had a bit of a lemons-to-lemonade starting position when life happens.</p><p>One thing is for sure: I'll be getting a firsthand look at the reality of the market starting... now.</p><h2>Rethinking the Job Search</h2><p>This job hunt is without a doubt going to be a journey. Instead of trying to mold myself to fit specific job descriptions, I'm working on clearly articulating the kind of role that's the right fit for me&#8212;and being transparent about that along the way.</p><p>One of the trickier parts is that the kinds of roles I'm most interested in are still evolving. Some are only just starting to hybridize in a way where the responsibilities I'm after are beginning to show up in the job descriptions (hint: Generative AI-related).</p><p>In thinking about this&#8212;and in answering a former colleague who asked what kind of role I&#8217;m looking for&#8212;I realized two things:</p><ol><li><p>I don&#8217;t want to fall into the &#8220;what ya got?&#8221; mindset that my broad skillset sometimes tempts me into.</p></li><li><p>I&#8217;m mostly focused on roles at organizations that are seriously exploring how Generative AI can be applied impactfully to software engineering, application development, and infrastructure. That&#8217;s where I&#8217;m most aligned and where I believe I can have the most impact.</p></li></ol><h2>Where I&#8217;m Coming From, and Where I&#8217;d Like to Go</h2><p>I'm still narrowing things down, but my core skillset is in mobile iOS development, with broader experience across full stack web, cloud platforms (AWS, GCP), and most recently, GenAI.</p><p>I&#8217;m open to tech lead, solution architecture, or senior IC roles&#8212;ideally somewhere I can combine my mobile and GenAI experience and help shape where things are headed in that space.</p><p>In my last role at <em>The New York Times </em>(it&#8217;s my last week as of the time of this writing), I helped co-organize an internal AI Community of Practice focused on implementation, governance, and knowledge sharing around Generative AI and LLM-backed application development. I was part of a small group exploring how these technologies could reshape software development (think coding assistants) and application architecture at an organizational level. We helped teams explore and evaluate stack components and options for GenAI-backed systems, and the company was actively investing in shared learning to prevent siloing.</p><p>It&#8217;s important to me to continue this kind of work&#8212;whether it&#8217;s embedded directly in a role or as part of a collaborative contribution. I want to be part of the conversation about what&#8217;s next, and ideally help shape it. </p><p>&#8220;Why,&#8221; you ask?</p><h2>A New Abstraction Layer: Programming in Natural Language</h2><p>Software engineering is experiencing a paradigm shift as natural language becomes the newest and most accessible level of abstraction in the long evolution of programming. From early machine code and assembly language to higher-level procedural and object-oriented languages, each leap in abstraction has expanded who can build with code. Now, natural language interfaces are opening the door even wider, lowering the barrier to entry for non-programmers while still requiring experienced engineers at the helm to guide, validate, and shape the systems being created (for the moment...).</p><p>This moment marks a profound transition&#8212;not just in tools, but in who gets to participate, and how. We&#8217;re in the early days of watching programming shift from a domain-specific languages to a more conversational one, and with that comes enormous opportunity, but also a need for stewardship. </p><p>This is where I believe I can help.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Talking with Robots! 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 Rapid Evolution of Software Engineering in the GenAI Era]]></title><description><![CDATA[My GenAI learning journey gets more philosophical by the week.]]></description><link>https://www.paulbonneville.com/p/the-rapid-evolution-of-software-engineering</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-rapid-evolution-of-software-engineering</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Sat, 09 Nov 2024 15:01:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fceaac0f-449f-4621-a738-c5ff0c835d6e_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Diving into a new software technology without established norms, while keeping up with a rapidly evolving release cycle, can make this field feel almost impossible to learn. What you learn today may be obsolete within a month&#8212;a drastic reduction from the typical year-long stability we used to expect with both open source and proprietary software. Previously, you learned your framework or SDK updates over the year, used them (or wish you had a reason to), and repeated that cycle again the following year. That paradigm is now constantly changing. How do you build an engineering practice in this environment?&nbsp;</p><p>It's nearly impossible to imagine how, as an engineer, you'll be able to do your job in the coming years <em>without</em> leveraging GenAI. You'll need an AI assistant to help keep you up-to-date and informed on software development trends based on your personal preferences and domain, and this completely glosses over the fact that you'll be using a copilot in your day-to-day programming workflows. </p><p>This focus on information wrangling is the foundation of my GenAI learning journey. In previous posts, I've talked about trying to define the LLM-backed App Stack I wanted to use, but it's clear we're moving into a world where these stacks are far more dynamic, composable, and adjusted based on the specific business problem a GenAI application aims to solve. You can't throw a predefined stack at these types of applications, that much has become clear. </p><p>If I can't learn a predefined stack like before, what does the new approach to application development look like?</p><p>Ultimately, That question is what I am working on and it is really baking my noodle. The good news is that I love these types of meta problems and I&nbsp;know where to start now.</p><h2>The Diminishing Value of Syntax Mastery</h2><p>The days when a developer could rely on a tutorial or technical article to accomplish a task in a particular language and expect it to stay relevant and useful for months or years are fading fast. Chunks of syntax and example code have less utility now. Coding copilots provide them right out the gate. A focus on memorizing or mastering syntax is likely to have a diminishing value as natural language slowly becomes the next highest level abstracted language in our programming toolbox.</p><h2>The Shift to Problem-Solving Over Syntax</h2><p>Engineers who love syntax and semantics will find themselves increasingly vulnerable in the years to come compared to those who thrive on tackling complex problems that require deeper algorithmic and systems thinking. The rise of natural language as an abstract programming interface emphasizes the need for engineers to shift their focus from syntax mastery to more creative problem-solving.</p><p>Leveraging GenAI effectively requires learning to interact with various Language and Multimodal Models, each with unique strengths and weaknesses, not unlike working with people with diverse skills and personalities. The rapid evolution of GenAI tools is reshaping the skill set required for software engineers, demanding a combination of technical depth, adaptability, and a preternatural love for continuous learning. From what I am seeing, engineers should prioritize developing skills and workflows that enable effective collaboration with advanced AI tools to remain competitive in the evolving job market over the next couple of years.</p><h2>Interesting&#8230; So Now What?&nbsp;</h2><p>Next week, I plan to use <a href="https://colab.google">Google Colab</a> with <a href="https://www.langchain.com/langgraph">LangChain's LangGraph</a> as my orchestration layer to experiment with different LLM capabilities in an interactive notebook environment.&nbsp; Colab has Gemini available as a GenAI coding assistant, which will help speed up my learning since it is not an environment I&#8217;ve worked with yet (I usually skip the hands-on portions of the tutorials I&#8217;ve been watching).</p><div><hr></div><h2>The Meta Meta</h2><ul><li><p>My posts will never delve into coding specifics, as the internet is already full of those. Instead, they're about the refactoring of my own coding and architecture skills, including some significant mental rewiring in how I think about software engineering in this new GenAI era. </p></li><li><p>I also hope that the tools and frameworks I mention along the way could be valuable if you're on your own GenAI learning journey. If nothing else, if you haven't heard of some of the things I talk about, you can go kick the tires on your own.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Highest Level of Abstraction! Subscribe for free.</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[Learning, Understanding, and Managing Knowledge for LLM-Backed Application Development]]></title><description><![CDATA[I am learning about GenAI while building out a schema for all the components involved in these types of application at the same time. A true case of "building the plane as it rolls down the runway"]]></description><link>https://www.paulbonneville.com/p/learning-understanding-and-managing</link><guid isPermaLink="false">https://www.paulbonneville.com/p/learning-understanding-and-managing</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Tue, 29 Oct 2024 05:12:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pn9u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my last post, I explored how I'm trying to speed up my learning in Generative AI (GenAI) development by using high-abstraction tools, such as visual workflow builders and low-code/no-code platforms. These tools simplify the process by allowing me to focus on building functionality without getting bogged down in lower-level coding tasks, enabling faster prototyping and experimentation. They also help me concentrate on the overall approach to solving a business problem, rather than getting lost in the syntax and semantics of different tools. To be clear, I'll still dive into lower-level coding when needed, but for now, I'm focused on skipping boilerplate and configuration coding.</p><p>I've started experimenting with <a href="https://n8n.io/">n8n</a>, a low-code workflow automation tool, to create workflows that automate email newsletter content parsing, summarization, and named entity extraction (my GenAI "Hello World" project, as it were). Through this process, I've found that n8n does indeed work well as a playground for my LLM experiments. Instead of focusing solely on specific implementations of the various technologies in a tech stack, I'm using n8n to directly engage with different LLMs and determine which can consistently extract and summarize content from email newsletters. This shift allows me to streamline my approach while learning the capabilities of a wide array of LLMs in practical hands-on scenarios.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Highest Level of Abstraction! 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><h2><strong>Information overload</strong></h2><p>Information overload has been my biggest challenge, so I'm making it a top priority to address. The pace of development in the LLM ecosystem is relentless&#8212;new models, new tools, improved capabilities, and changing costs all make it nearly impossible to manually keep track of the available LLMs. As an engineer learning how to build LLM-backed applications, it's clear that before I even attempt to understand LLM capabilities, I need a system to manage the information about them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pn9u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pn9u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pn9u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:692464,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&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_!Pn9u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Pn9u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d297c7d-1cb2-4f00-8130-1cc0c75bb3a3_1792x1024.webp 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"><strong>Building my &#8220;knowledge&#8221; plane as it is rolling down the runway</strong></figcaption></figure></div><p>That's why I'm pausing my deep dive into specific LLMs to build a knowledge management system that brings information from newsletters, blogs, and community updates directly to me in a digestible form. My aim is to automatically collect, summarize, and organize the latest updates on GenAI and LLMs. Using tools like n8n, I plan to automate this information flow&#8212;ingesting incoming emails, summarizing their contents, extracting named entities, and creating a consolidated daily update for myself. This will serve as my foundation, a steady intake of LLM-related knowledge that will ultimately enable me to make informed decisions on which models to use and when.</p><h2><strong>Abstraction is key</strong></h2><p>Another realization this week is the need for flexibility. Whatever LLM stack I assemble must be able to adapt as new models and better technologies emerge. This means having a way to swap LLMs and other components in and out seamlessly, and using agentic workflows to leverage multiple LLMs, each specialized in its own domain. In practice, this could look like one LLM coordinating tasks while other, specialized LLMs handle more niche functions.</p><p>The journey is not just about understanding what LLMs exist, but also about creating a robust, semi-automated system for tracking and understanding this rapidly evolving landscape. With this foundation, I hoping to be able to  explore LLMs a bit more confidently, knowing I have the information I need to stay on top of developments&#8212;without drowning in the noise.</p><h2><strong>Developing a schema for LLM-backed applications</strong></h2><p>Another focus this week has been developing a schema to outline the essential components needed for building LLM-backed applications. To start fleshing out this schema, I used a couple of resources. The first is an article from Andreessen Horowitz on <a href="https://a16z.com/emerging-architectures-for-llm-applications/">emerging LLM stacks</a> from last year, which provides a detailed overview of the components and data flow involved in LLM-backed systems. I'm also looking at LangChain&#8217;s orchestration tools, specifically their <a href="https://python.langchain.com/docs/how_to/#components">Components</a>, which offer a structured breakdown of the key elements necessary for coordinating tasks within LLM applications.</p><p>By combining these two sources, I&#8217;ve begun developing a more simplified and practical schema to help me (and possibly others) understand and keep tabs on the evolving options for the core components of LLM-backed applications. This schema is still in development, but I'll share more details in a future post.</p><div><hr></div><h2><strong>The meta-meta</strong></h2><p><em>Ongoing reflections on GenAI-assisted learning and writing, "learning in public," and the topic of GenAI application development.</em></p><ul><li><p>This journey of learning and understanding LLM-backed applications is also serving a dual purpose as an exploration of how generative AI can assist in my writing process.</p></li><li><p>Leveraging tools like n8n and various LLMs, I'm working on new ways to enhance my learning workflows, experiment more efficiently, and document my learning in real time. It feels like building a course you want to teach, using content about a technology that was, in some cases, released just a week before. Craziness.</p></li><li><p>I've also started using OpenAI's new Canvas tool to help with the writing process, which has provided an additional layer of support and flexibility in drafting and refining my ideas.</p></li><li><p>The rapid change in this field of software development&#8212;both in the tools used to build applications in general and in the stacks for building LLM-backed applications&#8212;is moving so fast that by the time I finish an article, my thinking has already evolved. It's a bit of insanity... but the kind I fortunately love.</p></li><li><p>These reflections will continue to evolve as I build out this larger body of work in this Substack, sharing both the challenges and the innovations that emerge along the way. I already feel like I need to bump up to yet another higher level of abstraction to keep on top of this field.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.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 Highest Level of Abstraction! 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[Learning Generative AI (GenAI) Development in Public]]></title><description><![CDATA[Join me on an unusual learning adventure as I modernize my software application development skills with natural language and LLMs]]></description><link>https://www.paulbonneville.com/p/learning-generative-ai-genai-development</link><guid isPermaLink="false">https://www.paulbonneville.com/p/learning-generative-ai-genai-development</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Tue, 22 Oct 2024 06:30:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RWTM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before I dive in, there are a few things going on with this Substack to bring you up-to-date on:</p><ol><li><p><strong>I just started this &#8220;Learning Generative AI (GenAI)&#8220; writing project recently.</strong> I&#8217;m a longtime mobile and web developer expanding my skillset into the GenAI space. I&#8217;m still figuring out the Substack community, ecosystem, and the Generative (GenAI) tech content that is already flowing in this space. I had avoided Substack for years, but now that I am here, I don&#8217;t know why. Lots of great content and contributors in this space. I already like it much more than Medium and other <em>swipe swindling, gaze gluing, scroll holing </em>apps (aka social media).</p></li><li><p><strong>I&#8217;m still dusting off my writing skills and starting to use GenAI as a writing tool.</strong> I don&#8217;t need it to tell me what to write, so it is a writing assistant, editor and sounding board for me so far. I also have not tried to define my audience as of yet, but I&#8217;ll stick to working on writing habit for now.</p></li><li><p><strong>I was <a href="https://www.paulbonneville.com/p/the-tech-stack-selection-dance-in">sharing my process</a> for evolving a new tech stack for building LLM-backed apps. </strong>I wasn't building a completely new stack, but instead relying on my trusted methods for selecting the layers of the stack I planned to use for full-stack GenAI app development. Unfortunately, what had once been <em>tried-and-true</em> turned out to be <em>tired-and-blue</em> in this rapidly evolving world of software development that leverages natural language at multiple layers.</p></li></ol><h2>You Are Here</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RWTM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RWTM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RWTM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:586288,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RWTM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!RWTM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2617ac-3e67-4d58-b2d5-7eb2a8a8efe0_1792x1024.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></figure></div><p>Let&#8217;s get oriented on what I&#8217;m writing about.</p><p>My first post laid out the layers of the stack I was considering. The second post started to offer some details as to the <em>what</em> and <em>why</em> of each layer, as well as sharing some of my initial implementation investigations. </p><p>In my first stack layer exploration with a new CMS, I quickly ran into the typical &#8220;not on my machine&#8220; configuration issues that almost always come up whenever diving into new stacks or frameworks. That was expected. But what I quickly realized after spending more time that I wanted on the CMS was that I was starting this GenAI app development learning adventure backwards. I was not working at the highest level of abstraction for my given objective. <em>So that begged the question:</em> What is my primary business objective? <br><br>The primary objective for this learning adventure is to learn how to build LLM-backed applications and services. Does learning a new CMS or web framework get me there? Not directly. Those can come into play down the road. For now I needed a much faster way to prototype some basic workflows or spin up endpoints that execute some GenAI processing, be it text or multimodal.</p><p>That brings us a little closer to where I am today. I did have one more stop to make on my way to where I am today though. That was to kick the tires on <em>no-code / low-code</em> visual AI workflow automation tools. Surely these types of tools will limit the time spent on messing with configuration and cranking out boiler plate code. This would bring me much closer to my objective as I need to be to get moving faster&#8230;or so I thought.</p><h2>New and Shiny Visual AI Workflow Builders</h2><p>I dove right into <a href="https://n8n.io">n8n</a>, a partially open-sourced visual AI workflow building tool, to explore an idea I&#8217;ve been working on for a while. The first step was to create a flow that could directly ingest and parse incoming emails in their raw format. Using n8n, I quickly set up an endpoint to which I forwarded raw emails from SendGrid. I was able to quickly test my flow and watch as the email was successfully received and parsed by a node I had just visually configured. Great!</p><p>Next, I started to work on using an LLM to extract entities and summarize the content of the email. Adding credentials for my OpenAI API account was simple enough. Firing up and configuring an &#8220;Information Extractor&#8220; node was easy as well. I sent another test email, and there it was. My extracted entities and summarization as a JSON Schema formatted output. Bravo!</p><p>Wait&#8230;it made up some names. OK. I swapped the LLM I was using via the node configuration settings and I changed the temperature. Next I tweaked the output format a bit. Hmmm. Totally different response quality. Testing it again tripped the rate limit for the model I have selected.<br><br>Ohh&#8230; Wait a minute. I see the problem.</p><h2>One more level of abstraction</h2><p>The shortest path to learning about LLM app development is by have as limited a set of intermediaries between me and the LLM to get started. Not only that, but I need a way to keep track of what LLM&#8217;s are out there, what they are good at, what their token, context windows, pricing and API rate limits are. And that is just to get started. Are they open source, closed source, open weighted and suited to my app&#8217;s business objective? There will be no LLM apps if I can&#8217;t tackle how to manage all this information about LLMs themselves.</p><p>With the rate of LLM development and releases, this is a significant issue to tackle. When you&#8217;d adopt and learn a new framework in the past, you could count on having almost a year to work with it before you had to learn the new major developments with it. LLMs and the tooling and orchestration layers evolving around them are moving so fast, as an application engineer, how are you supposed to keep up?</p><h2><strong>Managing information overload</strong></h2><p>Effectively managing all this information around LLMs is essential for developing LLM-based applications. Without staying informed about the rapidly evolving landscape of models and their capabilities, you will continually struggle to choose the best option for your application or fail to maintain up-to-date knowledge of LLM trends.</p><p>That is where I&#8217;m at today. I&#8217;m working on a few approaches to these issues from both the hands on standpoint interacting with LLMs as well as the knowledge management aspect. I&#8217;ll come back to those in future posts.</p><p>If you&#8217;re a software engineer or application developer like I am and want join my learning journey, subscribe to stay in the loop.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.paulbonneville.com/subscribe?"><span>Subscribe now</span></a></p><p>If you are someone with experience in the GenAI application development space and have anything to help illuminate the various waypoints on this journey, your input will be greatly appreciated.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.com/p/learning-generative-ai-genai-development/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.paulbonneville.com/p/learning-generative-ai-genai-development/comments"><span>Leave a comment</span></a></p><p></p><p> </p>]]></content:encoded></item><item><title><![CDATA[The Tech Stack Selection Dance in the age of Generative AI]]></title><description><![CDATA[Managing the "Paradox of Choice" and moving towards the highest level of abstraction for GenAI application development]]></description><link>https://www.paulbonneville.com/p/the-tech-stack-selection-dance-in</link><guid isPermaLink="false">https://www.paulbonneville.com/p/the-tech-stack-selection-dance-in</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Wed, 09 Oct 2024 06:49:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/73d8a27d-5f3e-41ff-8f7f-f3542f356aef_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my previous post, <a href="https://www.paulbonneville.com/p/my-yearly-tech-stack-review?r=39hy8m">My Yearly Tech Stack Review</a>, I shared the technologies currently on my radar for exploration and possible use in upcoming personal projects. This year, supporting Generative AI workflows is the core focus that ties together my other choices.</p><p>One of my objectives with this tech stack is to have a modular set of components that I can use at the highest level of abstraction possible. With so many tools and frameworks evolving around Generative AI, my aim is to create a stack that can easily adapt to the rapid changes in the ecosystem&#8212;something both robust and flexible. Ideally, I want a foundation where I can focus more on exploring concepts and less on spending time wiring systems together and learning new syntax and semantics. After all, natural language is essentially the latest programming language.</p><p>I suggested that I felt confident in my research on each layer of the proposed stack, having settled on the final contenders. However, after digging in further, I've reassessing that assertion&#8212;I'll revisit this point at the end of the post. For now, I'll review the stack layers I'm currently working with or planning on using:</p><div><hr></div><pre><code><code>&#128994; Continue &#128308; Stop &#128993; Explore</code></code></pre><h3>Swift</h3><p><em><strong>&#128994; Mobile Development (my bread and butter)</strong></em></p><p>Swift and iOS development is a given no matter where my Generative AI explorations go. It is at the heart of my day job. That being said, <em>Apple Intelligence</em> and the evolution of<a href="https://developer.apple.com/documentation/appintents"> </a><em><a href="https://developer.apple.com/documentation/appintents">Siri Intents</a></em> that will turn apps into <em>Retrieval Augmented Generation (RAG)</em> data sources for Siri is something that I'm keenly interested in exploring more this year.</p><h3>Ruby on Rails</h3><p><em><strong>&#128308; Full-stack Web Development / CMS</strong></em></p><p>This has been my default web stack for nearly a decade, and I've always appreciated its conventions and full-stack coverage. However, the ongoing changes to the JavaScript layer, along with attempts to avoid it, have increasingly become a long-term liability. Now, the approach is to embrace JavaScript, especially since other tools I want to leverage depend on it.</p><h3>Strapi</h3><p><em><strong>&#128993; Headless Content Management System (CMS)</strong></em></p><p>I need a CMS to replace my custom-built Rails solution, and I was looking for one that offers advanced capabilities for managing content hierarchies and more complex relationships. After exploring several options, <a href="https://strapi.io">Strapi</a> checked many of my boxes during the initial review. The fact that it is open source was another influencing factor.</p><h3>Next.js</h3><p><em><strong>&#128994; Web Application Framework</strong></em></p><p>This is my chosen replacement for Ruby on Rails. While there are lots of options available, this one suits my style well. I&#8217;ll also integrate <a href="https://www.prisma.io/orm">Prisma</a> as my new Object Relational Mapping (ORM) layer to help encapsulate data models and database interactions. Additionally, <a href="https://vercel.com">Vercel's</a> (the authors of Next.js) hosting and service add-ons provide a complete end-to-end platform, allowing me to focus on development rather than infrastructure management.</p><h3>FastAPI</h3><p><em><strong>&#128993; Python-based API Framework</strong></em></p><p>I've only worked with Python a bit over the years, so this is mainly an opportunity to revisit it. Given its ubiquity in the Generative AI space, the general exposure has value. While somewhat redundant given Next.js's API capabilities, I found a reference architecture on Vercel's site that allows combining a Next.js app with a FastAPI service within the same codebase, so that should be fun.</p><h3>LangChain &amp; LangGraph&nbsp;</h3><p><em><strong>&#128993; LLM Application Framework &amp; Agentic Workflow Orchestration</strong></em></p><p>For my LLM-backed application development needs, this is where I'll begin. They offer both JS and Python versions, providing flexibility in case I need to integrate tools that may not be supported in both languages.</p><h3>Postgres</h3><p><em><strong>&#128994; Relational Database and Vector Store</strong></em></p><p>I'm not ready to abandon my preference for ORMs and relational databases, so I'll continue using Postgres for now. Since Postgres also has vector store capabilities, I'd prefer to avoid adding another tool and give it a try in this new LLM-backed application space. I'm actually more interested in graph databases and RAG at this point, so I'm hoping Postgres's vector store capabilities will meet my initial needs.</p><h3>Neo4j</h3><p><em><strong>&#128994; Graph database</strong></em></p><p>I haven't yet deeply explored graph databases, but given my experience with highly related data and CMSs, I'm optimistic about their potential utility. Specifically, in the Generative AI space, I'm particularly interested in using Neo4j as my graph database and incorporating it into agentic workflows using RAG.&nbsp;</p><div><hr></div><p>That covers the overview of the core elements of my new proposed stack. The next part is to actually start pulling together the shell of an app that stitches them all together and get it up in the cloud. Before I do <em>that</em> though, my thought was that I should stand up a CMS so I&#8217;ve got a place to keep my content as we hit the ground. </p><h2>The Rubber Hits the Road: Let&#8217;s get building</h2><p>When I initially chose to explore the Content Management System layer from my selected tools first, I quickly realized I might need to reassess my priorities. </p><p>After running into a few issues with library dependencies while setting up the local development environment for Strapi, I had a bit of a reality check. I decided to step back from Strapi and explore some other CMS options, each offering different levels of abstraction from a developer's perspective. I reviewed platforms like Wix, Storybook, Builder.io, and Contentful&#8212;each with its own idiosyncrasies, learning curves, and specific features aimed at different audiences.</p><p>So that begged the question: Does a CMS fit into my desire for a streamlined, abstracted workflow for delivering GenAI backed applications? I do need to manage content, but learning another complicated tool now seems like a distraction. </p><p>Instead of a CMS, I&#8217;m abstracting a level and exploring a low-brow admin interface for Next.js apps. I think <a href="https://next-admin-docs.vercel.app">Next Admin</a> might do the trick. I need to manage basic content at this point, not a full ecosystem of content managers, users and another standalone application. I also came across <a href="https://novel.sh">Novel</a>, a WYSIWYG web editor that, teamed up with a basic admin, lets me handle the basic content needs I&#8217;ve got at the moment.</p><p>Thus ends my first tangible step forward on this adventure. </p><p>I&#8217;ve actually already got a Next.js app fired up with FastAPI swizzled into it along with a Postgres database, all comfy and cozy over on Vercel. I have one more tool to explore before I go full steam ahead, but I&#8217;ll save that for another post.</p><h2>These are not the Tech Blog Posts You Are Looking For</h2><p>I should mention that I don't plan to posting many in-depth articles about the technologies I'm using in my GenAI application development journey. </p><p>I believe that application development is fundamentally changing now, and will grow less and less familiar in the next couple of years. My writing on this site will focus on exploring that shift&#8212;from the syntax and semantics of programming languages to a future where natural language becomes the primary tool for instructing computers to achieve specific business objectives and other desired outcomes.</p><p>This is a massive paradigm shift that is also coming on a wave of research, tools, frameworks and architectural patterns that are being developed and released on a cadence that makes it nearly impossible to keep up as an engineer. </p><p>This is site is my pulling out the surfboard and riding that wave as I enter into the fourth season of my programming career.</p>]]></content:encoded></item><item><title><![CDATA[My yearly tech stack review]]></title><description><![CDATA[I&#8217;m feeling compelled to start writing again, so writing about the programmer part of my life is a pretty easy place to begin.]]></description><link>https://www.paulbonneville.com/p/my-yearly-tech-stack-review</link><guid isPermaLink="false">https://www.paulbonneville.com/p/my-yearly-tech-stack-review</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Wed, 02 Oct 2024 07:36:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2XkY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1111888b-e81f-4ad4-8617-5d6ecd06049e_1260x660.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Two things to know about me before I get started:</em></p><ol><li><p><em>For my day job, I&#8217;m a Staff Software Engineer at the New York Times.</em></p></li><li><p><em>For the other part of my world, I work&nbsp;part-time&nbsp;on my &#8220;retirement business&#8221;,&nbsp;<a href="https://dailygrains.co/">Daily Grains</a>, with my partner in life and business Ashley.</em></p></li></ol><p><em>You will likely be seeing things about tech&nbsp;and&nbsp;bakeries, but not necessarily mixing to the two. But who knows what I&#8217;ll get up to at this point. It&#8217;s too early to say.&nbsp;</em></p><p>Nearly every year that I've been a developer since 1996, I take some time to survey the tech stacks I use as well as investigate any new technologies I am interested in exploring. This year, Generative AI is the central theme that is now at the center of my 2024 investigations.</p><p>I've completed enough research at the time of this writing to have settled on the stack I am digging into. The main goal it to support my typical need for some sort of content management system, an API I can build and expand for managing and processing a lot of interrelated data.</p><p>I plan on writing up a brief post on each item in my new stack as follow up post, but for now, here's the list:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/Hm4iM/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1111888b-e81f-4ad4-8617-5d6ecd06049e_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:526,&quot;title&quot;:&quot;My 2024 Tech Stack&quot;,&quot;description&quot;:&quot;&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/Hm4iM/1/" width="730" height="526" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>I'm actually doing this more for my own benefit at the moment to consolidate my selections and record my reasons for posterity.</p><p>As I mentioned, I'm also trying to start up a writing habit again by making small posts here since centralized social media platforms are the devil's playground. &#128527;</p>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is Talking with Robots.]]></description><link>https://www.paulbonneville.com/p/coming-soon</link><guid isPermaLink="false">https://www.paulbonneville.com/p/coming-soon</guid><dc:creator><![CDATA[Paul Bonneville]]></dc:creator><pubDate>Wed, 02 Oct 2024 06:10:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!T3_X!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff17a416c-53c9-4955-a4a2-850d819f5d7c_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is Talking with Robots.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.paulbonneville.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.paulbonneville.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>