<?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[Out of Frame]]></title><description><![CDATA[I build computer vision and multimodal AI and the serving layer underneath. Every system that records also decides what not to record; the part it leaves out is usually where the truth was.]]></description><link>https://writing.abdomahmoud.com</link><image><url>https://substackcdn.com/image/fetch/$s_!3wRR!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95674953-4bcd-430a-91f8-ac9e918ed31a_916x916.jpeg</url><title>Out of Frame</title><link>https://writing.abdomahmoud.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 15 Aug 2026 05:39:15 GMT</lastBuildDate><atom:link href="https://writing.abdomahmoud.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Abdo Mahmoud]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[byabdo@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[byabdo@substack.com]]></itunes:email><itunes:name><![CDATA[Out of Frame]]></itunes:name></itunes:owner><itunes:author><![CDATA[Out of Frame]]></itunes:author><googleplay:owner><![CDATA[byabdo@substack.com]]></googleplay:owner><googleplay:email><![CDATA[byabdo@substack.com]]></googleplay:email><googleplay:author><![CDATA[Out of Frame]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Had a Conversation With My Grocery Data]]></title><description><![CDATA[Agent decided I was a heavy protein buyer. I said: that's for my dogs.]]></description><link>https://writing.abdomahmoud.com/p/i-had-a-conversation-with-my-grocery</link><guid isPermaLink="false">https://writing.abdomahmoud.com/p/i-had-a-conversation-with-my-grocery</guid><dc:creator><![CDATA[Out of Frame]]></dc:creator><pubDate>Fri, 14 Aug 2026 20:05:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d4f03d73-de63-4558-ae4c-e494fa28b0f1_1376x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An agent spent an evening logged into my grocery account, clicking through a year of receipts one page at a time, and at the end of it told me who I am. It got every number exactly right and the conclusion completely wrong, which turns out to be the part worth writing about.</p><p>Top purchase by a wide margin: 90% lean ground beef. Nearly every trip, every month, all year. <strong>Verdict: heavy protein buyer.</strong></p><p><em>That&#8217;s for my dogs.</em></p><p>One sentence, and the whole picture fell over. Every recommendation, every persona, every segment it had confidently assembled was sitting on a fact that was true about my receipts and false about me. My actual top human purchase is Zesty Jalape&#241;o kettle chips.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PEJg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PEJg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 424w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 848w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 1272w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PEJg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png" width="526" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:526,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62144,&quot;alt&quot;:&quot;Article content&quot;,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Article content" title="Article content" srcset="https://substackcdn.com/image/fetch/$s_!PEJg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 424w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 848w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.png 1272w, https://substackcdn.com/image/fetch/$s_!PEJg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ed57b74-15f6-4081-ab56-44ba204a1a77_526x500.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>The way to think about it is this. Your grocery store, your wine shop, and your bank have all been running exactly this analysis on you for years, and they&#8217;ve been good at it because it feeds their recommendation engines and their pricing models and their category management. Nielsen and Circana built businesses doing this. That&#8217;s fine, that&#8217;s the business. But it was never a conversation. You were the input.</p><p>This time I was in the loop, correcting the one thing that only I could correct, and the correction was worth more than the entire extraction that preceded it. I know what I like. My grocery store doesn&#8217;t. The gap between those two is where the insight lives, and until now there was no mechanism for closing it because you cannot argue with a segment you were never shown.</p><p>If you&#8217;ve ever wanted to look at your own purchase history the way you look at your step count or your sleep score, you already know the problem. The data exists, it&#8217;s detailed, it is unambiguously about you, and there is no way to get at it. No API, no export, just login screens and paginated receipt pages designed for someone glancing at one order rather than reading a year. Fitness and sleep got tracked because those platforms opened up. Retail never did, and it was never going to, because the asymmetry was the business.</p><p>So what changed? Agents don&#8217;t need an API. They click the same buttons you do, in the same browser you&#8217;d use, and they don&#8217;t get bored on page 40. I pointed one at three loyalty accounts (grocery, wine, specialty) and asked it to log in, pull a year of receipts, cross-reference the bank transactions, and build one picture out of the three. Which it did, in an evening, without anyone&#8217;s permission but mine. What came back was the thing no single store can see. A flavor profile that skews jalape&#241;o across every category, a hosting pattern split across three different registers, a cooking identity assembled from ingredients that no one retailer ever saw together. Some of it was sharp. Some of it was the ground beef.</p><p>Your phone is the only device that sits at the intersection of all of it, and it cannot hold a conversation across any two of them. The models are already there. Meta&#8217;s ExecuTorch runs AI inside Instagram and WhatsApp, Apple Intelligence runs on-device, and every one of them is sealed inside a single app in the same silo architecture we shipped in 2008. The AI in your health app cannot see your diet.</p><p>To be clear, what I ran needed a cloud model, and a phone can&#8217;t do that reasoning today. But I work on inference platforms, and the two curves I watch are closing on each other. On-device inference improved 5x in two years, context windows went from 8K to 1M tokens in the same window, and mobile NPUs are being redesigned around memory bandwidth rather than raw compute, which is the bottleneck that actually matters here. Epoch AI found the gap between models and what consumer hardware can run has compressed from years to under 12 months. Not there yet. But that&#8217;s an engineering timeline, not a fantasy.</p><p><strong>Three things I keep coming back to.</strong></p><p><strong>Memory is the product.</strong> The ground beef correction was one sentence and it rewrote every conclusion downstream of it, which only counts for anything if the correction survives the session. Not as a chat log .. as a temporal graph. Knows what changed. When. Why. Zep, Graphiti, Mem0, Cognee, and Microsoft&#8217;s PlugMem are all converging on roughly the same shape. It&#8217;s early, but the direction is obvious enough: the agents people keep coming back to will be the ones that remember what they were told.</p><p><strong>The moat moved.</strong> Login walls and paginated receipts kept purchase data captive for twenty years, and agents walk through them at machine speed while the EU&#8217;s Digital Markets Act forces real-time portability from the other direction. What replaces the moat is the interesting question. Companies whose users actively correct their own data end up holding something an agent can&#8217;t scrape, because it was co-created. That compounds. Raw behavioral data never did.</p><p><strong>Nobody has taken the phone.</strong> My two cents, it&#8217;s the biggest unclaimed problem in consumer AI right now.</p><div><hr></div><p>Your data has spent years answering other people's questions. Go ask it your own. Pick any account with purchase history, point an agent at it, and don't ask it for a summary - correct it, push back, make it go again. The insight is in the exchange, not the export. Then tell me what yours got wrong about you.<br><br><em><strong>My dogs eat 90% lean ground beef. Weekly. They&#8217;re doing fine.</strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FJDt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FJDt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FJDt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:997098,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.abdomahmoud.com/i/211189728?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FJDt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 424w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 848w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 1272w, https://substackcdn.com/image/fetch/$s_!FJDt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe77fe168-f9dd-4797-b72d-31e99bb4227b_4032x3024.heic 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>]]></content:encoded></item></channel></rss>