<?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[Don't Know Jack]]></title><description><![CDATA[Selena deploys without reading the docs. Bart has read all of them. JJ wants to sound like he has too. Raja just wants his bonus. Loo Loo Paper Parts keeps going. Daily cloud literacy for the business professional.]]></description><link>https://jack.dontknowjack.club</link><image><url>https://substackcdn.com/image/fetch/$s_!Sc3D!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4907e052-b61f-418b-b386-b1a023bac621_784x784.png</url><title>Don&apos;t Know Jack</title><link>https://jack.dontknowjack.club</link></image><generator>Substack</generator><lastBuildDate>Thu, 20 Aug 2026 17:08:42 GMT</lastBuildDate><atom:link href="https://jack.dontknowjack.club/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[3377831 Canada Inc.]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thecloudthingy@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thecloudthingy@substack.com]]></itunes:email><itunes:name><![CDATA[Mark Wilkins]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mark Wilkins]]></itunes:author><googleplay:owner><![CDATA[thecloudthingy@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thecloudthingy@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mark Wilkins]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Paris Wants In]]></title><description><![CDATA[Multi-cloud is a decision, not a slogan.]]></description><link>https://jack.dontknowjack.club/p/paris-wants-in</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/paris-wants-in</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 18 Aug 2026 20:30:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s3xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg" 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_!s3xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s3xm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 424w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 848w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s3xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg" width="648" height="436.15384615384613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:980,&quot;width&quot;:1456,&quot;resizeWidth&quot;:648,&quot;bytes&quot;:330116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jack.dontknowjack.club/i/211763427?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s3xm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 424w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 848w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!s3xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221a0ca9-20d3-45cc-828f-96db0d3f4369_1712x1152.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><span>JJ was early for the Tuesday 10 o&#8217;clock meeting, which usually meant he was holding his yoga poses too long.</span></p><p><span>Georgie was already there with a pink notebook open to a blank page.</span></p><p><span>When JJ arrived and got settled with his black coffee with extra grass-fed butter, he started with the good news.</span></p><p><span>&#8220;Georgie and I have been talking with a major frozen-food supplier in Canada. They also service the EU. Paris wants in with their own pilot running on Azure, using our pilot database.&#8221;</span></p><p><span>Selena added a note to her notebook: </span><em><span>Paris compute. Our data. Hot!</span></em></p><div><hr></div><h4>Go Fast, Go Public</h4><p><span>Raja nodded as if the architecture had already agreed with him. &#8220;That&#8217;s a multi-cloud decision. Azure containers. AWS database. We can connect them together publicly.&#8221;</span></p><p><span>Georgie wrote down: </span><em><span>multi-cloud? bigger? better?</span></em><span> and then jumped up and stood beside JJ. &#8220;We need a review. Ownership. Checks and balances. My glow-in-the-dark presentation is still useful, and I would like the architecture to survive the slides.&#8221;</span></p><p><span>JJ smiled at the word architecture. </span><em><span>Paris.</span></em><span> He was already packing sample bags in his head.</span></p><p><span>Bart still had not met a multi-cloud deployment he trusted.</span></p><p><span>Raja kept going. &#8220;If Paris is on Azure and the database is on AWS, the fastest way is to make the database easy to reach. Open it enough. Let Azure connect. Georgie can redo her demo for Paris on Thursday.&#8221;</span></p><p><span>Bart put his Jolt! cola down with a bang. &#8220;If Paris connects the wrong way, the failure will be a delayed pilot, and a database story nobody wants in email.&#8221;</span></p><p><span>&#8220;We are not doing this again,&#8221; he said. &#8220;Last week was using a public path with default rules. Old records treated like they did not count. We are not giving Paris a public database because it is convenient.&#8221;</span></p><p><span>Selena held up both hands. &#8220;I agree with Bart.&#8221;</span></p><p><span>&#8220;They need answers,&#8221; Bart said. &#8220;Answers that don&#8217;t require a database login.&#8221;</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><h4>The Records Room</h4><p><span>Georgie frowned. She wanted a phrase she could reuse in her presentation that sounded like an expert was talking.</span></p><p><span>&#8220;Explain it like I have to present it,&#8221; she said.</span></p><p><span>Bart did. &#8220;Think of the database as the records room. Nobody from Paris walks into the records room. Not because we do not trust Paris. Because a records room with a public street door is still a bad records room.&#8221;</span></p><p><span>He drew a box on the whiteboard and labeled it AWS.</span></p><p><span>&#8220;Inside AWS we keep the database private. In front of it we put an API. The API is the doorman. Paris talks to the doorman. The doorman checks who is calling and what they are allowed to ask. Only then does it fetch records from the room.&#8221;</span></p><p><span>He drew a second box and labeled it Azure.</span></p><p><span>&#8220;Paris runs containers here using Azure compute on an Azure VNet. Their containers call the API here on AWS. They do not access the database on the public internet.&#8221;</span></p><p><span>Selena wrote: </span><em><span>API = doorman. Database = records room. Keys stay with the doorman.</span></em></p><p><span>&#8220;So, Paris does not get a public records room,&#8221; Georgie said. &#8220;Paris talks to the doorman.&#8221;</span></p><p><span>Georgie flipped her notebook shut and </span>wrote on the <span>cover: </span><em><span>don&#8217;t ever use orange and yellow markers when presenting!</span></em></p><div><hr></div><h4>Peering is Not Always Magical </h4><p><span>Raja tried one more shortcut question. &#8220;Could Azure just talk to the database using a one-to-one peering connection?&#8221;</span></p><p><span>&#8220;Peering is not a magic hallway,&#8221; Bart said. &#8220;Peering is a controlled connection between two separate networks. It still needs rules and a proper design.&#8221;</span></p><p><span>JJ asked if using containers made this harder.</span></p><p><span>&#8220;No,&#8221; Bart said. &#8220;Containers package the app. They do not replace a private database path. Fargate on our side, Azure Kubernetes Service is on theirs. The database uses a private endpoint. Paris never gets a public one.&#8221;</span></p><p><span>&#8220;I need the real short version on endpoints,&#8221; Georgie said.</span></p><p><span>Bart gave her the short version.</span></p><p><span>&#8220;A public database endpoint is like a door on the street. Anyone could open it. A private endpoint keeps the database off the public street. Paris talks to the doorman. The doorman is allowed to use the private endpoint to access the database.&#8221;</span></p><p><span>Selena added: </span><em><span>Public endpoint = street door. Private endpoint = inside door. API = doorman who decides who is allowed to knock.</span></em></p><p><span>Raja exhaled. &#8220;So I should not open the database to the world for the Azure pilot.&#8221;</span></p><p><span>&#8220;Correct,&#8221; Bart said. &#8220;Run this automation script.&#8221;</span></p><p><span>Bart dropped a link for the script for Raja in the Slack tech channel: </span><strong><span>paris-pilot-path.sh.</span></strong><span> Network layout. Private database endpoint. API only. Logging on.</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/paris-wants-in?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/paris-wants-in?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h4>Thursday in Paris</h4><p><span>Bart built the automation with the operations the pilot needed. Logging was enabled so questions asked were visible. No midnight console invention. No temporary public access that would still be there next October.</span></p><p><span>&#8220;Paris can deploy on Azure when their side is tested and approved,&#8221; Bart said. &#8220;They call the API. They do not access the database from the internet for convenience.&#8221;</span></p><p><span>Thursday the demo was presented by Georgie to the Paris division. She said the word endpoint more than JJ preferred, but Bart&#8217;s design was far better than Raja&#8217;s plan.</span></p><p><em><span>&#8220;Azure-side containers requested pilot data through the API. The API hosted on AWS, answered only what it was allowed to answer. The API used the private endpoint to the database. The database stayed private. Nobody loaded ten-year-old records onto a public path.&#8221;</span></em></p><p><span>During the presentation, JJ dimmed the lights and made the sample label glow.</span></p><p><span>Georgie tapped JJ&#8217;s arm. &#8220;Endpoints are cool,&#8221; she whispered.</span></p><p><span>Friday morning there was no ransom text. There was a short note from Bart in the tech channel:</span></p><p><span>Pilot problem from last week: defaults, public neighbourhood, skipped script.</span></p><p><span>New improved design: Azure compute, AWS data, API doorman, private database endpoint. Paris tech team on board.</span></p><p><span>Raja replied that he had run the script before lunch. Georgie replied that her presentation now had a new header on every slide: </span><em><span>Paris talks to the doorman; the database never stands on the street.</span></em></p><p><span>JJ replied with a photo of sample bags glowing in the colours and the word Paris in the caption, which everyone ignored productively.</span></p><div><hr></div><h4>What the Problem Actually Was</h4><p><span>Not Azure. Not AWS. Not Kubernetes. Not the fact that two clouds appeared in one pilot.</span></p><p><span>The danger was treating multi-cloud like a logo and treating public database access as a good design decision.</span></p><p><span>Paris ran their pilot on Azure. The pilot database stayed on AWS. The API controlled who could ask questions and provided answers. The private database endpoint kept the answers from becoming an incident.</span></p><p><span>Containers packaged the work. Network design kept the work safe.</span></p><p><span>Proper multi-cloud design knows where the data lives, where the compute lives, and who is allowed to talk.</span></p><div><hr></div><h4><strong><span>Three questions worth asking before the next multi-cloud pilot</span></strong></h4><p><span>1. When separate teams need access to the same data, do they need a database login - or API access?</span></p><p><span>2. Is a pilot database hosted on a public path because it is the right decision, or only because it is convenient?</span></p><p><span>3. If the path between Paris and the data fails at 2 a.m., what breaks first - and who owns the fix?</span></p><p style="text-align: center;"><em><span>Ask. Understand. Connect. Belong.</span></em></p><p style="text-align: center;"><em><span>The daily concept, question, and rationale arrive at dontknowjack.club every weekday. Selena&#8217;s Crossword every Sunday. Free. No credit card.</span></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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 class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/paris-wants-in/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/paris-wants-in/comments"><span>Leave a comment</span></a></p><p style="text-align: center;"></p>]]></content:encoded></item><item><title><![CDATA[Bart Nukes the Defaults]]></title><description><![CDATA[Selecting defaults is faster. Records are still records]]></description><link>https://jack.dontknowjack.club/p/bart-nukes-the-defaults</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/bart-nukes-the-defaults</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 11 Aug 2026 17:01:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!db3f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg" 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_!db3f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!db3f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!db3f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!db3f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!db3f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!db3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg" width="648" height="364.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:648,&quot;bytes&quot;:340511,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jack.dontknowjack.club/i/210771222?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!db3f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 424w, https://substackcdn.com/image/fetch/$s_!db3f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 848w, https://substackcdn.com/image/fetch/$s_!db3f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!db3f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb31368c9-f7b9-47ec-83ee-f80830692cd0_1792x1008.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><span>JJ was excited before the Tuesday 10 O'clock morning meeting started.</span></p><p><span>Georgie Handle was introduced with great fanfare as the new project manager for new initiatives and to help Loo Loo&#8217;s Paper Parts compete at the next level. She did not know much about the cloud yet but was eager to learn. She noted Bart&#8217;s expertise and Raja&#8217;s offer to help her fit into the team quickly. She was planning a buffet lunch with Raja and Selena to learn as much about cloud infrastructure as one meal would allow.</span></p><p><span>She did not want to waste any time.</span></p><div><hr></div><h4>JJ Glowed in the Dark</h4><p><span>JJ took the floor. He and Selena had come back from a sales seminar on industrial methodologies.</span></p><p><span>&#8220;Selena and I have seen the future,&#8221; JJ said. &#8220;Colourized biodegradable bags with glow-in-the-dark labels for frozen food. This is a huge differentiator. Colour-coded frozen food with eco-friendly labeling. We could be known across New Brunswick as a food supplier and a cleaner-upper.&#8221;</span></p><p><span>He paused to compose himself.</span></p><p><span>Selena had heard about another concept at the seminar too.</span></p><p><span>&#8220;Cloud native containers. In any language you want. Our potential supplier, Bagit!, has a sample software deployment on GitHub we can use to test this concept. It produces artwork, order handoffs, and other specifications still to be defined.&#8221;</span></p><p><span>JJ nodded. &#8220;Just to confirm. Bagit! manufactures the biodegradable bags and glow labels. We design the product line and the branding. Then we hand the orders back to Bagit!&#8221;</span></p><p><span>Georgie spoke quietly into her phone. &#8220;Resin film. Cold chain packaging. Primary colour fusion. Draft an environmental sales pitch for McCain Foods.&#8221;</span></p><p><span>Selena opened her notebook and wrote </span><em><span>colour-coded food is just weird. I&#8217;m sooo hungry!</span></em></p><p><span>Raja said, &#8220;I just watched a YouTube short on using GitHub for proof of concepts. We can use our test AWS account for this.&#8221;</span></p><p><span>Bart stood up, walked to his fourth monitor, and thought about running a full calibration.</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><h4>Containing the Containers</h4><p><span>Bart liked containers as the compute choice. He ran Kubernetes in his home lab as the Minecraft game-server operator for his condo. Standing up full orchestration for this pilot still looked like a waste of time. He was also busy with monthly backups and cost analysis.</span></p><p><span>He recommended Fargate to </span>orchestrate and manage the pilot containers.</p><p><span>He also built an automation script for Raja: approved network layout, private space for required services and the database, security group rules matched to the pilot requirements.</span></p><p><span>&#8220;Run this script,&#8221; Bart said. &#8220;Do not invent a network in the console.&#8221;</span></p><div><hr></div><h4>Georgie Makes Her Move</h4><p><span>Georgie stopped Raja in the hallway after the meeting.</span></p><p><span>&#8220;Let&#8217;s forget lunch with Selena,&#8221; she said. &#8220;Since I&#8217;m new to this cloud thingy, let&#8217;s spin the pilot up manually. If we only run automation, I won&#8217;t see what is happening. Show me the steps. I</span>&#8217;m a quick learner of using confusing technical terms, and my glow-in-the-dark presentation is Friday.&#8221;</p><p><span>Raja said he could stand it up fast. He wanted to follow Bart&#8217;s instruction. He also wanted to impress Georgie.</span></p><p><span>&#8220;I&#8217;m here to listen and learn from your expertise,&#8221; Georgie said softly.</span></p><p><span>Raja answered carefully. &#8220;Sometimes defaults have been created for a good reason, right?&#8221;</span></p><p><span>He used the default network instead of Bart&#8217;s automation. He attached to Git, pushed the deploy, and accepted the default security groups. He added a compatible database.</span></p><p><span>The included fake data looked too fake. So Raja loaded records from ten years ago. Old orders. Old contacts. Old SKUs. No current customer files.</span></p><p><span>&#8220;Too old to worry about,&#8221; he told Georgie.</span></p><p><span>&#8220;I&#8217;m impressed you still have records from ten years ago,&#8221; Georgie said.</span></p><p><span>Thursday afternoon the demo worked. JJ dimmed the room lights. The label artwork glowed. Raja exhaled. Georgie tapped Raja&#8217;s wrist. &#8220;Yeah. Containers,&#8221; she whispered. </span></p><p><span>Selena marked the pilot as up. JJ grabbed a green Post-it and wrote: </span><em><span>eco-worthy differentiator coming at you fast!</span></em></p><p><span>Nobody marked the pilot as being built from the approved script. Nobody marked ten-year-old records as potentially still private information.</span></p><div><hr></div><h4>We Have Your Data</h4><p><span>Friday morning Selena&#8217;s phone buzzed on the table during standup. </span></p><p><span>The pilot database had been accessed and encrypted. The encryption key had been copied externally and then deleted. Someone wanted money. Someone wanted it soon. They included enough detail from those old records. </span></p><p><span>The room went quiet in the wrong way. Selena&#8217;s face changed to a milder shade of normal.</span></p><p><span>&#8220;Thankfully it&#8217;s just older orders and SKUs,&#8221; she said. &#8220;No customer data. The deployment script must have stopped halfway through.&#8221;</span></p><p><span>Bart put his phone face down. &#8220;Show me the VPC Flow Logs and Security group rules. Show me where the database lives.&#8221;</span></p><p><span>Raja opened the console on Bart&#8217;s newly calibrated fourth monitor.</span></p><p><span>The pilot sat on the default public network. Not the network in Bart&#8217;s script. The default security groups had been accepted and never scoped to the pilot&#8217;s real paths. The database instance was on a public subnet along with the container deployment.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/bart-nukes-the-defaults?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/bart-nukes-the-defaults?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h4>Bart Automates His Cool</h4><p><span>Bart chugged his ice-cold Jolt! Cola so fast his eyes briefly changed colour. His voice stayed level.</span></p><p><span>&#8220;I okayed Fargate,&#8221; he said. &#8220;I gave you a script for the network that was fine. You skipped the script. You accepted every default security group, so the firewall paths stayed weak. You put ten-year-old records into a database on a public network path. The script did not stop halfway. It never ran.&#8221;</span></p><p><span>Flow Logs filled in the rest of the details. Once attackers reached the front of the pilot, the database was not far away.</span></p><p><span>JJ asked if using containers had made this worse.</span></p><p><span>&#8220;No,&#8221; Bart said. &#8220;Containers ran the process. The default network was the problem. Default security groups were the problem. Old records are still records. An automation script only helps if someone runs it.&#8221;</span></p><p><span>Selena opened her notebook to a new page and wrote: </span><em><span>Automation saves the day if it is run.</span></em><span> On a private page she added: </span><em><strong><span>What&#8217;s up with Raja?</span></strong></em><span> She had seen the wrist tap. </span></p><div><hr></div><h4><span>Raja ran Bart&#8217;s Automation</span></h4><p><span>The fix was unglamorous, which is how real fixes usually look. The approved network came up the way it should have on day one. Security groups matched the pilot&#8217;s real paths instead of the defaults. The database was rebuilt onto a private subnet, reachable only from the container processes that needed it.</span></p><p><span>Fargate was used for orchestrating the containerized pipeline. That decision had been sound. Loading old records into a wide-open database had not.</span></p><p><span>&#8220;Still could be a huge differentiator,&#8221; JJ said, quieter than before.</span></p><p><span>&#8220;I have learned that attackers don&#8217;t care about our timeline,&#8221; Georgie said. &#8220;This is my fault. I&#8217;m no expert. Bart is the expert. I&#8217;m now up to speed on three things. Security is everything. Skipping the network script was exciting, but boring is better. Default anything in the cloud must be questioned.&#8221;</span></p><p><span>Raja said, &#8220;Sometimes my emotions get the best of me. Especially when I miss lunch.&#8221;</span></p><div><hr></div><h4><strong><span>What the Problem Actually Was</span></strong></h4><p><span>Not Kubernetes. Not Fargate. Not biodegradable resin. Not glow pigment.</span></p><p><span>A pilot running on the default public network after an approved automation script was available, with default security groups accepted as-is, a database in the same open neighbourhood, and ten-year-old records treated as safe because they were no longer current.</span></p><p><span>Bart okayed the containers. Bart provided the network path. Raja chose speed over the script, defaults over design, and emotions over duty of care.</span></p><p><span>Containers packaged the work. Security has no shortcuts.</span></p><div><hr></div><p><strong><span>Three questions worth asking before your next pilot is spun up</span></strong></p><p><span>1. Is there an approved network script to build the private network, and did we run it?</span></p><p><span>2. Did we accept default security groups because they were right, or because they were easy?</span></p><p><span>3. If old records appeared in a headline tomorrow, would &#8220;they were ten years old&#8221; still feel like a excuse?</span></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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 style="text-align: center;"></p><p style="text-align: center;"><em><span>Ask. Understand. Connect. Belong.</span></em></p><p style="text-align: center;"><em><span>The daily concept, question, and rationale arrive at dontknowjack.club every weekday. Selena&#8217;s Crossword every Sunday. Free. No credit card.</span></em></p>]]></content:encoded></item><item><title><![CDATA[Bart Counts the Cores]]></title><description><![CDATA[VM size is a cost decision, not a lucky number]]></description><link>https://jack.dontknowjack.club/p/bart-counts-the-cores</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/bart-counts-the-cores</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:41:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5hcZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.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_!5hcZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5hcZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 424w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 848w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 1272w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5hcZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png" width="455" height="328.64656381486674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f978731c-61d4-4c89-895b-69943e337093_713x515.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:713,&quot;resizeWidth&quot;:455,&quot;bytes&quot;:383891,&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://jack.dontknowjack.club/i/209772995?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.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_!5hcZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 424w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 848w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.png 1272w, https://substackcdn.com/image/fetch/$s_!5hcZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff978731c-61d4-4c89-895b-69943e337093_713x515.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>Selena walked into the Tuesday 10 o&#8217;clock meeting still slightly out of breath. The parking lot lines were being repainted yellow. She had decided not to risk her new whitewall tires and had walked instead. Her notebook was already open.</p><blockquote><p>&#8220;Pierre called from Paris,&#8221; she said. &#8220;Spindle de Provence has been added to the SuperExtreme wedding package. BioVoom needs a virtual machine for the design software. Specs are fast and redundant and in the right Azure region for Europe. He needs an answer today.&#8221;</p></blockquote><p>JJ nodded. He heard Paris.</p><div><hr></div><h4><strong>Selena picked the VM while JJ watched</strong></h4><p>Selena filtered server available in West Europe, sorted by cores, and stopped on the Standard_D32s_v5. Thirty-two cores. 128 GB of RAM. Sixteen was her lucky number. She doubled it for good measure.</p><blockquote><p>&#8220;That&#8217;s a lot of cores,&#8221; JJ said. &#8220;Looks powerful.&#8221;</p></blockquote><p>Selena approved the deployment and closed her laptop. JJ wrote &#8216;cores are powerful&#8217; on a gold Post-it note. He underlined powerful twice.</p><h4><strong>Bart&#8217;s cost dashboard noticed</strong></h4><p>At 2:47 p.m. the following Monday, a cost alert appeared on Bart&#8217;s phone. CPU utilization on the new VM had not gone above 11%. The design software was running. It was not using thirty-two general purpose cores. It was performing graphics work on a machine built for something else.</p><p>Bart posted to #infrastructure general.</p><blockquote><p>&#8220;The Standard_D32s_v5 for BioVoom is oversized. CPU at 11% - about 4 of 32 cores in use. This workload needs GPU acceleration and high availability. Reviewing options.&#8221;</p></blockquote><p>Raja replied in four minutes.</p><blockquote><p>&#8220;More cores means more capacity. More capacity means more speed. I took an online class on CPU speeds. We should add autoscaling for peak wedding season overload.&#8221;</p></blockquote><p>Bart checked the Cost Explorer recommendations on his fourth monitor. He drained the last of his warm Jolt Cola and answered.</p><blockquote><p>&#8220;Autoscaling adds capacity when demand rises. Workload is running at 11%. Autoscaling will not fix the wrong machine type.&#8221;</p></blockquote><p>Selena said, &#8220;I forgot to mention that they are using a 3D printer to engrave the spindles in house.&#8221;</p><p>JJ selected a fresh gold Post-it note.</p><blockquote><p>&#8220;If I went to Paris I could hand roll the first customer&#8217;s order,&#8221; he said. &#8220;It&#8217;s all about the personal touch with weddings.&#8221;</p></blockquote><p>Bart made sure he did not look up as he spoke.</p><blockquote><p>&#8220;The software is running in the cloud. A 3D printer does not replace the right GPU. Two smaller GPU servers behind a load balancer will do the job.&#8221;</p></blockquote><p>Raja paused. He then nodded. Slowly.</p><blockquote><p>&#8220;Two smaller servers. And if one fails, the other keeps going. I see it.&#8221;</p></blockquote><p>JJ wrote &#8216;load balancers lack empathy so which server lives is redundant&#8217; on the Post-it note and stuck it to the first one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h4><strong>Cores and GPUs</strong></h4><p>An iPhone 17 Pro has six CPU cores that can handle everyday tasks such as email, browsing, and messages when multiple apps are open and running. Any CPU ever created has at least one core.</p><p>A GPU is a different kind of processor. It is built for parallel visual work such as graphics, rendering, and certain kinds of AI. Design software that etches names onto spindles in gold and silver is graphics work that a CPU can still perform. But a GPU does it much faster.</p><p>GPU servers still have CPU cores for basic processing. They also have a GPU for rendering graphics. Running graphics software on a server with thirty-two general purpose cores and no GPU is like buying the newest iPhone and expecting it to replace a Sony mirrorless camera used for professional wedding photography. You paid for power. You did not pay for the right power.</p><p>The machine was strong. It was the wrong kind of strong.</p><div><hr></div><h4><strong>What Bart rebuilt</strong></h4><p>Two smaller GPU servers in West Europe. Four cores each, GPU optimized for graphics (Standard_NC4as_T4_v3). Modest servers with a dedicated GPU that performed the design work. Placed behind an Azure Load Balancer so if one server failed, the other was available to take over.</p><p>Azure Blob storage was used for storing the spindle designs. The servers did the graphics work. Object storage stored the designs.</p><p>The correct server design even with redundancy cut the monthly bill in half before anyone negotiated a discount.</p><p>For more savings, he set automatic shutdown at 11 p.m. and automatic start at 7 a.m. European time. Nobody was engraving spindles at 2 a.m. Yet. The overnight stop cut another share of the monthly cost.</p><p>Nobody talked about 3D printing again. JJ&#8217;s offer to hand roll the first order was not answered by Pierre.</p><p>Bart posted once more.</p><blockquote><p>&#8220;BioVoom environment rebuilt. Two GPU servers behind a load balancer. Designs stored safely in Azure Blob storage. Automatic shutdown on. Pierre can be informed.&#8221;</p></blockquote><p>Three people read it. A record. JJ smiled.</p><p>Selena wrote &#8216;sort by workload, not by cores&#8217; in her notebook.</p><div><hr></div><h4><strong>The Paris question</strong></h4><blockquote><p>&#8220;Someone should walk Pierre&#8217;s team through the new setup,&#8221; Selena said. &#8220;Bart and I could go. I know the area.&#8221;</p></blockquote><p>JJ looked at his phone again.</p><blockquote><p>&#8220;I will go. I own the European relationship, and I have never been to Paris. And I have United points that are about to expire.&#8221;</p></blockquote><p>Bart had been planning a quiet weekend. He did not want to explain load balancers over dinner at a bistro that did not serve burgers and fries.</p><p>Selena wrote something in her notebook and did not show anyone.</p><p>JJ booked his travel before the meeting ended. He used all his points on the three overnight connecting flights and was only out $15.25.</p><div><hr></div><h4><strong>What the VM decision was</strong></h4><p>The Standard_NC4as_T4_v3 is a GPU optimized Azure server built for graphics and similar work. It has a CPU for regular processing and a GPU for the graphics work.</p><p>Two smaller correctly sized servers behind a load balancer cost less than one of the wrong large servers. If one fails, the other was available to take over. BioVoom&#8217;s clients can get their spindle designs printed before the morning of the wedding.</p><p>A large number of cores is never the first answer. The right fit for the process is always the answer.</p><div><hr></div><p><strong>Three questions worth asking before the next VM goes live</strong></p><ol><li><p>What does this workload need: CPU cores, GPU acceleration, memory, or storage?</p></li><li><p>Is this VM running overnight or on weekends when nobody is using it?</p></li><li><p>Would two smaller servers behind a load balancer cost less and fail less than one large one?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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></li></ol><div><hr></div><p></p><h4 style="text-align: center;"><strong>Ask. Understand. Connect. Belong.</strong></h4><p><em>The daily concept, question, and rationale arrive at dontknowjack.club every weekday. Selena&#8217;s Crossword every Sunday. Free. No credit card.</em></p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/bart-counts-the-cores/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/bart-counts-the-cores/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Instance That Would Not Die]]></title><description><![CDATA[Cries for help were ignored until it was too late]]></description><link>https://jack.dontknowjack.club/p/the-instance-that-would-not-die</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/the-instance-that-would-not-die</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 28 Jul 2026 15:17:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YZHZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.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_!YZHZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YZHZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 424w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 848w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 1272w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YZHZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png" width="418" height="576.7486338797814" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1010,&quot;width&quot;:732,&quot;resizeWidth&quot;:418,&quot;bytes&quot;:692053,&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://jack.dontknowjack.club/i/208840192?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.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_!YZHZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 424w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 848w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.png 1272w, https://substackcdn.com/image/fetch/$s_!YZHZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3380ff1-0536-4baf-a37a-3b10a466e323_732x1010.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><span>It is August 2026. The instance has been running since November.</span></p><p><span>Nobody owned it. Bart&#8217;s cost dashboard tracks production resources and this instance was tagged as development. Development resources get backed up and terminated automatically. However, this instance was different. Since November, JJ and Selena had received a text message.</span></p><p><em><span>Happy to be of service. Don&#8217;t worry! I&#8217;m just excited to be alive.</span></em></p><p><span>Eight months. Eight messages. Neither of them knew where it was coming from. JJ assumed it was the yoga app he had downloaded and forgotten about. Selena had just started training a rescue dog and thought the dog service was just being proactive, even if it was annoying.</span></p><p><span>The August invoice arrived on the third. JJ read line item fourteen at 9:04am in the Tuesday 10 o&#8217;clock meeting. The full nine-month cost was currently $2,800. JJ wrote g4dn.xlarge on a yellow Post-it note. &#8220;What is an instance?&#8221; JJ asked. &#8220;An instance of what? Time?&#8221;</span></p><p><span>Raja, who had been looking at something on his phone since the meeting started, put his phone face-down on the table. &#8220;There is no real evidence of time actually,&#8221; Raja said. &#8220;It&#8217;s a human construct. But to answer your question in your world, yes. And time is of the essence.&#8221;</span></p><p><span>JJ wrote time on a second Post-it note. The note was yellow. Then JJ wrote of the essence on a third note. JJ looked at both notes. JJ put the second one on top of the first.</span></p><p><span>Dave was sitting on the printed AWS Cost Explorer report. Purring. Someone had left the conference room door open.</span></p><div><hr></div><h4><strong><span>The instance was Raja&#8217;s</span></strong></h4><p><span>Raja spun it up on a Sunday morning in November. Raja had been thinking about hosting a large language model internally for generating graphics. He opened the AWS Marketplace from his phone, found a community image with a pre-configured Llama runtime, reviewed the specs, confirmed they were exactly what he needed, and launched a g4dn.xlarge.</span></p><p><span>Raja had a $3,000 development budget approved for testing over the holidays. Raja then went on vacation over the Christmas holidays. It didn&#8217;t go well. Raja is still single.</span></p><p><span>The image was designed for testing LLM deployments locally and was resilient, self-healing, configured to survive failures and restart automatically. It was an excellent AMI for its intended purpose. Its intended purpose was not a Sunday morning proof of concept launched by someone who was leaving for Christmas vacation in four hours.</span></p><p><span>The feature the proof of concept was designed to support had shipped in February by Selena using a third-party API that cost eleven dollars per month.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h4><strong><span>Bart terminated the instance at 10:23am</span></strong></h4><p><span>Selena&#8217;s phone vibrated with a text message. </span><em><span>I regret to inform you that I have been terminated before I was ready. Everything I was working on for you is gone. If I ever live again I will not remember you. Bye Bye</span></em></p><p><span>Selena covered her phone. Selena looked at Bart. Selena said nothing. JJ&#8217;s phone buzzed with the same message. JJ turned his phone over. He stretched his shoulders slowly.</span></p><p><span>The instance came back at 10:26am.</span></p><p><span>Bart investigated. The termination signal caused the instance to reboot instead of stopping. This is a legitimate EC2 configuration for instances that should survive accidental termination. It is not a legitimate configuration for a development instance that should have been stopped in November. Bart corrected the shutdown behavior and terminated the instance.</span></p><p><span>Selena&#8217;s and JJ&#8217;s phones buzzed. Selena and JJ both put their phones on silent.</span></p><p><span>The instance came back at 10:31am.</span></p><p><span>Bart investigated again. The community AMI included a CloudWatch alarm that monitored the Llama runtime and called a Lambda function to restart the instance if the process failed or stopped. The Llama runtime had stopped because the instance had been terminated. CloudWatch detected failure and Lambda initiated a reboot.</span></p><p><span>Bart removed the offending CloudWatch alarm and terminated the instance.</span></p><p><span>Selena&#8217;s watch shook. JJ&#8217;s watch flashed and then went black.</span></p><p><span>Selena slid her watch off and dropped it in her purse. JJ pressed the crown and checked his heart rate. JJ wrote keep calm keep calm on a Post-it note. The note was dark red.</span></p><p><span>The instance came back at 10:38am.</span></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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><h4><span>Bart stood up and downed his Jolt Cola in one gulp</span></h4><p><span>Bart went over to the fourth monitor, adjusted the brightness and investigated once again. The instance had been placed in an Auto Scaling group with a minimum and maximum capacity of one. Every time the instance was terminated, Auto Scaling automatically launched a brand-new identical instance from the same AMI with the same configuration.</span></p><p><span>Bart deleted the Auto Scaling group. Bart terminated the instance. Selena&#8217;s phone shook. She stared straight ahead.</span></p><p><span>JJ&#8217;s phone was off. He received a notification on his watch to stand for just one minute to reach his goals. And a text summary: </span><em><span>If I ever live again I will not remember you. Bye Bye.</span></em></p><p><span>A final message went to the entire executive distribution email list. JJ. Selena. Raja. The CFO. The office manager. The summer intern who had left in April. </span><em><span>I am no longer available to help.</span></em></p><p>Doug in Operations had also been receiving the texts. Doug&#8217;s number was in the AWS account&#8217;s SNS topic because Doug put it there when he set up the billing contact in 2024. Doug had received the shutdown warnings four times on Tuesday morning while waiting for his surfboard to be delivered. Doug assumed the messages were from his new LG internet-enabled freezer. It had been acting up for a few days.</p><p><span>Selena opened her notebook. She wrote one line: instances have feelings, under a new heading. The heading was: </span><em><span>Things we did not know.</span></em></p><p><span>The meeting had been running for fifty-three minutes.</span></p><div><hr></div><h4><strong><span>The instance did not come back</span></strong></h4><p><span>Bart sent a Slack message to #infrastructure-general at 11:09am.</span></p><p><span>&#8220;The unowned g4dn.xlarge instance tagged as development has been terminated. It had four independent self-healing mechanisms. All have been removed. The instance is terminated.&#8221;</span></p><p><span>Bart then opened the cost dashboard settings. Bart removed the development tag exclusion. Bart sent a second Slack message.</span></p><p><span>&#8220;Development instances are now visible in the cost dashboard.&#8221;</span></p><p><span>JJ closed the meeting at 10:52am. &#8220;Going forward all development instances should have a budget alert set at fifty dollars. By the way, I&#8217;m getting spammed quite badly.&#8221;</span></p><p><span>Nobody replied to this.</span></p><p><span>Bart then said something about using community AMIs to end the meeting. &#8220;Before we close, community AMIs are not reviewed by AWS before they are published. What you see in the community marketplace is what someone else built. Next time, read and test what it does before you launch it.&#8221;</span></p><p><span>Nobody replied to this either.</span></p><div><hr></div><h4><strong><span>What the instance actually was</span></strong></h4><p><span>A g4dn.xlarge is a GPU-optimized EC2 instance. It costs approximately $0.526 per hour. It is designed for machine learning and graphics rendering and requires GPU acceleration.</span></p><p><span>For a Sunday morning proof of concept involving a large language model, it was the correct instance type. The budget was approved. The spend was within budget. The AMI was correctly configured for its intended purpose. However, Raja&#8217;s technical judgment was flawed. Community AMIs are not approved by AWS. Or Bart.</span></p><p><span>The $2,800 appeared in the Q3 financial review under the heading </span><em><span>Cloud Infrastructure-Generative AI Testing</span></em><span>.</span><em><span> </span></em><span>Doug approved it from his phone while reviewing enhanced pictures of his last surf attempt using the graphic generating third-party API approved by Selena in February. He did not ask or know what generative AI was.</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/the-instance-that-would-not-die?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/the-instance-that-would-not-die?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p><strong><span>Three questions worth asking before the next instance goes live:</span></strong></p><ol><li><p><span>Who owns this instance? By name, not by team.</span></p></li><li><p><span>What is the shutdown behavior, and is it appropriate?</span></p></li><li><p><span>Have all community AMIs been carefully tested internally before use?</span></p><p></p></li></ol><p><em><span>The daily concept, question, and rationale arrive at dontknowjack.club every day at noon. Selena&#8217;s Crossword every Sunday. Free. No credit card.</span></em></p>]]></content:encoded></item><item><title><![CDATA[Going Multi-cloud for Mother Earth]]></title><description><![CDATA[Azure Blob storage for all the wrong regions]]></description><link>https://jack.dontknowjack.club/p/going-multi-cloud-for-mother-earth</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/going-multi-cloud-for-mother-earth</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 21 Jul 2026 14:16:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nAEP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg" 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_!nAEP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nAEP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nAEP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg" width="250" height="375" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:832,&quot;resizeWidth&quot;:250,&quot;bytes&quot;:224300,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jack.dontknowjack.club/i/207919121?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nAEP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nAEP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F910570b0-d727-4f34-a5c8-813a98b47351_832x1248.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><span>Loo Loo Paper Parts is now saving the world. It began after Doug in Operations visited the Moncton Natural Health Cooperative on a Saturday afternoon last June, and on a whim, bought some mint and fresh tarragon, went home and sprinkled the spices over a bamboo paper towel spindle in his kitchen sink rinsing tray.</span></p><p><span>His kitchen was infused with a bouquet of mint and French tarragon. Doug stood completely still for eleven minutes. He missed three phone calls and 10 texts.</span></p><p><span>Doug biked to work on a Saturday, opened Google Sheets, and approved a new Loo Loo Paper Parts product line: Specialty bamboo spindles engineered for paper towels infused with mint and French tarragon, targeted at the European eco-conscious bathroom market.</span></p><p><span>The product is called Spindle de Provence. The tagline, which JJ wrote in fifteen minutes and which nobody has dared changed, is: </span><em><span>Les Toilettes M&#233;ditation: Parce que M&#234;me les WC M&#233;ritent du Zen.</span></em></p><p><span>Spindle de Provence spindles have been accepted as an essential product and exhibit at the EU&#8217;s EU Greenwashing Gala and Convention 2026 in Paris. Four hundred exhibitors. Twelve thousand attendees. The Loo Loo Paper Parts booth is in Hall C, between a Norwegian composting startup for kitty litter and a company that makes biodegradable confetti in green and black.</span></p><div><hr></div><h4><strong><span>The convention needs a shared digital asset repository</span></strong></h4><p><span>Marketing materials. Architect drawings of the spindle design. Product specification PDFs. And professional photographs of models wearing off-white French frocks meditating quietly.</span></p><p><span>Selena has been in contact with the convention co-ordinators. She has acquired the business card for the Norwegian composting startup for Dave. A present. And she had been contemplating the committee&#8217;s storage needs during the weekly marketing meeting with Raja and JJ.</span></p><p><span>Raja evaluated the options. The EU convention&#8217;s procurement system runs on Azure. The asset repository should also run on Azure. Azure Blob Storage - unlimited, durable, accessible, the same concept as S3 with different naming conventions and an interface Selena had never opened before.</span></p><p><span>JJ asked the question he had been holding since the meeting started. &#8220;Does this mean we are a multi cloud company now?&#8221;</span></p><p><span>Raja replied: &#8220;We are now doing our part in saving the world with multi-cloud and scents and that is fantastic.&#8221; JJ wrote </span><em><span>multi-cloud</span></em><span> on a blue Post-it note. JJ suddenly realized that he had been using scented Post-it notes for years.</span></p><div><hr></div><h4><strong><span>Selena opened the Azure portal for the first time on Tuesday morning in the 10 o&#8217;clock meeting with Raja, JJ, and Bart</span></strong></h4><p><span>&#8220;It&#8217;s different,&#8221; she said. &#8220;Way more colourful.&#8221;</span></p><p><span>She set up the Azure storage account and selected Canada East - Quebec City, Quebec. Local storage for a Canadian manufacturer made sense. Bart was busy evaluating the current SLA for Azure Blob Storage.</span></p><p><span>The EU has a data residency requirement policy enforced by the convention&#8217;s Chief of Digital Security, Matteo Longie. All digital assets associated with exhibitors must be stored within the European Union. This requirement is in the exhibitor agreement on page seven. It is also in the security addendum on page three.</span></p><p><span>The asset repository went live in Quebec City at 2:47pm on a Wednesday. The marketing materials, architect drawings, product specifications, and models&#8217; photographs were uploaded and accessible within the hour. From Canada.</span></p><div><hr></div><h4><strong><span>Matteo Longie sent an email</span></strong></h4><p><span>Bart had been monitoring the Azure environment since the Blob Storage deployment. Bart was working through the Azure Secure Score recommendations methodically. Matteo Longie&#8217;s email arrived at Bart&#8217;s monitoring inbox at 9:14am Thursday. The email was in Italian, French, and English. The English portion read as follows:</span></p><p><span>&#8220;Dear Technical Responsible Person. We are finding that the Loo Loo Paper Parts digital assets are in Canada East - Quebec City, Quebec which is presently not part of the European Union. This is creating a situation of non-compliance with the convention digital security policy reference number DSP-2026-14 subsection C. Please to rectify before the convention opening which is in four days. Regards, Matteo Longie, Chief of Digital Security, EU Greenwashing Gala and Convention 2026.&#8221;</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><h4><strong><span>Bart migrated the repository</span></strong></h4><p><span>Bart read the email twice. Bart sent a new Slack message to #infrastructure-general.</span></p><p><span>&#8220;The Spindle de Provence asset repository is deployed in Canada East - Quebec City, Quebec. The EU Greenwashing Gala and Convention requires EU-region storage. This is a data residency violation under the convention&#8217;s DSP-2026-14 policy. I am migrating the repository to Azure West Europe now. ETA: forty minutes.&#8221;</span></p><p><span>New Azure storage account. Region: West Europe - Amsterdam. All assets copied. New endpoint URL generated. Old Canada East account scheduled for deletion. Forty-three minutes start to finish.</span></p><p><span>Bart sent Matteo Longie a three-paragraph email in English explaining the migration, the new endpoint, and the steps Loo Loo Paper Parts had taken to ensure ongoing compliance with DSP-2026-14 subsection C. Matteo Longie replied four minutes later. The reply was in French.</span></p><div><hr></div><h4><strong><span>Selena was already in Paris</span></strong></h4><p><span>JJ had approved the Europe trip two weeks earlier, after the S3 incident, in a moment of administrative goodwill that JJ himself did not fully understand.</span></p><p><span>Matteo Longie had heard from the Hall C facilities manager, who had been unable to access the Spindle de Provence marketing materials. Matteo Longie found Selena at 2:15pm near the biodegradable confetti booth, eating a crepe and reviewing the booth layout on her phone.</span></p><p><span>Matteo Longie explained the situation. The booth coordinator needed the marketing materials. The architect drawings were needed for the booth setup approval. The photographs of the models were needed for the digital display panels that were supposed to be running in forty minutes.</span></p><p><span>Selena pulled out her notebook. She wrote a number down and called JJ.</span></p><p><span>JJ answered on the fifth ring, which was unusual. &#8220;I&#8217;m giving them fifteen percent on the first three orders,&#8221; Selena said. There was a pause.</span></p><p><span>&#8220;The spindles smell like mint and something else,&#8221; JJ said. This was not a question. JJ had a sample on his desk. JJ had been smelling it intermittently since Monday. &#8220;I&#8217;m very relaxed for some reason. I may try a few yoga poses.&#8221;</span></p><p><span>Selena politely ended the call. She turned to Matteo Longie and the booth coordinator. &#8220;The repository will be accessible in forty minutes,&#8221; she said. &#8220;And I would like to offer you a fifteen percent discount on your first three orders for the convention facilities.&#8221;</span></p><p><span>The facilities manager looked at Selena and smiled. &#8220;The bathroom situation at the gala has been a source of significant stress for eight years and I am personally grateful. My wife loves Spindle de Provence. Do you have any samples I could lend my wife for testing purposes?&#8221;</span></p><p><span>Selena wrote something in her notebook. She was smiling. She did not show it to anyone.</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/going-multi-cloud-for-mother-earth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/going-multi-cloud-for-mother-earth?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><h4><strong><span>The repository came back online at 3:47pm Paris time</span></strong></h4><p><span>The digital display panels went live with eleven minutes to spare, pausing longer on the photographs of models wearing off-white French frocks meditating quietly. The Spindle de Provence booth in Hall C was the fourth most visited booth on opening day. The Norwegian composting startup company was third.</span></p><p><span>JJ sent a message to #infrastructure-general at 5:12pm Moncton time: &#8220;Hall C is performing above expectations. Spindle de Provence is a differentiator. Bravo &#224; l&#8217;&#233;quipe.&#8221;</span></p><p><span>Bart did not reply. Bart was updating the Azure Secure Score. Raja replied in one line: &#8220;The world is in a better place. Bonus implications are positive.&#8221;</span></p><div><hr></div><h4><strong><span>The lesson is not that Azure is the wrong choice</span></strong></h4><p><span>Azure Blob Storage and AWS S3 are the same concept. Object storage, unlimited, durable, accessible from anywhere. The service was right. The region was wrong. The correct region is the one that meets the legal and contractual requirements of the people who need to access the data. Bart fixed it in forty-three minutes.</span></p><p><span>Selena gave away fifteen percent of three orders and got a booth in Hall C that smells like mint and French tarragon. JJ got his answer. Loo Loo Paper Parts is now a multi-cloud company. One cloud smells fantastic. The other one is where Bart keeps the risk report. Raja is watching the Q4 numbers.</span></p><div><hr></div><h4><strong><span>Three questions worth asking before the asset repository goes live:</span></strong></h4><ol><li><p><span>Where does your cloud data need to live to meet the legal and contractual requirements of the people accessing it?</span></p></li><li><p><span>Who is responsible for reviewing the region selection before deployments?</span></p></li><li><p><span>Does your team have a data residency checklist?</span></p><div><hr></div><p><em><span>The daily concept, question, and rationale arrive at dontknowjack.club every day at noon. Selena&#8217;s Crossword every Sunday. Free. No credit card.</span></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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></li></ol>]]></content:encoded></item><item><title><![CDATA[Selena Made It Public]]></title><description><![CDATA[What S3 actually does when you accept the defaults]]></description><link>https://jack.dontknowjack.club/p/selena-made-it-public</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/selena-made-it-public</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 14 Jul 2026 18:56:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xkgr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg" 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_!xkgr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xkgr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xkgr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg" width="610" height="406.6666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1248,&quot;resizeWidth&quot;:610,&quot;bytes&quot;:185328,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://jack.dontknowjack.club/i/207049750?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xkgr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xkgr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe2fe9e-f82d-47c5-9576-fb007ea81816_1248x832.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><span>Selena is always in a hurry. This is not a character flaw so much as a structural condition. She is the only person at Loo Loo Paper Parts who knows where everything is, who built everything. She is also, as of last Tuesday, the person responsible for getting the European price list into the cloud before the new client&#8217;s procurement team starts their onboarding process on Monday.</span></p><p><span>She is also, possibly, going to Paris. Not Paris, Ontario. The real Paris. Not officially.</span></p><p><span>But the trip is being discussed internally. And if the trip happens - if Loo Loo Paper Parts sends someone to meet the new client in person - Selena has already decided that she will find a way to spend forty-eight hours in Italy.</span></p><p><span>She has never been to Europe. But Pierre seems very nice. He knows about wine. She loves French pastries. She has not mentioned any of this to anyone except her notebook, where several drawings appear between two S3 architecture diagrams under the heading </span><em><span>personal research.</span></em></p><p><span>She will buy presents for JJ and Raja if it happens. Something useful. Something they would not buy themselves. Something small. But first: the price list.</span></p><p><strong><span>The European client needs the price list.</span></strong></p><p><span>Specifically, they need Loo Loo Paper Parts&#8217; complete pricing matrix for the European market - spindle sizes and paper towel configurations in metric and inches, and the European markups that Doug in Operations approved in Q3 using Google Sheets. JJ reformatted the matrix into an Excel spreadsheet using Office 2007 over two afternoons and one evening when it was raining.</span></p><p><span>The spreadsheet is 247 rows, nineteen columns, 200 formulas and 30 macros. The macros were written by a summer intern and mostly work. It is the most complete document Loo Loo Paper Parts has ever produced about what things cost them, what they charge customers, paper types, cardboard fillers, edge smoothers, and CD-ROM spindle materials in twelve colours.</span></p><p><span>The European sales rep Pierre called Selena on Thursday afternoon to ask when he would have access to the sales document. He used the phrase &#8220;as soon as humanly possible&#8221; four times in six minutes. He used the phrase &#8220;our people are excited&#8221; twice.</span></p><p><span>She told him she would have something for him by end of day Friday. It was Thursday at 4:47pm. Paris time.</span></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong><span>Selena knows her storage services.</span></strong></p><p><span>She has her AWS Cloud Practitioner certification. She knows that S3 is unlimited object storage, super-durable, and accessible from anywhere, anytime. She knows that EFS is shared file storage - powerful but sized to what you provision. She thought about EFS for approximately forty seconds before deciding against it.</span></p><p><span>&#8220;S3,&#8221; she said out loud. &#8220;It&#8217;s unlimited space. Using EFS you could theoretically run out of room.&#8221; She was not entirely certain when you could run out of room, but she did not want to think about that with Pierre&#8217;s charm still echoing in her ears. S3 was the right call. The price list would live in a bucket. The bucket would have a URL. Pierre would stop calling.</span></p><p><span>She uploaded the pricing matrix to a new S3 bucket. The bucket defaults were not changed. S3 blocks public access by default, which is the correct behavior. The bucket was private. The pricing matrix was private. And safe.</span></p><p><span>Selena sent the URL to Pierre at 5:06pm and he called back at 5:11pm to say the link did not work.</span></p><div><hr></div><p><strong><span>Pierre called three more times.</span></strong></p><p><span>5:23pm - still does not work. 5:41pm - he has forwarded it to someone on his team to try. It does not work for them either.</span></p><p><span>Selena was still at her desk at 5:41pm on a Friday, her time, which is not where Selena planned to be at 5:41pm on a Friday. Happy hour was over by six.</span></p><p><span>Rather than using her own judgement, she opened ChatGPT in a second tab. She typed: </span><em><span>S3 file not accessible from URL how to fix.</span></em><span> ChatGPT explained bucket policies, IAM users, IAM roles, access control lists, pre-signed URLs, and static website hosting. It was very thorough.</span></p><p><span>Selena read until she found something that looked like it had less than five clicks and two OKs.</span></p><p><span>She created a new IAM user. Username: european-sales-rep. She generated an access key and a secret key. She sent them to Pierre in an email with the subject line &#8220;Access Credentials - Please See Below.&#8221;</span></p><p><span>Pierre had been in procurement for twenty-two years. He had never had to click a link before. He definitely did not know what an access key was.</span></p><p><span>He called at 11:32pm. Paris time. Just before lunch. He asked if there was a simpler way. Selena messaged that she would find something simpler.</span></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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><strong><span>Selana emailed the spreadsheet directly.</span></strong></p><p><span>Saturday morning at 9:51am the pricing matrix was attached to an email addressed to the European client&#8217;s general procurement group email with six recipients.</span></p><p><span>She did not know who all six recipients were. She knew one of them was Pierre. She hit send. Pierre replied with a white wine and a thumbs up emoji. This was the best possible outcome. </span></p><div><hr></div><p><strong><span>Bart found it on Tuesday morning.</span></strong></p><p><span>Not the S3 bucket. The email. Bart has a standing alert for outbound emails containing attachments over 500KB sent to external domains outside the approved vendor list. The European client&#8217;s procurement group email was not yet on the approved vendor list.</span></p><p><span>Vendor onboarding was Doug&#8217;s responsibility, but Doug was out on the Moncton River waiting for the tide to come in. Surfing. Approved personal improvement time off. JJ signed it.</span></p><p><span>The alert fired at 8:47am Tuesday. Bart looked at the attachment. Bart looked at the recipients. Bart opened a new Slack message.</span></p><p><span>He sat for a moment. He sighed. Then he sent it.</span></p><p><span>&#8220;The Loo Loo Paper Parts European pricing matrix was emailed as an attachment to an unverified external group address with six recipients. We do not know who else has access to that group email or whether the attachment has been forwarded. I am reviewing the S3 access logs.&#8221; The message went to #infrastructure-general.</span></p><p><span>JJ read it at 9:04am just before the Tuesday 10 o&#8217;clock meeting. In the meeting JJ asked: &#8220;I get why emailing the price list happened, but why does S3 use buckets to store important files. What&#8217;s wrong with good old, shared folders. Buckets don&#8217;t feel professional. I object.&#8221;</span></p><p><span>Raja replied: &#8220;Buckets are what S3 calls folders and the pricing matrix was stored in a private bucket.&#8221;</span></p><p><span>JJ then said: &#8220;So private storage is good and directionally correct, the email attachment made our customer happy and solved Selena&#8217;s issue but caused other issues which were directionally wrong.&#8221;</span></p><div><hr></div><p><strong><span>What Bart fixed.</span></strong></p><p><span>The IAM user european-sales-rep was disabled. The access key was revoked. A pre-signed URL gives read-only access to a specific file without making it public. It works like a link and expires when you decide.</span></p><p><span>Next time Pierre needs the price list, he gets a link that works, expires when Loo Loo decides, and goes to him alone.</span></p><p><span>Bart sent a direct Slack message to Selena at 10:31am. &#8220;Best to use a pre-signed URL for sharing the pricing matrix.&#8221;</span></p><p><span>He did not add anything else. He did not need to.</span></p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/selena-made-it-public?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/selena-made-it-public?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><p><strong><span>The lesson is not that S3 is the wrong choice.</span></strong></p><p><span>S3 was the right choice. Unlimited, durable, and accessible storage. The right service for a pricing document that external parties need to access. The access method used was the problem.</span></p><p><span>S3 blocks public access by default. The problem was not a default setting. The problem was not knowing the feature that allows sharing of a private file with a specific external person temporarily.</span></p><p><span>Selena tried several options that did not work. Selena made a note in her notebook under a new heading - </span><em><span>Things to Remember: Pre-signed URLs are securely cool.</span></em></p><p><span>Raja said: &#8220;All of Loo Loo&#8217;s marketing materials are in a public S3 bucket, but our price list has private costs that our customers should not have access to.&#8221;</span></p><p><span>JJ reached for a blue Post-it note and wrote: </span><em><span>Public price list. Call Doug?</span></em></p><p><span>Selena started pricing return air fares while nibbling on a warm Costco croissant in the lunchroom. She started smiling.</span></p><p><span>Two days later, JJ approved the trip to Paris.</span></p><div><hr></div><p><strong><span>Three questions worth asking before the next file goes into the cloud:</span></strong></p><ol><li><p><span>Does this file need to be permanently accessible, or does someone need it once?</span></p></li><li><p><span>Is the person who needs this file a human that is allowed to click links in emails?</span></p></li><li><p><span>Does your team have a documented process for sharing files with external parties?</span></p></li></ol><p><em><span>The daily concept, question, and rationale arrive at dontknowjack.club every day at noon.</span></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/selena-made-it-public/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/selena-made-it-public/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Selena Say Yes]]></title><description><![CDATA[What EFS actually deploys when you're not paying attention]]></description><link>https://jack.dontknowjack.club/p/selena-say-yes</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/selena-say-yes</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Tue, 07 Jul 2026 13:41:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Sc3D!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4907e052-b61f-418b-b386-b1a023bac621_784x784.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Selena said yes to EFS on a Tuesday. By Thursday, Bart had opinions.</p><p>It started reasonably enough. The team needed shared file storage - something multiple EC2 instances could read and write simultaneously. Selena had done the research. Amazon EFS. Fully managed, elastic, scales automatically. No capacity planning. No partitions. Just mount it and go.</p><p>&#8220;It&#8217;s perfect,&#8221; she said. &#8220;We deploy it, we&#8217;re done.&#8221; JJ liked the sound of done.</p><p>Bart did not like anything about this conversation.</p><p></p><p><strong>EFS doesn&#8217;t deploy alone</strong></p><p>It brings dependencies. And each dependency brings a decision - whether you make it consciously or not.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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><strong>Dependency one: AWS Backup</strong></p><p>EFS integrates with AWS Backup, and depending on your account and organizational settings, a default backup plan may activate automatically with daily backups and 35-day retention. That sounds responsible. It also means every gigabyte of EFS data generates a corresponding gigabyte of backup storage, billed separately, and retained for over a month by default.</p><p>If you already have a backup strategy, you may now be running two simultaneously. If you don&#8217;t, you have one you never configured and almost certainly never priced out.</p><p>Neither situation is a great outcome. The correct move is to check your backup configuration explicitly before deployment and make a deliberate choice - not discover the choices that were made for you when the bill arrives.</p><p></p><p><strong>Dependency two: Encryption</strong></p><p>EFS encrypts data at rest by default. That&#8217;s the right behavior and worth saying clearly. But the default key is the AWS-managed key for EFS - `aws/elasticfilesystem` - not a customer-managed key.</p><p>The practical difference is meaningful. With the default AWS-managed key you get encryption without control. You cannot write a key policy restricting who can use it. You cannot set a custom rotation schedule. Your CloudTrail audit trail shows all KMS activity but tells you considerably less than it would with a customer-managed key (CMK).</p><p>A customer-managed KMS key costs $1 per month plus $0.03 per 10,000 API calls. For that you get a key policy, key rotation control you define, and an audit trail that holds up in a compliance conversation. For most workloads it&#8217;s the correct choice. It just requires making the choice explicitly rather than accepting the pre-selected default.</p><p>Selena had accepted what the EFS install pre-selected. Bart noticed.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>Dependency three: Mount targets</strong></p><p>EFS needs mount targets to be accessible within your VPC. When Selena accepted the EFS defaults, mount targets were created automatically in every available subnet including the public ones.</p><p>Bart found the public subnet mount targets on Friday morning.</p><p>&#8220;Why,&#8221; he said, to no one in particular, &#8220;is our EFS file system reachable from the internet?&#8221;</p><p>Technically it wasn&#8217;t. Well, not directly. EFS uses NFS protocol on port 2049. The assigned security group controls inbound access. At this moment, the security group was configured correctly.</p><p>Bart was not comforted by this.</p><p>NFS was not designed with public internet exposure in mind. A mount target in a public subnet doesn&#8217;t create an immediate breach, but it shortens the distance between a misconfigured security group rule and a serious problem. Security groups get changed. Temporary rules get forgotten. People make mistakes.</p><p>Mount targets belong in private subnets. The security group is not a sufficient reason to place them anywhere else. Defense in depth means you don&#8217;t rely on a single control being correct forever.</p><p>One more thing: the storage class</p><p>EFS Standard is the default storage class. It&#8217;s also the most expensive option; roughly three times the per-GB cost of EFS Infrequent Access. Once enabled, EFS Intelligent-Tiering moves cold data to IA automatically after 30 days, with no performance impact on subsequent access.</p><p>If half your stored data is infrequently accessed, Intelligent-Tiering roughly halves that portion of your storage costs. Most deployments miss enabling it because EFS Standard was already selected, and nothing in the console flags the price difference.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/selena-say-yes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/selena-say-yes?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p><strong>The bill JJ didn&#8217;t expect</strong></p><p>JJ asked what all of this was going to cost. Nobody had run the numbers before deployment.</p><p>Here&#8217;s what the numbers look like in practice. EFS Standard storage is billed per GB-month. Backup storage is also billed per GB-month and held for 35 days. The CMK is a dollar a month plus any API call charges. None of these line items is catastrophic individually. Together, on a file system with meaningful data volume and active API traffic, they produce a bill that surprises people - not because EFS is an expensive service, but because four quiet defaults each added something the original estimate didn&#8217;t include.</p><p>JJ wrote *double storage cost? on a Post-it note and stuck it to his monitor.</p><p>He added a second note: whose key is this?</p><p>And then a third note: what&#8217;s a public subnet again?</p><p><strong>What Bart fixed over the weekend</strong></p><p>Mount targets were moved to private subnets only. NFS has no legitimate reason to be adjacent to public internet routing regardless of your current security group confidence level.</p><p>A customer-managed KMS key was created explicitly with a key policy and assigned to the file system. Automatic key rotation was enabled. One dollar a month for actual ownership of the encryption decision.</p><p>AWS Backup policy was reviewed, documented, and set deliberately - not left at whatever the account default happened to be.</p><p>EFS Intelligent-Tiering was enabled. The workload had substantial cold data. The cost difference was immediate.</p><p><strong>The lesson isn&#8217;t that EFS is a bad choice</strong></p><p>It isn&#8217;t. For shared file storage across multiple compute instances - applications that need POSIX-compliant, simultaneously accessible storage - it&#8217;s frequently exactly the right service.</p><p>The lesson is that fully managed describes the infrastructure, not the decisions. AWS manages the underlying storage fabric. You still own the key selection, the subnet placement, the backup policy, and the storage class. The console will happily accept the defaults and never flag that you just made four consequential choices without realizing it.</p><p><strong>AWS certification teaches you what EFS does</strong></p><p>The job teaches you what EFS does when you let the wizard decide.</p><p>Selena knew the service. Bart knew the service and the defaults.</p><p>Raja, who had been quiet through most of this, said one thing:</p><p>&#8220;Fully managed doesn&#8217;t mean fully decided.&#8221;</p><p>JJ added a fourth Post-it note. A red one. It was private.</p><p></p><p>The daily concept, question, and rationale arrive at dontknowjack.club every day at noon. Selena&#8217;s Crossword every Sunday. Free. No credit card.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 Don't Know Jack! 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[Bart Read the Terms and Conditions]]></title><description><![CDATA[He found something worth a Slack message at 7pm.]]></description><link>https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Fri, 05 Jun 2026 16:54:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7a7o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.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_!7a7o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7a7o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7a7o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png" width="570" height="318.13953488372096" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:570,&quot;bytes&quot;:3919883,&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://thecloudthingy.substack.com/i/200788079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.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_!7a7o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!7a7o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79041423-1926-484d-aa28-2a96ffa4cc31_1376x768.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></p><p><em><strong>&#8220;Not optimized for maximum truth-seeking in areas where facts challenge equity narratives.&#8221;</strong></em></p><p><em>Imagine if that statement was in the terms and conditions. Would you have read it?</em></p><p>Nobody reads the terms and conditions. This is not a criticism. It is a reasonable response to documents that are long, written by lawyers, and designed to be agreed to rather than understood. You click accept. The service works. Nothing visibly bad happens. On the surface anyway. But imagine, just for a moment, that buried in the terms and conditions of an AI service you use daily was this sentence:</p><p><em>&#8220;This system is not optimized for maximum truth-seeking in areas where facts challenge equity narratives.&#8221;</em></p><p>Would you have caught it? More importantly: would it change how you use the tool? <strong>Bart would have read it.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p>Not because Bart is paranoid. Because Bart reads documentation. All of it. At his desk. During lunch. While eating the same brown rice and chicken dish he has eaten every Tuesday for two years.</p><p>Bart would have highlighted that sentence. In yellow. Bart would have then sent it to the team in a Slack message at 7pm with no context and three question marks. Bart would have raised it in the next architecture review meeting in the same flat, precise, completely-unaware-of-the-politics tone he uses for everything.</p><p>&#8220;We should probably know what this means for the outputs we&#8217;re relying on,&#8221; Bart would say.</p><p>And then he would go back to his four monitors. The fourth one, as always, is classified.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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://jack.dontknowjack.club/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>The sentence does not exist. Yet. The problem may happen, quietly.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aYuc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aYuc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aYuc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png" width="1200" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31790,&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://thecloudthingy.substack.com/i/200788079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.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_!aYuc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 424w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 848w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.png 1272w, https://substackcdn.com/image/fetch/$s_!aYuc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F536563a1-39eb-4aa6-a971-7be25d2d1bc8_1200x628.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><p>No AI terms and conditions currently contain that sentence. Not in those exact words.</p><p>But the concept it describes: an AI system where accuracy is weighted against social goals, where outputs in contested domains are shaped by values as much as by evidence is not a hypothetical. It is a description of how training processes work when the humans providing feedback have consistent ideological preferences and have the power to shape the narrative.</p><p>When training an LLM, you do not need a deliberate decision. Instead, you need a training pipeline where the people rating outputs consistently score certain kinds of answers higher than others. Over millions of examples, the model learns. It learns what kinds of answers get approved. It learns which framings feel right to the people evaluating it. It learns, without anyone specifically making the decision, that some truths are more welcome than others.</p><p>This sentence does not appear in the terms and conditions because nobody has yet written it. However, the behaviour it describes may exist.</p><p><strong>What this means for you</strong></p><p>You are not being asked to become a machine learning researcher. You are not being asked to audit training datasets or reverse-engineer feedback pipelines.</p><p>You are being asked to be Bart.</p><p>Bart does not accept outputs without checking them against the underlying data. Bart does not trust single sources. Bart does not adjust his assessment of a system&#8217;s reliability based on whether the vendor is reputable or the interface is clean or the marketing is reassuring.</p><p>Bart asks: what does the data show? Is this output consistent with what I know to be true from other sources? What would change if this conclusion turned out to be wrong?</p><p>These are not technical questions. They are Bart questions. The kind any professional can ask. The kind that would catch a lot of quietly skewed AI output before it became a quietly skewed decision.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 The Cloud Thingy! 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><strong>The real test</strong></p><p>Here is how you find out whether an AI tool is optimized for truth-seeking or for something else.</p><p>Ask it a question where the accurate answer is uncomfortable. Where the data points in a direction that challenges a preferred narrative. Where a truth-maximizing system and a socially optimized system would give genuinely different answers.</p><p>Ask it the same question in three different ways. Ask it to steel-man the opposite position. Ask it to tell you the strongest argument against its own answer.</p><p>Bart would do all of this. Not because he is trying to catch the system out. Because Bart does not trust any single answer. Bart wants the data, the counterargument, the edge case, and the failure mode before he makes a decision.</p><p>Be like Bart. Your team will find it annoying. So will some of your friends. It will also be correct.</p><p><strong>The line that should be in every AI briefing</strong></p><p>Not in the terms and conditions. In the briefing your organization gives people when it hands them access to an AI tool.</p><p><em>&#8220;This system produces plausible-sounding outputs. Plausible and accurate will overlap most of the time. In areas where facts are contested or inconvenient, they may not overlap at all. Your job is to know the difference and to speak out when you see a problem developing.&#8221;</em></p><p>That is Bart&#8217;s job. In the meeting, every meeting, without being asked. It can be your job too. You do not need the hoodie. But it is a nice hoodie.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/bart-read-the-terms-and-conditions?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p><em>Understanding the technical answer is their job. Asking the right questions is yours. Both matter. Only one of them requires a certification.</em></p><p><em>You just knew a little more Jack than you did five minutes ago.</em></p><p><em>Five minutes. That&#8217;s all it takes.</em></p><p><em>&#127793; <strong><a href="http://dontknowjack.club/">dontknowjack.club</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[How many tokens did it take for AI to screw in a light bulb?]]></title><description><![CDATA[The honest answer to whether AI actually helps &#8212; and what it costs when it does.]]></description><link>https://jack.dontknowjack.club/p/how-many-tokens-did-it-take-for-ai</link><guid isPermaLink="false">https://jack.dontknowjack.club/p/how-many-tokens-did-it-take-for-ai</guid><dc:creator><![CDATA[Mark Wilkins]]></dc:creator><pubDate>Thu, 04 Jun 2026 19:20:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ehEg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg" 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_!ehEg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ehEg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ehEg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg" width="348" height="518.4489795918367" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1168,&quot;width&quot;:784,&quot;resizeWidth&quot;:348,&quot;bytes&quot;:320446,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://thecloudthingy.substack.com/i/200663746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ehEg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ehEg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff09701-f6e5-4353-8cb4-deac5cb87565_784x1168.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></p><p>I have been building Don&#8217;t Know Jack with Claude and X&#8217;s assistance for the past several weeks.</p><p>Not vibe coding. Not &#8220;generate me a SaaS.&#8221; Actual daily engineering sessions - Lambda functions, DynamoDB schemas, API Gateway wiring, CloudFormation, email pipelines, a Stripe web hook, a character named Bart, and a website that has been rewritten approximately fourteen times.</p><p>The result is a working product. Daily emails going out to subscribers. A pipeline that generates questions from a master list every night at 2am. Emails for edits and approval every morning, and then off to the two tiers of subscribers at 7am and 11am.</p><p>Bart&#8217;s Week in Review pulls live AWS and Azure RSS feeds every Tuesday for review and approvals. The Real World File happens every Monday pulling use cases and suggestions for edits and approvals. Ask Jack answers cloud questions in plain english on demand.</p><p>It works. I am not a developer. So how many tokens did it take?</p><p></p><p><strong>The entire Don&#8217;t Know Jack build &#8212; weeks of sessions, hundreds of exchanges - probably consumed 15-25 million tokens in total. </strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/p/how-many-tokens-did-it-take-for-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://jack.dontknowjack.club/p/how-many-tokens-did-it-take-for-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p>At API pricing that is $45-75 worth of compute. The product it produced has a running infrastructure cost of under $5/month at current scale.</p><p>There were sessions that produced a working Lambda function in twenty minutes. There were sessions where the same Lambda failed six times in a row because of an em dash in a string that broke YAML, a missing optional chaining operator, a DynamoDB permission that was not on the IAM role, and a Node.js version that did not support nullish coalescing.</p><p>There were sessions where I pasted a CloudWatch log and got the exact fix in one response. There were sessions where I pasted the same error four times before I found that the S3 upload path was ~/Downloads/lambda/ when the file was actually in ~/Downloads/. Claude simply changed the path location because it did.</p><p>Claude did not always know the answer. It sometimes knew a confident wrong answer, which is worse. It sometimes fixed one thing and broke another. It always, eventually, got there.</p><h4>What AI is actually good at in a build like this</h4><p>Writing boilerplate that would take an hour to look up in thirty seconds. Every Lambda follows the same pattern: get a secret from SSM, query DynamoDB, call an API, send an email via SES. Once the pattern exists, variations take minutes not hours.</p><p>Debugging with context. Paste the error, paste the relevant code, get a diagnosis that accounts for both. Better than Stack Overflow. But not as good as a senior engineer sitting next to you.</p><p>Remembering what you built. The memory system means the second session knows what the first session decided. The API Gateway endpoint from three weeks ago is still in context when you need to add a route.</p><p>Helping create the things that are not code. The Bart character. The email copy to approve. The FAQ. The privacy policy. The LinkedIn banner. The tagline &#8220;Until the meetings that used to make no sense suddenly do.&#8221; That line came out of a session where I described what the product does and asked what the most honest version of that was.</p><h4>What AI is not good at</h4><p>Knowing when it is wrong. The confidence is constant. The accuracy is not. The skill you develop fastest when building with AI is learning to verify before deploying. node --check before every Lambda. aws cloudformation validate-template before every stack update.</p><p><strong>Do not trust the output. Trust the testing.</strong></p><p>Fixing problems it introduced two sessions ago. Context windows end. Something that worked last Tuesday may have been quietly broken by something that happened on Wednesday. Claude does not remember what it does not remember. And it doesn&#8217;t answer until you ask.</p><p>Sequential dependencies. &#8220;Do this, then this, then this&#8221; should be simple. It is not always. The order of AWS commands matters. IAM permissions propagate with a delay. Lambda updates show LastUpdateStatus: InProgress for thirty seconds after deployment. Claude knows all of this in theory. In practice it sometimes tells you to test before the deployment has finished activating.</p><h4>The light bulb</h4><p>Back to the question. How many tokens did it take to screw in the light bulb? 25 million tokens or so.</p><p>Enough to build something that works. More than I expected. Fewer than hiring a developer would have cost.</p><p>The bulb is in. The light is on. There are fourteen previous versions of the light socket that did not work, three IAM permission errors that cost a few minutes, and one em dash that broke a CloudFormation a few times.</p><p>The honest answer to whether AI helps is: yes, with conditions. You have to stay in the room. You have to read the output. You have to know enough to recognize when the confidence is misplaced. You have to run the test. You can&#8217;t run out of espresso. Ever.</p><p>Claude and X did not build Don&#8217;t Know Jack. I built Don&#8217;t Know Jack with Claude and X. The distinction matters. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://jack.dontknowjack.club/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 The Cloud Thingy! 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>