<?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[Tech Ramblings]]></title><description><![CDATA[Mostly wrong opinions about almost anything.]]></description><link>https://techramblings.blog</link><image><url>https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png</url><title>Tech Ramblings</title><link>https://techramblings.blog</link></image><generator>Substack</generator><lastBuildDate>Tue, 08 Sep 2026 09:24:11 GMT</lastBuildDate><atom:link href="https://techramblings.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Julien Delange]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[juli1@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[juli1@substack.com]]></itunes:email><itunes:name><![CDATA[Julien]]></itunes:name></itunes:owner><itunes:author><![CDATA[Julien]]></itunes:author><googleplay:owner><![CDATA[juli1@substack.com]]></googleplay:owner><googleplay:email><![CDATA[juli1@substack.com]]></googleplay:email><googleplay:author><![CDATA[Julien]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Software Isn't the Moat Anymore]]></title><description><![CDATA[AI code writing is reducing the friction/cost to build software products.]]></description><link>https://techramblings.blog/p/software-isnt-the-moat-anymore</link><guid isPermaLink="false">https://techramblings.blog/p/software-isnt-the-moat-anymore</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 15 Aug 2026 22:35:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI code writing is reducing the friction/cost to build software products. Thanks for coding agents, we are soon going to have hundreds or thousands of people in each regions building software products. SaaS will become extremely crowded and it will be harder every day to make a product that gets significant traction.</p><p>The AI wave is ongoing.</p><p>The next wave is robotics.</p><p>The next problem is how we bridge the physical and the digital world.</p><p>The space is new and there is still everything to invent. China is the leader in the robotics space (see <a href="https://www.unitree.com/">unitree</a> or domestic product like <a href="https://us.roborock.com/">roborock</a>) and the US is in desperate needs of a robotics ecosystem. Only a few actors are really pushing some products forward in the USA (Elon with Tesla being top of mind). There is space for thousands of new startups.</p><p>At a time where AI is entering the physical world with so-called &#8220;world models&#8221; (see massive investments in startups like <a href="https://techcrunch.com/2026/03/09/yann-lecuns-ami-labs-raises-1-03-billion-to-build-world-models/">AMI Labs</a>), there is no question that the next big innovations will come from robotics startups and their interaction with sounds, picture or smell through these upcoming models.</p>]]></content:encoded></item><item><title><![CDATA[The Token Pricing Trap]]></title><description><![CDATA[AI application pricing will shift from token pricing to value pricing.]]></description><link>https://techramblings.blog/p/the-token-pricing-trap</link><guid isPermaLink="false">https://techramblings.blog/p/the-token-pricing-trap</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Mon, 03 Aug 2026 00:32:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a2398831-8cca-419d-b806-54e0771eeecc_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today, Anthropic and OpenAI are charging consumers a $20 per month subscription when they charge businesses API prices, which sometimes mean paying more than $1,000 per month for the same value. When you charge one customer $20 and charge the very same customer $1,000 for the same value, it means you are either ripping off one side of subsidize heavily the other. Regardless, it is not economically sustainable.</p><p>The problem is expanding beyond AI providers: any company building an AI product has no idea how to price AI feature. For example, GitHub introduced the concept of &#8220;<a href="https://docs.github.com/en/copilot/concepts/billing/usage-based-billing-for-individuals">AI credits</a>&#8221; where consumers pay (on top of their existing seat) for the tokens they use. The more token you use, the more you pay. But this model is non-sensical and reveals the fundamental flaw everybody falls into. Existing product prices do not depend on the amount of CPU or RAM it uses. Similarly, we should not bill a customer for the amount of GPU (e.g. tokens) used. But nobody know how to price AI products, and the industry decided to bill the amount of tokens used.</p><p>This is a trap: a billing model should be based on the value of the outcome, not on the implementation detail. The user does not care that a product is using GPT-5.6, Opus or Kimi. The user cares about the outcome, regardless of the implementation.</p><h2>Anatomy of an AI Application</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BSR8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BSR8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 424w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 848w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 1272w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BSR8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png" width="505" height="257.7604166666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:672,&quot;resizeWidth&quot;:505,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:null,&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="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BSR8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 424w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 848w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.png 1272w, https://substackcdn.com/image/fetch/$s_!BSR8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f5c1f8-8c78-4678-95ae-4c4c08080037_672x343.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>An AI-enabled application is composed of three layers:</p><ul><li><p><strong>Hardware</strong> (blue on the picture below). there are very few players in the space: Nvidia or Google (with their TPUs) are the most famous and used in the US (Tesla also has its custom chip). The cost of entry is enormous and it takes years to enter this market.</p></li><li><p><strong>Model</strong> (green on the picture below): this is the model that gives an answer based on some inputs and some tools. Frontier labs are known for GPT-5.5, Opus and open-source models are available with Deepseek or Kimi.</p></li><li><p><strong>Application</strong> (red on the picture below): this is what many software companies (e.g. Facebook, Salesforce) are building. At the application layer, it&#8217;s aggregating data and context that is later sent to a model and hopefully provide some value to the end-user.</p></li></ul><p>If you compare this to existing application, the model is the equivalent of what the operating system and libraries/frameworks provide. The hardware was CPU, now, it&#8217;s GPU. Note that in the early days of the internet, there was some hardware lock-ins (who remembers <a href="https://en.wikipedia.org/wiki/Sun_Microsystems">Sun Microsystems</a> and they Sparc CPU architecture and their Solaris Operating System?) but this did not last long.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1X4o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1X4o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 424w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 848w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 1272w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1X4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png" width="1456" height="564" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:564,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120628,&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;:false,&quot;internalRedirect&quot;:&quot;https://techramblings.blog/i/209555456?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.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_!1X4o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 424w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 848w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 1272w, https://substackcdn.com/image/fetch/$s_!1X4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a64b88a-b9e0-4877-b799-4aa25151d716_1686x653.png 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>Note that <strong>only the application layer is visible to the end-user</strong>. <strong>The hardware or software does not matter at all to the end-user</strong> - this is an implementation details: as long as the user has a value, these details are irrelevant.</p><h2>What frontier labs are selling you?</h2><p>Today, frontier labs are selling you a model (green on the figure above) and some GPU time (blue on the model above).</p><p>Each time you make a request to OpenAI or Anthropic, they need to pay for the GPU time spent to serve this request (the blue part in the model). This means building giant datacenters, buying thousands of Nvidia GPUs and paying electricity.</p><p>On top of this, they need to pay for the development of their models (the green part), which means getting the data, building the training data set, building evals.</p><p>To make it simple, when you pay $10 for a few million tokens, some money goes to pay the GPUs used to serve your request (blue) and some money go towards developing new models or pay back the development cost of the model you use (green).</p><p>Frontier labs realized very quickly that this business model is very limited and not sustainable:</p><ol><li><p>any other company will eventually build a new model and replace them. Or even worse: open-source models can completely replace them and users just need to pay the GPUs via their existing cloud providers.</p></li><li><p>the real value does not live in the model but in the application layer. In fact, the model layer will be commoditized, the very same way the operating system or the webserver was commoditized.</p></li></ol><p>They quickly realized that the real value is not in the model itself (the blue or green) but in the application layer (the red part). After all, an AI application for a lawyer or software engineer will extract more dollar value than an AI-enabled dating application. That&#8217;s why Anthropic got into the Claude Code bandwagon and is releasing new products every other week - they are trying to capture the real value of AI. They no longer want to sell you token but sell you an outcome.</p><h2>Frontier labs need to capture value to stay relevant</h2><p>Once Frontier labs realized they need to capture the application-layer (red in the diagram above), they started to release new applications to see what stick with the user. New products are coming regularly: <a href="https://claude.com/product/claude-code">Claude Code</a>, <a href="https://claude.com/product/cowork">Claude CoWork</a>, <a href="https://claude.com/solutions/legal">Claude Legal</a>, <a href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design</a> - the goal is to capture the AI-enabled space for every domain before someone else does. And traditional software companies (Salesforce, Microsoft) also keep releasing new features with a similar pricing model (e.g. pay by token usage).</p><p>However, the cost does not match the value. For example, a lawyer using ChatGPT or Claude can easily justify a high price, higher than a simple chat application. An agentic application that automates your work (e.g. summarizes your customer calls, manager your agenda) provides more value than a summary of a Word document. But both are still billed using the same method (tokens).</p><p>This is where it&#8217;s hard to see the value of AI and harder to justify AI budgets. After all, software companies spent millions of dollars on tokens and do not see a comparable increase of productivity. AI made me more productive but it did not increase my productivity by 10, it rather increases productivity by 10% to 30% at best.</p><p>The typical counter-argument says that GPU and inference cost (green and blue part of the diagram) will go down. However, if these prices go down, it means that billing per token will be irrelevant and the pricing model needs to change as well. It also means that traditional software companies can use open-source models, integrate AI features at a marginal cost and make frontier models irrelevant.</p><h2>The future of AI application pricing</h2><p>I believe that AI (call them AI-native, AI-enabled or agentic) applications pricing will change dramatically in the next 18 months.</p><ol><li><p>open-source models will get more traction, match frontier models performance for most use-case and make them irrelevant</p></li><li><p>inference prices will go down thanks to software optimization and more performant hardware</p></li></ol><p>The AI winner will not be the current model providers. It will be the existing applications that have enough data to feed context to the model. These companies will integrate open-source models into their application. Once they define the real value of the application, they will change their pricing based in the product value and customer outcome.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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://techramblings.blog/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[China has the right playbook]]></title><description><![CDATA[In the current AI race, China decided to build local, open-source/open-weight models and let companies innovate and build on top of them.]]></description><link>https://techramblings.blog/p/china-has-the-right-playbook</link><guid isPermaLink="false">https://techramblings.blog/p/china-has-the-right-playbook</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sun, 02 Aug 2026 02:23:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the current AI race, China decided to build local, open-source/open-weight models and let companies innovate and build on top of them. New Chinese models (Deepseek, GLM, Kimi) are coming every other week and provide 90+% of the performance of US models for 10% of the cost.</p><p>This is the right playbook: it not only enables hundred of startups to build new products on top of these models but it enables a short feedback loop.</p><p>For the Chinese ecosystem, the specific winner does not matter - what matters is that the Chinese tech ecosystem wins. These AI models will help build the next BYD, Roborock or Bambu Labs). They optimize for innovation and velocity.</p><p>On the opposite, the US ecosystem is dominated by two players who are lobbying heavily to build regulations to (1) block any new entrant (including open-source models) and (2) decide what is an acceptable use of AI (remember when claude is telling you some questions are not acceptable ?). I saw many of their arguments to start regulation but none of them make sense. At the end of the day, these players want to act as gatekeepers of any new AI technology, which always go against innovation velocity and would create a major setback for the US tech sector.</p><p>Without US regulation, the current US actors may not stay in business much longer. The enterprise business will slowly move to local models, eating their only profitable revenue stream.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item><item><title><![CDATA[No Fear, just Hope]]></title><description><![CDATA[In the 1970, the &#8220;Club of Rome&#8221; (who wrote &#8220;The Limits to Growth&#8221; and influenced many so-called influencers and policy makers like Jean-Marc Jancovici) claimed that the world will be out of oil in 20 to 30 years.]]></description><link>https://techramblings.blog/p/no-fear-just-hope</link><guid isPermaLink="false">https://techramblings.blog/p/no-fear-just-hope</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Tue, 21 Jul 2026 00:33:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the 1970, the &#8220;Club of Rome&#8221; (who wrote &#8220;<a href="https://en.wikipedia.org/wiki/The_Limits_to_Growth">The Limits to Growth</a>&#8221; and influenced many so-called influencers and policy makers like <a href="https://en.wikipedia.org/wiki/Jean-Marc_Jancovici">Jean-Marc Jancovici</a>) claimed that the world will be out of oil in 20 to 30 years. Today, in 2026, gas cars are still running and gas price fluctuated around $3/$4 over the past 5 years.</p><p>In the 2000s, after making the movie &#8220;<a href="https://en.wikipedia.org/wiki/An_Inconvenient_Truth">An inconvenient truth</a>&#8221;, Al Gore claimed the Arctic ice will be gone in a matter of months. As of today, the Arctic Ice is still here.</p><p>In 2019, Alexandria Ocasio-Cortez <a href="https://www.newsweek.com/alexandria-ocasio-cortez-climate-change-world-will-end-12-years-un-report-1300873">warned us</a> that the &#8220;World Is Going to End in 12 Years&#8221;. Just 7 years after such a claim, I am pretty confident the world will still be around in 2031.</p><div><hr></div><p>Fear sells everywhere - this is one of the greatest marketing technique (just think about the FOMO many experience on a regular basis), this is why salespeople or politicians use it everywhere to sell their product (be a security system, a miraculous medication or a revolutionary program that will lower your tax and get you more public services at the same time!).</p><p>And today, a new fear just landed in our societal landscape: AI, job displacement and more globally, search for meaning. You hear politicians and influencers claims that &#8220;data center will turn your water brown&#8221; or that &#8220;AI is going to take your job&#8221;, triggering anxiety among the working class and ultimately questioning our existence and meaning (what will we do if we have no job?).</p><div><hr></div><p>Instead of fear, I prefer to choose hope and believe in ourselves.</p><p>We are resilient and every time we face serious issues, we were able to figure them out and overcome our problems. And instead of listening to uneducated salespeople pushing their own agenda, we&#8217;d rather think for ourselves and evaluate if a change is good or not for society.</p><p>When it comes to AI, there is a lot to figure out today but there is no question there is a big potential for us. Like with any technology, we will need to adapt but we will grow as a society and get better. Instead of rejecting technology without any good reason, we should wonder how we can use it for the greater good.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Local, open-source models are the future]]></title><description><![CDATA[Anthropic and OpenAI are the Netscape of this era]]></description><link>https://techramblings.blog/p/local-open-source-models-are-the</link><guid isPermaLink="false">https://techramblings.blog/p/local-open-source-models-are-the</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Mon, 15 Jun 2026 23:24:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZKd1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Sixty years ago, owning a computer meant having a mainframe operated by a dedicated team. The cost of the hardware was in the hundred of thousands of dollars in the 1970s (= a few millions today in 2026 dollars).</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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://techramblings.blog/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZKd1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZKd1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZKd1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Three people working at the IBM 3330 Data Storage facility.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&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="Three people working at the IBM 3330 Data Storage facility." title="Three people working at the IBM 3330 Data Storage facility." srcset="https://substackcdn.com/image/fetch/$s_!ZKd1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZKd1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3bc5cf2-ba10-4166-8465-3ecd5959f9d5_640x480.jpeg 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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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"><a href="https://www.ibm.com/history/system-370">The System/370 model 165 mainframe system</a></figcaption></figure></div><p>Only a few select companies (bank, insurance) were able to afford and operate them.</p><p>About 20 years later, mainframes got replaced by the IBM Personal Computer (PC), which provided more resources for cheaper (my family spent ~$1000 on a 486SX25 in 1992). There was an abundance of computers, the vision was to put a computer on every desk at work or at home.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pP6P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pP6P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pP6P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg" width="640" height="387" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:387,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/nostalgia - Best Buy 90s PC ad&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="r/nostalgia - Best Buy 90s PC ad" title="r/nostalgia - Best Buy 90s PC ad" srcset="https://substackcdn.com/image/fetch/$s_!pP6P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pP6P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6833505a-7d98-4bb5-a154-cfd54ce39af2_640x387.jpeg 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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">Bestbuy Catalog in 1990</figcaption></figure></div><p>In 20 years, the space and cost of computing got slashed massively:</p><ul><li><p>the cost got divided by 50</p></li><li><p>what took a full room was now fitting in a box under your desk</p></li></ul><div><hr></div><p><strong>Over time, processing capacity keeps increasing and costs keep decreasing.</strong></p><div><hr></div><p>This story is repeating again today in the AI world.</p><p>Today, training and operating large models requires datacenters that cost <s>millions</s> billions to build and operate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HT2o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HT2o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HT2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg" width="1080" height="539" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:539,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&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_!HT2o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HT2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17eb39e9-f3a0-4fe9-8642-4e8e336e6a50_1080x539.jpeg 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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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"><a href="https://blogs.microsoft.com/blog/2025/09/18/inside-the-worlds-most-powerful-ai-datacenter/">Microsoft AI Datacenter 2025</a></figcaption></figure></div><p>But in a decade or two, the same workload will run faster on a hardware that will cost 1/1000th of today&#8217;s cost.</p><p>In fact, not even 5 years after the AI boom started, we have solution to operate AI workload locally, like the DGX Spark that costs a few thousands. I can run local models on my M4 Macbook Air and some people are already replacing proprietary models by <a href="https://news.ycombinator.com/item?id=48542100">open-source models on their Mac Mini</a>. The progress made in a few years is astonishing and there is no doubt they will get parity with state-of-the-art models in a few months.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j_g3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j_g3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j_g3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg" width="860" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:860,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Featued image for: Nvidia DGX Spark: The New Stack Developer&#8217;s Guide&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Featued image for: Nvidia DGX Spark: The New Stack Developer&#8217;s Guide" title="Featued image for: Nvidia DGX Spark: The New Stack Developer&#8217;s Guide" srcset="https://substackcdn.com/image/fetch/$s_!j_g3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j_g3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb15c8c09-46ff-4e25-aa8e-c2f86a212bad_860x480.jpeg 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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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"><a href="https://en.wikipedia.org/wiki/Nvidia_DGX#DGX_Spark">Nvidia DGX Spark</a></figcaption></figure></div><p>In a few months or years at most, agents will run locally on a $500 device (phone or laptop) and use local data. Companies like OpenAI or Anthropic are likely to be the Netscape or pet.com of this decade. They will need to innovate or die<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>Local models will not only unlock more use-cases, it will open an era of AI abundance.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This is why they are pushing for regulation of AI (including open-source models) and block local models from being released to the public.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[SaaS is not dead]]></title><description><![CDATA[The last few months, we noticed a massive change in agentic coding: the release of Anthropic 4.6 models, along with the availability of more applications (e.g., opencode, codex, kilo) accelerates software development by a large order of magnitude.]]></description><link>https://techramblings.blog/p/saas-is-not-dead</link><guid isPermaLink="false">https://techramblings.blog/p/saas-is-not-dead</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 25 Apr 2026 22:06:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LPvH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The last few months, we noticed a massive change in agentic coding: the release of Anthropic 4.6 models, along with the availability of more applications (e.g., opencode, codex, kilo) accelerates software development by a large order of magnitude. With the cost of writing code trending to 0, many claim that &#8220;SaaS is dead!&#8221; and companies will suddenly build their own applications internally.</p><p>I believe this is the wrong take.</p><p>Writing code is the cheapest aspect of building software. The majority of building software costs are operation (on-call, bug fixes) and maintenance (e.g., adding features, fixing vulnerabilities, deploying in the latest cloud infrastructure). Whoever wants to build their own SaaS will need to take on the maintenance and operational burden.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LPvH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LPvH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 424w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 848w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LPvH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png" width="384" height="409.5483870967742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1058,&quot;width&quot;:992,&quot;resizeWidth&quot;:384,&quot;bytes&quot;:293534,&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://juli1.substack.com/i/194902191?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.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_!LPvH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 424w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 848w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!LPvH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e21a378-658e-46e1-b642-925eaedd0fc2_992x1058.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>No one is realistically going to re-implement Gmail, Office 365, or Slack to avoid paying $10 to $20 per month. Companies buy SaaS applications to focus on their core business instead of going on side quests and implementing and maintaining some random software. A food business or a hardware store working on a website does not want to re-implement Slack, build an AWS replica, or re-implement Twilio. And the last thing they want is to re-implement an internal copycat of Workday (with all its legal subtleties) to handle HR concerns.</p><p>The few adventurous who want to embark on such a re-implementation crusade will ultimately need to hire engineers to maintain their custom software and ensure compliance with all applicable laws. Unless the company operates at a massive scale, the maintenance expenses will be far bigger than buying the SaaS equivalent.</p><p>On the other hand, the impact of agentic coding will lower the barrier to entry to build competitors to existing SaaS products. It will lead to more competition and, ultimately, more options for the customers, which is a good thing. It will also put pressure on existing players to deliver more value and/or lower their prices (and potentially, their margin).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item><item><title><![CDATA[Nothing Lasts]]></title><description><![CDATA[Love, companies or friendships: everything eventually comes to an end.]]></description><link>https://techramblings.blog/p/nothing-lasts</link><guid isPermaLink="false">https://techramblings.blog/p/nothing-lasts</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 30 Aug 2025 14:01:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e763336f-218c-4c30-9ce8-b3ecb8f09f06_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Love, companies or friendships: everything eventually comes to an end. When something good happens to us, our goal should be to make the best out of it and enjoy it at its fullest while it lasts.</p><p>The hard part is to leave while it&#8217;s still good, almost at the top, and avoid dragging a falling project or a dying relationship for months or years. Too often, people keep working on a project even when it degrades or gets bad, hoping greatness will come back or trying desperately to milk some last bits of success. This is a losing game: you will not only lose your time, but people will always remember these last painful moments.</p><p>You need to stop at the top, before quality erodes. Admit that the best happened and move on to your next venture. There is nothing worse than trying to constantly repair something dying or broken.</p><p>Move forward.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item><item><title><![CDATA[Do we need an AI-native GitHub fork?]]></title><description><![CDATA[In a world where software is being more abstracted and shifting into the Software 2.0 paradigm, do we still need to share code as much as we used to?]]></description><link>https://techramblings.blog/p/what-is-the-next-github</link><guid isPermaLink="false">https://techramblings.blog/p/what-is-the-next-github</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 23 Aug 2025 14:01:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/da28bdeb-ec8d-4e28-903c-294a7073852b_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a world where software is being more abstracted and <a href="https://karpathy.medium.com/software-2-0-a64152b37c35">shifting into the Software 2.0 paradigm</a>, do we still need to share code as much as we used to? Will we still need GitHub at all? Do we need a new platform to collaborate and share what we build?</p><p>There is <a href="https://huggingface.co/">HuggingFace</a>, but the user experience and overall interface cater more to ML engineers than software engineers and builders (hint: try to build something from HuggingFace, unless you have solid knowledge in the domain, you will not go far).</p><p>Platforms like <a href="https://lovable.dev/">lovable</a> or <a href="https://v0.dev/">v0</a> have community portals that showcase projects built by their users. Sharing projects instead of repositories may be the right approach. New platforms would allow users to copy and modify existing projects for their specific use-case.</p><p>We are still in the beginning of the AI revolution. I am not sure if existing platforms will stick around for long, but I am convinced there is a need for a new AI-native developer platform. I am not sure what it will look like, but it seems to be where the industry is going.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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[Made In America and Sam Walton]]></title><description><![CDATA[Made in America, along with The Everything Store are two books that captivated me.]]></description><link>https://techramblings.blog/p/made-in-america-and-sam-walton</link><guid isPermaLink="false">https://techramblings.blog/p/made-in-america-and-sam-walton</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sun, 17 Aug 2025 01:04:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IeT3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://amzn.to/40j6ijh">Made in America</a>, along with <a href="https://amzn.to/4lQYXjd">The Everything Store</a> are two books that captivated me. These books are not only great business lessons, they show how the world and our society changed over the past 50 years. Walton changed the retail business with the creation of Wal-Mart and Amazon invented e-commerce. The lessons from Walton clearly inspired Bezos (and Bezos himself often quotes Walton).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://amzn.to/4lWwOHz" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IeT3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 424w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 848w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 1272w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IeT3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png" width="351" height="555.6" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:585,&quot;resizeWidth&quot;:351,&quot;bytes&quot;:700587,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://amzn.to/4lWwOHz&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://juli1.substack.com/i/168289162?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.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_!IeT3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 424w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 848w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.png 1272w, https://substackcdn.com/image/fetch/$s_!IeT3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3476a400-dc89-4141-9a0c-232eb45fb727_585x926.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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><a href="https://amzn.to/40j6ijh">Made in America</a> is the biography of Sam Walton, the founder of Walmart. The book goes into how Walton started and expanded Walmart from his first variety store into the retail juggernaut Walmart is today. There are a few striking points in the book about either entrepreneurship or the status of our society and country.</p><h2>Innovator Traits</h2><p>Walton understood early on (in the 1950s) that discount stores (defined mostly by small margins and high volume) would take over variety stores. He was customer-obsessed since day one and relentlessly tried to innovate. Walton was not afraid to copy his competitors. Walton always visited stores everywhere in the country and took notes on his legal pad or using his microphone. There was no ego involved and Walton does not hesitate to credit <a href="https://en.wikipedia.org/wiki/Sol_Price">Sol Price</a> (the creator of FedMart and Costco) for many ideas.</p><p>Many ideas we see in tech today (e.g., customer obsession at Amazon or scaling laws) were already in place at Walmart, and they directly influenced companies like Amazon.</p><h2>Status did not matter</h2><p>Walton bought some expensive houses once he became a billionaire but never tried to impress anybody with a lavish lifestyle. He stayed true to some core values and principles. Many associates tell stories where he often shared hotel rooms with his employees on business trips or sometimes skipped paying the hotel and slept directly at an associate house.</p><p>Walton also reflects on his life and admits his mistakes, either professionally (e.g., when he was too late to open a new warehouse or when he was not giving enough recognition to his employees) or personally (e.g., not recognizing enough women in the retail industry - his wife changed his mind on this topic).</p><h2>Build Stuff People Want</h2><p>Walton success thesis is simple: build something customers want. For the Walmart case, variety stores had high margins, had limited opening hours, and some did not treat the customer well. Walton reduced prices, opened stores every day, and made sure the customer was treated properly (have you seen the greeters at Walmart?). </p><p>These are extremely elementary principles, and yet, the competition did not understand them and failed to execute.</p><p>The same principles guide many startups today. Even YCombinator had the motto <a href="https://www.paulgraham.com/good.html">&#8220;Make something people want&#8221;</a>. Walton did not invent this concept, but he applied startup principles of today back in 1940, and it worked extremely well.</p><h2>Keep Operating</h2><p>Walton always stays true to some simple business principles and keeps operating according to them. For example, a key principle was to always pass any savings to the customers. Another one was to always treat associates right (at least, during his tenure as CEO). He never lowered his standards. He changed them sometimes when it made sense but never compromised.</p><p>Even when Wall-Street and other analysts were calling him done, he kept operating according to his plan and refused to change because of some trend or financial analysts called Walmart as done.</p><p>Walton weathered many storms in his career, and every time, what saved him was to stay true his fundamentals: listen to the people who cared about him since the beginning, focus on bringing value to the customers, and grow organically.</p><p>The same applies in startups: we may see many ups and downs and trends. But in the end, what matters is to build something users love and deliver value.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item><item><title><![CDATA[Siri, Are We Falling Behind?]]></title><description><![CDATA[Culture is everything]]></description><link>https://techramblings.blog/p/where-is-apple-going</link><guid isPermaLink="false">https://techramblings.blog/p/where-is-apple-going</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 09 Aug 2025 14:03:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gKJ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The following is a collection of thoughts I started a year ago about one of the most-beloved brands in the world. I think they are lost and rather in search of meaning.</p><h2>Apple&#8217;s original core vision</h2><p>The original core vision of Apple was to build the best products on earth. And they did it at the best price they could, but never at the cost of quality or user experience. And they fulfilled their mission: to this day, many Apple products are unmatched.</p><p>Through the first 30 years of existence, Apple defined key tenets for the brand:</p><ul><li><p>differentiated branding and marketing (people still mention <a href="https://en.wikipedia.org/wiki/1984_(advertisement)">the 1984 ad </a>that the Apple board originally refused)</p></li><li><p>premium design, either software (iOS, macOS) or hardware (Macbook, iPhone) &#8212; Apple ships the best product; they <a href="https://www.youtube.com/watch?v=eAo8gnUCWzE&amp;t=22s">do not ship junk</a></p></li><li><p>world-class user experience</p></li><li><p>privacy-first: people pay for the product</p></li></ul><p>Through the years, Apple managed to innovate and ship products that redefined our industry. Jobs said it better than anyone at the launch of the iPhone.</p><blockquote><p><em>Every once in a while, a revolutionary product comes along that changes everything and Apple has been &#8211; well, first of all, one&#8217;s very fortunate if you get to work on just one of these in your career. Apple has been very fortunate. It&#8217;s been able to introduce a few of these into the world.</em></p></blockquote><p>However, since 2007, Apple stopped innovating.</p><p>Instead of staying an innovation machine, Apple became an iteration machine. They no longer ship products that redefine an industry. They ship iterations or marginal improvements of existing products.</p><h2>Search for Meaning</h2><h3>What&#8217;s next after the iPhone?</h3><p>Tim Cook surfed the wave started by the iPhone tsunami. He squeezed every penny from it: Apple made some features <a href="https://notes.nokun.eu/post/2024-05-26-expensive-laptops-dont-pro/">extremely expensive</a> and they forced developers to pay a 30% Apple tax on every sale within an iOS app. Anything Apple launched since the iPhone is not a breakthrough innovation; it&#8217;s a marginal improvement.</p><p>Tim Cook managed to make Apple a remarkable company from a financial standpoint, but he failed to keep the innovation flywheel going.</p><p>The issue for Apple is to find the next big thing.</p><p>For some time, people believed it was the Apple Car. But after years of development and refusing to buy Tesla in 2017, the project got canceled. Apple stopped iterating on this idea, even if they had billions in the bank to do so.</p><p>The recent flop of the Apple Vision Pro gives us a better peek at the change of culture at Apple. Despite the technological achievements, Apple needs to face the fact that nobody wants to spend $4500 to live with googles strapped on their face.</p><p>There is more evidence that Apple is lost and unable to ship anything significant. When we see major improvements in AI every day, Siri is still struggling.</p><h3>What values?</h3><p>Apple has been one of the best brands in terms of marketing. The brand positioned itself as a premium brand, and their advertisements were designed accordingly (see <a href="https://www.youtube.com/watch?v=-z4NS2zdrZc">&#8220;Here&#8217;s to the crazy ones&#8221;</a>). They communicated their values very well: innovative, great to use, and user-friendly.</p><p>But today, such values are gone, and Apple is lost.</p><p>Take <a href="https://www.youtube.com/watch?v=QNv9PRDIhes">the Apple commercial about the environmental footprint</a>. The ad made the Apple CEO Tim Cook like a child being lectured by a morbidly obese &#8220;Mother Nature&#8221;. The ad is childish and makes the Apple CEO appear stupid and out of touch. Jobs would clearly never have approved this (he mentioned once that one of his biggest mistakes was to make a teleconference with Bill Gates where he appeared on top of him).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gKJ5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gKJ5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gKJ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg" width="1456" height="1174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1174,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bill Gates beams into the 1997 Macworld conference, pledging a $150 million  investment in his struggling competitor while the crowd jeers and boos.  [2464x1986] : r/HistoryPorn&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bill Gates beams into the 1997 Macworld conference, pledging a $150 million  investment in his struggling competitor while the crowd jeers and boos.  [2464x1986] : r/HistoryPorn" title="Bill Gates beams into the 1997 Macworld conference, pledging a $150 million  investment in his struggling competitor while the crowd jeers and boos.  [2464x1986] : r/HistoryPorn" srcset="https://substackcdn.com/image/fetch/$s_!gKJ5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gKJ5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d2dc96-862e-4868-b1e5-73d7ac92bd0c_2464x1986.jpeg 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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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">Steve Jobs said it was a big mistake to put Gates&#8217; picture above him. Do you think he would have approved the Mother Nature ad?</figcaption></figure></div><p>More recently, for (another iteration of) the iPad, Apple launched the commercial <a href="https://www.youtube.com/watch?v=ntjkwIXWtrc">Crush!</a>. And yet, it was another huge marketing miss where Apple suggests they are crushing creative people, the same population who want to &#8220;Think Different&#8221; and bought Apple for years. At a time when people are afraid that AI will take their jobs, it was the worst message to send.</p><h2>What future for Apple?</h2><p>There is no question that Apple will keep making profits from their products for the years to come. There is no iPhone replacement today. And attempts at shipping AI-based products (humane pin, rabbit R1) to replace it are failing.</p><p>But this will not continue indefinitely. The lack of innovation, coupled with the few disastrous commercials, shows that the company is searching for meaning and in need of changes. </p><p>Apple needs to reinvent itself, know who they are, and find what their next big thing is.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item><item><title><![CDATA[The AI Developer Workflow]]></title><description><![CDATA[We past the middle of 2025 and we are still inside an AI bubble.]]></description><link>https://techramblings.blog/p/the-ai-developer-workflow</link><guid isPermaLink="false">https://techramblings.blog/p/the-ai-developer-workflow</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 02 Aug 2025 14:01:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d353dc52-92db-44e2-8811-8a154f9e107f_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We past the middle of 2025 and we are still inside an AI bubble. The winners from 6 months ago are the losers of tomorrow. New AI technologies, habits and tools change faster than the geopolitical climate in the US. Yesterday, all the AI hype was about Cursor but today, everything is about Gemini and Claude Code.</p><p>The early players are now irrelevant (who still talk about GitHub copilot?), and model providers are doing everything possible to go beyond the API and capture the value delivered at the application level. We are seeing this with coding tools (Anthropic with Claude Code, OpenAI with Codex, Google with Gemini CLI) and it starts to happen in other domains as well (see <a href="https://www.anthropic.com/solutions/financial-services">Claude for financial services</a> or even the AI companions from Grok).</p><p>There is the workflow I use today for:</p><ul><li><p><strong>search</strong>: any search is done with ChatGPT desktop. When alone/at home, I rely on voice mode and type when in the office. I rarely use Google anymore and when searching, use alternative search engines (brave or kagi)</p></li><li><p><strong>large coding tasks</strong>: I use Claude Code (at work) or Gemini (at home) for any coding tasks larger than 2 lines. Both Claude Code and Gemini have similar performance and write 90%+ of the code I ship today.</p></li><li><p><strong>refining code</strong>: I use whatever is integrated in my IDE to refine the generated code and complete a line. IDEs like JetBrains have internal inline completion that are pretty good and free. Users now expect IDEs to have a good inline completion out of the box.</p></li></ul><p>I feel we are still not in the final stage of what AI-enabled development tools can do. We may abstract them more and instead of writing code in the command line, integrate them into projects management tools (e.g. Jira). Claude Code or Gemini CLI may be the cool kids today but I wouldn&#8217;t be surprised if new tools come in a few months with a better integration into the developer workflow.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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[Built to last]]></title><description><![CDATA[The Boeing 747 that flies you to Hawaii still uses floppy disks to update its onboard flight system software.]]></description><link>https://techramblings.blog/p/build-stuff-that-lasts</link><guid isPermaLink="false">https://techramblings.blog/p/build-stuff-that-lasts</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 26 Jul 2025 14:02:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!smA9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Boeing 747 that flies you to Hawaii <a href="https://hackaday.com/2020/08/12/floppy-disks-still-used-to-update-747-flight-software/">still uses floppy disks</a> to update its onboard flight system software.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!smA9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!smA9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 424w, https://substackcdn.com/image/fetch/$s_!smA9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 848w, https://substackcdn.com/image/fetch/$s_!smA9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 1272w, https://substackcdn.com/image/fetch/$s_!smA9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!smA9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png" width="744" height="389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:389,&quot;width&quot;:744,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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_!smA9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 424w, https://substackcdn.com/image/fetch/$s_!smA9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 848w, https://substackcdn.com/image/fetch/$s_!smA9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.png 1272w, https://substackcdn.com/image/fetch/$s_!smA9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd22a9660-511e-4912-b4e2-6a96ae689f06_744x389.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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">Updating your Boeing 747 still requires floppy disks</figcaption></figure></div><p>The ATM around the corner is <a href="https://www.reddit.com/r/pcmasterrace/comments/gyccpy/i_dont_know_which_os_you_are_using_but_some_atms/">likely running Windows XP</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V_4X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V_4X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V_4X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg" width="640" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;r/pcmasterrace - an atm machine with a screen&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="r/pcmasterrace - an atm machine with a screen" title="r/pcmasterrace - an atm machine with a screen" srcset="https://substackcdn.com/image/fetch/$s_!V_4X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 424w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 848w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!V_4X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce152fd-3ac8-493b-859c-8c6afe277c0c_640x480.jpeg 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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">An ATM running Windows XP in 2020</figcaption></figure></div><p>Windows 3.1, was <a href="https://arstechnica.com/information-technology/2015/11/failed-windows-3-1-system-blamed-for-taking-out-paris-airport/">still used in France ten years ago</a>, 23 years after its release in 1992.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4iGc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4iGc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 424w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 848w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4iGc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png" width="1218" height="1032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:1218,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:142442,&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;:false,&quot;internalRedirect&quot;:&quot;https://juli1.substack.com/i/167855838?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.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_!4iGc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 424w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 848w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!4iGc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa446a427-a0b8-455f-bf7f-f1f706c18981_1218x1032.png 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>The San Francisco Municipal Transportation Agency (SMFTA) the closest city to the heart of Silicon Valley, <a href="https://arstechnica.com/gadgets/2024/10/212-million-contract-will-finally-get-san-francisco-trains-off-floppy-disks/">paid $212M in 2024 to get off floppy disks</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vGDk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vGDk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 424w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 848w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 1272w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vGDk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png" width="1091" height="346" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:346,&quot;width&quot;:1091,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215330,&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;:false,&quot;internalRedirect&quot;:&quot;https://juli1.substack.com/i/167855838?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.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_!vGDk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 424w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 848w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 1272w, https://substackcdn.com/image/fetch/$s_!vGDk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b0e8ce-0b70-4034-87d6-cab2b2da3223_1091x346.png 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>There are many other examples: your bank or insurance likely relies on COBOL, military systems rely on old versions of the Ada programming language, and many satellites still operate on old CPUs as powerful as a 1980 Gameboy.</p><p>I am in awe when I see how far users can go to make an existing system last. Despite a product being declared obsolete, users still try to do everything possible to use it. This is a testimony of how much users love the product and how robust it is.</p><p>In a world where software is becoming disposable and a JavaScript package may no longer be viable 6 months after its release, I admire engineers who put in the effort to design a system that can last decades. I equally admire those who hack to make obsolete systems still usable today and push them to their last limits.</p><p>Building any piece of software is becoming easier every day. Even with the help of coding agents, building great software that lasts is still hard.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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[Anatomy of a Coding Agent: Aider]]></title><description><![CDATA[In a previous post, I explained how the opencode coding agent works. In this post, I give an overview of aider, another open-source coding agent that uses different architectural choices.]]></description><link>https://techramblings.blog/p/anatomy-of-a-coding-agent-aider</link><guid isPermaLink="false">https://techramblings.blog/p/anatomy-of-a-coding-agent-aider</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 19 Jul 2025 14:01:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e6527806-1dd0-4ff5-a8aa-ae7de359c35b_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a previous post, I explained how the <a href="https://open.substack.com/pub/juli1/p/anatomy-of-a-coding-agent">opencode coding agent works</a>. In this post, I give an overview of <a href="https://aider.chat/">aider</a>, another open-source coding agent that uses different architectural choices. The objective is to look at some differences in the overall architecture of two coding agents. I will skip the introduction part about agents (you can read the <a href="https://juli1.substack.com/p/anatomy-of-a-coding-agent">previous post</a> for that) and go directly in what differentiates aider.</p><h2>General Design Choices</h2><p>Aider is developed in Python, which is the language of choice when it comes to write ML applications. Where opencode uses the <a href="https://ai-sdk.dev/">Vercel AI SDK</a>, aider relies on the <a href="https://docs.litellm.ai/">Python litellm</a> to stay platform agnostic. Like opencode, it can interface with many models, either remote or local (if you use ollama).</p><p>A good entry point is the <a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/coders/base_coder.py#L2">base_coder.py</a> file that contains the main iteration loop. The file <a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/models.py#L947">models.py</a> contains the code that initialize the models (along with the tools). </p><h2>Multiple Modes, Multiple Agents</h2><p>Aider provides multiple modes, each of them has its own prompts and set of tools. For each mode, there is a new agent, built around a new prompt.</p><ul><li><p>code</p></li><li><p>ask (<a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/coders/ask_prompts.py#L17">prompts</a>)</p></li><li><p>architect (<a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/coders/architect_prompts.py#L16">prompts</a>)</p></li></ul><p>These agents have the same capacity (e.g. tools), the main difference is the initial prompt passed to them.</p><h2>Code Indexing</h2><p>Coding agents index your code incrementally. When you open a repository for the first time, the agent indexes the entire codebase and updates the index incrementally upon code changes. Aider supports all languages supported by the <a href="https://github.com/Goldziher/tree-sitter-language-pack">tree-sitter-language-pack</a>, a collection of well-maintained tree-sitter grammars.</p><p>Aider indexes the code through a <a href="https://aider.chat/docs/repomap.html">Repository Map</a>, where it extracts symbols (also known as tags) definition (class or function/method definition) and reference (e.g. there the symbols are being used). This is implemented through tree-sitter queries that run queries (<a href="https://github.com/Aider-AI/aider/blob/main/aider/queries/tree-sitter-languages/java-tags.scm">example of queries for Java</a>) against each file. It qualifies the type of tag based <a href="https://github.com/Aider-AI/aider/blob/main/aider/repomap.py#L299-L305">on the name associated with the query</a>.</p><p>This information is then saved in a SQLite database to make it available at the next execution and easily query it. The SQLite database is abstracted by the <a href="https://grantjenks.com/docs/diskcache/">diskcache</a> library.</p><h2>Prompt Building</h2><p>The prompt itself is built using some base strings (as shown in <a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/coders/ask_prompts.py#L11">ask_prompts.py</a> or <a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/coders/architect_prompts.py#L8">architect_prompts.py</a>). Then, the prompt is augmented with the code structure, which comes from the code index (aka repomap in the aider terminology). The enrichment logic resides in the <a href="https://github.com/Aider-AI/aider/blob/f22fbf9b3ae20361c23dfbd989929e25cd3ccd61/aider/repomap.py#L610">repomap.py</a> file and it attempts to pack the most information in the number of tokens available by ranking the data.</p><p>The code index sent to the prompt contains the class and function definition signatures. It&#8217;s enough to understand the structure of the code but it does not contains any information about the implementation of the function itself.</p><h2>Comparing opencode and aider</h2><p>The goal is not to compare the performance of the tools but the commonalities in the architecture. This gives you trends about what to use to build a coding agent and what may make a difference.</p><p><strong>Common Patterns</strong></p><ul><li><p>Both use a high-level library (<a href="https://ai-sdk.dev/">AI SDK</a> or <a href="https://www.litellm.ai/">litellm</a>) to stay LLM provider-agnostic</p></li><li><p>Both specialize their prompt for a particular task</p></li></ul><p><strong>Differences</strong></p><ul><li><p>opencode augment the LLM calls with tools to understand the codebase better. aider relies on its <a href="https://aider.chat/docs/repomap.html">repository map</a> to feed the architecture of the software to the LLM</p></li><li><p>opencode does not need explicit files, it finds what artifacts matters using tools (like grep)</p></li><li><p>opencode keeps a tool that manages the todo list to keep track of what to do to accomplish a task. Other tools like Claude Code or Gemini follows a similar approach.</p></li></ul><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p><p></p>]]></content:encoded></item><item><title><![CDATA[Anatomy of a Coding Agent: Opencode]]></title><description><![CDATA[Over the past few months, we are seeing a lot of coding agents being built.]]></description><link>https://techramblings.blog/p/anatomy-of-a-coding-agent</link><guid isPermaLink="false">https://techramblings.blog/p/anatomy-of-a-coding-agent</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 12 Jul 2025 13:49:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/63f0d5e9-f1b8-4839-a10c-3cb825c9f10f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past few months, we are seeing a lot of coding agents being built. Most of them have a good performance, not because the underlying tooling is amazing but just <a href="https://jamesgrugett.com/p/what-i-learned-building-an-ai-coding">because the underlying models are extremely good</a>. Building a coding agent is becoming easier at each model iteration. I am not saying this is trivial, but the barrier to entry for building something good is lower than a year ago. In this post, I explain the main components that make a coding agent. </p><p><a href="https://github.com/opencode-ai/opencode">Opencode</a> is an open-source coding agent. It&#8217;s similar to <a href="https://aider.chat/">aider</a>, another coding agent that I will review in another post. Note that there are different flavors/forks of opencode, I will use the <a href="https://github.com/sst/opencode">sst repository</a> to explain the code. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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>What is an agent?</h2><p>With all the hype around AI and LLM, everyone has their own definition of what an agent is. From a technical perspective, an agent is a program that keeps calling an tool-augmented LLM until a condition is met. By <em>&#8220;tool-augmented LLM&#8221;</em>, I refer to a call to the LLM paired with some tools<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> (edit a file, read a file, fetch some documents online, send a text, etc) to augment its capabilities. </p><p>From a programming perspective, an agent is a <code>while</code> loop that keeps calling the LLM until a final condition is satisfied (for example, passing a text, getting the answer <em>&#8220;yes&#8221;</em> by voice or just getting an answer from the model). The LLM is augmented with tools to make progress on a task, be it reading a file, editing a file, getting semantic information or doing websearch. To give a concrete example, when ChatGPT searches the internet for you, it uses a web search tool to find information on the internet for you. Coding agents use tools that read files, grep the codebase or call <a href="https://en.wikipedia.org/wiki/Language_Server_Protocol">LSP-related features</a> (find a symbol definition, list the functions with a specific name, etc).</p><p>The mental model to keep in mind is something like the snipper below. The <code>callLLM()</code> function is where the tools are added to the LLM call.</p><pre><code>while (true) {
  result = callLLM(message)
  if (isFinalConditionMet(result)) {
    exit()
  }
  message = updateMessage()
}
</code></pre><h2>Coding Agent in a Nutshell</h2><p>Your coding agent is simply iterating on messages sent to an LLM until your condition is met. The agent sends in its message the list of tools available and the argument of the tools. The LLM returns either some text or requests the agent to invoke some tools. You can see a very simplistic message sequence of how this would work for a very simple function creation.</p><p>OpenAI has some <a href="https://platform.openai.com/docs/guides/function-calling?api-mode=responses">good documentation</a> about tools, the important part is that all tools are executed locally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F9Eq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F9Eq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 424w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 848w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F9Eq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png" width="962" height="1058" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1058,&quot;width&quot;:962,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85537,&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://juli1.substack.com/i/167774785?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.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_!F9Eq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 424w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 848w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!F9Eq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdc73911-b6cb-415f-ad50-eb81c67cfbfe_962x1058.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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><h2>Model Interoperability</h2><p>There are many model providers today (OpenAI, Anthropic, xAI, Mistral, etc) and each provider has its own way to call a model and handle tools, making it hard to switch models. Opencode uses the <a href="https://ai-sdk.dev/">AI SDK from Vercel</a>, which abstract model providers and lets developers write provider-agnostic AI agents.</p><p>The core of the model orchestration is done in <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/session/index.ts">session/index.ts</a> through the function <code>streamText()</code>. Initializing the models along with the tools is done in <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/provider/provider.ts">provider/provider.ts</a>.</p><p>The beauty of using such a framework is simple: you can focus on building the core of your application without having to worry about what platform or AI framework you can use. Any developer building an AI application should rely on such a library (<a href="https://ai-sdk.dev/">AI SDK for TypeScript</a>, <a href="https://www.langchain.com/">Langchain for Python</a>) to avoid any platform dependence.</p><h2>Prompt quality matters a lot</h2><p>The prompt size is no longer a major constraint but the quality of the prompt is really what matters. Editing or analyzing a monorepo with 1000 files and trying to update only 2 files is like finding a needle in a haystack. And to make your LLM finding the needle, you better give it really good instructions.</p><p>This is why the quality of your prompt matters. <strong>A lot.</strong> </p><p>The <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic.txt">prompt for opencode</a> is quite long and gives a ton of examples of what to follow. There are some general guidelines to follow for a good prompt:</p><ul><li><p>be extremely explicit about what you want. If something matters, use CAPITAL LETTERS TO INDICATE YOU CARE ABOUT A PARTICULAR INSTRUCTION.</p></li><li><p>keep using Markdown to write your prompt. Hierarchical information with titles using the # character and very important information using <strong>***BOLD***</strong></p></li><li><p>use special tokens to specify examples, like <code>&lt;example&gt;</code></p></li></ul><p>Once you have a good basic prompt, you need to be able to augment it with tools that provides the necessary features to find the needle in the haystack.</p><h2>Augment LLM with tools</h2><p>Tools are the real coding agent "magic sauce". An LLM without tools is like Bruce Wayne. With the tools, it becomes Batman and can save developers from hours of debugging.</p><p>Common tools for coding agents are: grep, read file or write a file. All tools for opencode are located in <a href="https://github.com/sst/opencode/tree/dev/packages/opencode/src/tool">packages/opencode/src/tool</a> and added to the LLM in <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/provider/provider.ts">provider/provider.ts</a>. All coding agents (including Cursor, Claude Code, etc) rely only on two things:</p><ul><li><p>the quality of the prompt</p></li><li><p>the quality and accuracy of the tools</p></li></ul><p>The important part of the tool is to correctly specify what the tool does through a clear description (like <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/tool/glob.txt">this one</a>) and parameters (like <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/tool/glob.ts#L11-L18">those ones</a>). These tools are then called to the LLM and the program loops with the tool results until the LLM is finished.</p><p>I insist that the quality of the tools contributes significantly to the quality of your coding agent. This is why all popular coding agent (Cursor) index your codebase: they index symbols to easily feed accurate data to the model. Similar to the tool to get a line of code (many LLM struggle to find a line of code accurately) or edit files: small tweaks can have major effects on the overall tool quality. This is why having good evals help you quickly iterate on the quality of your product.</p><h2>Ask the Agent to Plan</h2><p>Opencode has an interesting approach: it provides a TODO list tool to the agent. The initial prompt <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic.txt#L83-L151">explains how the TODO list works</a> and the tools available to <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/tool/todoread.txt">read</a> and <a href="https://github.com/sst/opencode/blob/dev/packages/opencode/src/tool/todowrite.txt">write</a> the TODO list.</p><p>The agent constantly uses this todo list tool to keep track of what to do and in what order.</p><h2>Why coding agents cost so much to operate?</h2><p>Since the release of Claude Code, users complained about the cost.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XDb5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XDb5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 424w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 848w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 1272w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XDb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png" width="730" height="103" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:103,&quot;width&quot;:730,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18493,&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://juli1.substack.com/i/167774785?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.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_!XDb5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 424w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 848w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 1272w, https://substackcdn.com/image/fetch/$s_!XDb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F998080f3-16d1-4b4b-94f0-bfab4c5041eb_730x103.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The team behind Claude Code even discussed this in the <a href="https://youtu.be/zDmW5hJPsvQ?si=wn_ML9ulivUSJQjV&amp;t=771">Latent Space podcast</a>, explaining that some users at Anthropic can spend thousands of dollars a day. While this is probably an extreme case, this shows this is a valid concern. Cursor probably did not have this problem yet because usage was heavily subsidized by VC money.</p><p>Coding agents are expensive because of how they are implemented: we pass a ton of token in the prompt and context. When your typical ChatGPT request contains a few hundred tokens at most, a coding agent will consumer ten of thousands of tokens per request. If you constantly vibe code as the cool kids do today, it will very quickly be extremely expensive.</p><p>I believe this is not a real problem and we have seen that story before. VC subsidized Uber for years until users were hooked on the platform and were ready to pay the real cost of a ride. Amazon subsidized many products to establish dominance and eventually reach economies of scale. There is no doubt that coding agents are here to stay ; the current economic model may have to evolve. </p><h2>What is coming next?</h2><p>I can see mostly two major improvements in the coming months:</p><ol><li><p><strong>Running locally</strong>: projects like <a href="https://ollama.com/">ollama</a> make it really easy to run LLM locally. As LLM are getting optimized and CPU/GPU are getting more powerful, there is no question that coding agents will run locally in just a few months.</p></li><li><p><strong>More accurate tools</strong>: today, most tools are just grep&#8217;ing the codebase, similar to what you would do when you start working on a new codebase. I can see coding agents having more tools to analyze the codebase and giving better information to the prompt. </p></li></ol><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>You can learn more about tools in the <a href="https://platform.openai.com/docs/guides/tools?api-mode=responses">tools section of the OpenAI API</a></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p></div></div>]]></content:encoded></item><item><title><![CDATA[web and mobile apps will soon be irrelevant]]></title><description><![CDATA[In the next five to ten years, the computer interface paradigm will change, we just do not know what its replacement is today.]]></description><link>https://techramblings.blog/p/web-and-mobile-apps-will-soon-be</link><guid isPermaLink="false">https://techramblings.blog/p/web-and-mobile-apps-will-soon-be</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 21 Jun 2025 14:00:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the next five to ten years, the computer interface paradigm will change, we just do not know what its replacement is today. We will very likely interact with computers through either audio or vision without screens. Phones will become mostly irrelevant. Platform dominance will switch to another player.</p><p>The web as we know it will slowly lose traction as we switch to other interaction paradigms. We will no longer go to a webpage to search for the best lawnmower, we will just ask using voice and videos of product reviews will instantaneously play on our augmented-reality glasses. We will not order McDonald&#8217;s from the UberEats App: we will ask our AI companion to get a Big Mac delivered in 30 minutes.</p><p>Developers have to adapt today and embrace new paradigms, be working on smart glasses, an electronic pin or any other wearable that will fit our lifestyle and product use cases. With the ongoing AI wave, the dominance of any major player is being threatened. They will have to innovate, adapt or accept becoming irrelevant.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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[Happiness is a choice]]></title><description><![CDATA[Every single day, we have a choice to make: be happy or sad.]]></description><link>https://techramblings.blog/p/happiness-is-a-choice</link><guid isPermaLink="false">https://techramblings.blog/p/happiness-is-a-choice</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 24 May 2025 12:01:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every single day, we have a choice to make: be happy or sad.</p><p>Male or female, rich or poor, fat or skinny: we all have to make this choice.</p><p>When happy, no matter the issue at hand, you see the light at the end of the tunnel.</p><p>When sad, the light has faded, the room stays dark and there is no end in sight.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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[One day, this is all going to end]]></title><description><![CDATA[When our time has come, the job we got or the amount of money we made won&#8217;t matter.]]></description><link>https://techramblings.blog/p/one-day-this-is-all-going-to-end</link><guid isPermaLink="false">https://techramblings.blog/p/one-day-this-is-all-going-to-end</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 17 May 2025 12:54:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When our time has come, the job we got or the amount of money we made won&#8217;t matter. No one will die happy because they have millions in their bank account. And no one will regret not having worked more.</p><p>What will matter is what we have built, the connections we made and how we made others feel. Knowing we established strong friendships or raised kids who strive in their lives: this is what will bring a sense of meaning and accomplishment when our last breath will come.</p><p>I made many mistakes in my life, valuing my professional life way more than I should have. And under-invest in my private life, to the point of breaking relations I should not have. These are facts acted and there is no way I can go back to fix it. But I can act on the future, and in the few years that I have left on this planet, I want to explore joys I never had the opportunity to.</p><p>To the few people reading this: I hope you love what you do and embrace the daily struggle to master a skill. Do it, but not at the expense of your personal life. Take risks, make sure they are calculated, and that you do not reach a point of no return.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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 Person On The Left]]></title><description><![CDATA[I found this meme last week and I keep thinking about it.]]></description><link>https://techramblings.blog/p/the-person-on-the-left</link><guid isPermaLink="false">https://techramblings.blog/p/the-person-on-the-left</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sun, 20 Apr 2025 13:05:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a_54!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I found this meme last week<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> and I keep thinking about it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a_54!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a_54!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a_54!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a_54!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a_54!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a_54!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg" width="886" height="499" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:499,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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_!a_54!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a_54!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a_54!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a_54!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2307098-37e7-41d4-86c6-abab2b9d235f_886x499.jpeg 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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>This meme illustrates how many engineers, designers, or also product managers see themselves:</p><ul><li><p><strong>no experience</strong>: embrace simple and easy solutions because you do not know any better. At this stage, you find engineers building frontend and backend with JavaScript/TypeScript and designers reusing React templates.</p></li><li><p><strong>some experience</strong>: continually try to show off the few skills you acquired in a niche domain and nitpick useless details. Usual suspects: engineers using Zig or Rust to implement a backend for 10 users (that includes their mom and dog).</p></li><li><p><strong>a lot of experience</strong>: you understand that simple solutions are what work best. Either design (simple and clear design are better) or programming (simple code is easier to maintain and operate). We find here engineers with 10+ years of experience who build backend and frontend with JavaScript/TypeScript (or maybe Go).</p></li></ul><p>You should always aim for simple solutions, either in design or software implementation. Users want simple and clear designs (think Blackberry vs. iPhone). Too often, we add layers of complex and useless features that nobody uses and end up in bloated products (almost every Microsoft product). Focus on simple solutions used by a large user base. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oafq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oafq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 424w, https://substackcdn.com/image/fetch/$s_!oafq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 848w, https://substackcdn.com/image/fetch/$s_!oafq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 1272w, https://substackcdn.com/image/fetch/$s_!oafq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oafq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png" width="625" height="501.99468085106383" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:940,&quot;resizeWidth&quot;:625,&quot;bytes&quot;:70904,&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;:false,&quot;internalRedirect&quot;:&quot;https://juli1.substack.com/i/161709519?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.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_!oafq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 424w, https://substackcdn.com/image/fetch/$s_!oafq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 848w, https://substackcdn.com/image/fetch/$s_!oafq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 1272w, https://substackcdn.com/image/fetch/$s_!oafq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d57d238-cbe7-40f5-90be-e32395e9cf7c_940x755.png 1456w" sizes="100vw"></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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>Occasionally, simple solutions are complex and hard to execute. This was especially true in the past, when implementing a simple search box (Google) required thousands of machines to set up and designing new algorithms. And today, most of the complexity is abstracted away by cloud providers. You should avoid execution risks and only embark on a difficult journey if this is justified by the potential business outcomes.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I did not remember where I found it, happy to credit the author of the meme</p></div></div>]]></content:encoded></item><item><title><![CDATA[Is robotics the next wave?]]></title><description><![CDATA[With the never-ending progress of AI, the cost of building software will approach $0 in a not-so-near future.]]></description><link>https://techramblings.blog/p/is-robotics-the-next-wave</link><guid isPermaLink="false">https://techramblings.blog/p/is-robotics-the-next-wave</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 12 Apr 2025 21:10:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YgYb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.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_!YgYb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YgYb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 424w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 848w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YgYb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png" width="612" height="611.1593406593406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1454,&quot;width&quot;:1456,&quot;resizeWidth&quot;:612,&quot;bytes&quot;:5010434,&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://juli1.substack.com/i/161198946?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.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_!YgYb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 424w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 848w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!YgYb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd845b6d1-eb1c-403b-9d14-61c4d2fac4bf_1490x1488.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 aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><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>With the never-ending progress of AI, the cost of building software will approach $0 in a not-so-near future. And more generally, the cost of immaterial products (software, copywriting, image edition) will follow a similar trend.</p><p>Value creation may then come from material products: stuff we can touch, feel, see or taste.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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>Your iPhone will still cost $1,000+ in five years but will provide way more value thanks to all the new software that will be developed on top. AI will accelerate the development of physical connected products, from housemaid robots to fighter drones. The complexity of robotics will be facilitated by AI-driven software development.</p><p>It&#8217;s legitimate to believe that we will see more hardware projects take off. Innovation in hardware products will accelerate significantly, and we may finally see the future we have been promised.</p>]]></content:encoded></item><item><title><![CDATA[Code does not matter]]></title><description><![CDATA[In an era where the cost of a line of code is decreasing every day, the competitive advantage is shifting from technical implementation towards problem identification, product design and user experience.]]></description><link>https://techramblings.blog/p/code-does-not-matter</link><guid isPermaLink="false">https://techramblings.blog/p/code-does-not-matter</guid><dc:creator><![CDATA[Julien]]></dc:creator><pubDate>Sat, 05 Apr 2025 14:14:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDGd!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc437e3c0-adf7-444d-8385-8e383781b068_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In an era where the cost of a line of code is decreasing every day, the competitive advantage is shifting from technical implementation towards problem identification, product design and user experience. Fixating on perfect code and technical solutions risks missing what actually matters: building products people want.</p><p>The best engineers of the years to come won't be those with the cleanest and most maintainable code. It will be those who know how to deliver the best product fast, even if the underlying code is not perfect.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://techramblings.blog/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 Tech Ramblings! 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></p>]]></content:encoded></item></channel></rss>