<?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[Technomanagers]]></title><description><![CDATA[We Decode Complex Product Strategies and reveal the hidden Technologies that power them.
]]></description><link>https://www.technomanagers.com</link><image><url>https://substackcdn.com/image/fetch/$s_!jfG3!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe778cec-f43e-418d-8ca7-155296f5dd1c_1280x1280.png</url><title>Technomanagers</title><link>https://www.technomanagers.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 03 Jun 2026 14:54:27 GMT</lastBuildDate><atom:link href="https://www.technomanagers.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Shailesh Sharma]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[shaileshsharma@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[shaileshsharma@substack.com]]></itunes:email><itunes:name><![CDATA[Shailesh Sharma]]></itunes:name></itunes:owner><itunes:author><![CDATA[Shailesh Sharma]]></itunes:author><googleplay:owner><![CDATA[shaileshsharma@substack.com]]></googleplay:owner><googleplay:email><![CDATA[shaileshsharma@substack.com]]></googleplay:email><googleplay:author><![CDATA[Shailesh Sharma]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What Is An Agent Harness?]]></title><description><![CDATA[6 Layers That Turn An LLM Into An Agent]]></description><link>https://www.technomanagers.com/p/what-is-an-agent-harness</link><guid isPermaLink="false">https://www.technomanagers.com/p/what-is-an-agent-harness</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Mon, 01 Jun 2026 23:54:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/197abef7-5508-4716-b300-d5419bd1b9f6_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Open ChatGPT. Ask: &#8220;What is the best phone under 30,000 rupees in 2026?&#8221;</p><p>It searches the web. Reads a few pages. Searches again with a better query. Then it writes an answer.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</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>Now disable web search and ask the same question. Or run it on the bare model through the API with no tools.</p><p>The same model gives you a confident answer from training data. Discontinued phones. Wrong prices. Nothing released after its cutoff.</p><p>Same model. Same prompt. Two different products.</p><p>What changed is the agent harness around the model.</p><p>In our previous pieces, we covered <a href="https://www.technomanagers.com/p/advanced-evals-evals-for-rag">evals</a> and <a href="https://www.technomanagers.com/p/advanced-evals-traces-in-ai-evals">traces</a>. Those measure what an agent does. This piece is about what an agent actually is.</p><p>If you are building AI agents at work, or preparing for AI PM interviews, this is the model you need. We teach this in our course. <em><strong>(PMs at Microsoft, Coinbase, Indeed &amp; 600+ PMs rated 4.9/ 5). <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a> &#8212; Extra 60% OFF - Use Code NYE26</strong></em></p><h2>The Model Is Not The Agent</h2><p>The model is a function. Tokens in, tokens out. That is the entire contract.</p><p>The model can decide that a tool should be called. The model cannot run the tool. The model can decide a task is finished. The model cannot enforce that decision.</p><p>Search execution. Memory across sessions. Retries on failure. Loop termination. None of these happens inside the model. They happen in the agent harness.</p><h2>What ChatGPT Actually Does When You Ask About Phones</h2><p>The full agentic turn:</p><ol><li><p>Goal received. The system records your question.</p></li><li><p>State check. Is there enough context to answer? No. Fresh data needed.</p></li><li><p>Pick a tool. The model emits a tool call: web search with a specific query.</p></li><li><p>Call the tool. The system runs the search and returns results.</p></li><li><p>Read the result. Results are fed back into the model as the next turn.</p></li><li><p>Decide if done. Not yet. The model emits another tool call. Browse a URL.</p></li><li><p>Loop. Steps three through six repeat until the model stops calling tools.</p></li><li><p>Stop and answer. The model emits a response with no tool call. The system exits the loop.</p></li></ol><p>Steps three, six, and eight are the model. Pick the tool. Decide to continue. Decide to stop.</p><p>Every other step is code. The search has to run. Results have to be parsed and shrunk to fit context. History has to be tracked. The loop has to terminate even when the model wants to keep going.</p><p>That code is the agent harness.</p><h2>Where The Loop Breaks</h2><p>Five failures from products you have used:</p><ol><li><p>The model picks the right tool but the wrong query. It searches &#8220;best phone 2026&#8221; instead of &#8220;best phone under 30000 INR 2026&#8221;.</p></li><li><p>The tool returns 50 results. The model loses the original constraint by the time it finishes reading them.</p></li><li><p>The model declares the task done. It is not. You asked for a phone under 30k. It recommended one at 45k.</p></li><li><p>The model decides it is not done. It is. Eight more searches. 90 seconds of waiting.</p></li><li><p>A tool errors out. The model has no idea why. It retries. Same error. Retries again.</p></li></ol><p>Each failure maps to a specific agent harness layer.</p><ul><li><p>Failure 1: tool design. Force structured parameters, not free-text queries.</p></li><li><p>Failure 2: context management. Return five results, not fifty.</p></li><li><p>Failure 3: verification. Check the constraint before declaring done.</p></li><li><p>Failure 4: stop condition. Cap turns.</p></li><li><p>Failure 5: error handling. Classify errors, halt retry loops.</p></li></ul><p>Better prompting will not solve any of these reliably. The fix sits in the harness.</p><h2>The 6 Layers Of An Agent Harness</h2><h4>1. The Orchestration Loop</h4><p>The while-loop above. Stop condition. Max turns. Tool-error behaviour. When to summarise older turns. When to spawn sub-agents.</p><p>ChatGPT caps how many searches per turn. Perplexity caps sources read. Both are product decisions, not model decisions.</p><p>A loop with no max-turn cap will burn your token budget.</p><h4>2. Tool Definitions</h4><p>ChatGPT&#8217;s <code>web_search</code> is a function. Whoever defined it decided the query format, the number of results, the fields per result, and the snippet length.</p><p>The model can pick any tool you give it. The model cannot redesign the tool.</p><p>A file-editing tool that returns just the diff scales to large codebases. One that returns the whole file runs out of context after three edits. Tool design decides what the agent can do.</p><h4>3. Context Management</h4><p>At some point the context window fills. Then you choose: truncate from the top, summarise older turns, keep a scratchpad, or spawn a sub-agent with a fresh context.</p><p>This decides whether your agent feels coherent at turn 30 or has forgotten the original question.</p><p>When ChatGPT says &#8220;as I mentioned earlier&#8221; about something you never discussed, the context layer failed.</p><h4>4. Memory</h4><p>Context lives for one task. Memory lives across tasks.</p><p>If a user comes back on Friday after talking to your agent on Monday, where is what they said stored? Vector store? Structured profile? Database keyed by user ID?</p><p>ChatGPT&#8217;s Memory feature is this layer. The base model has no memory between sessions. The harness added it.</p><h4>5. Guardrails</h4><p>Before any tool call executes, something has to inspect it.</p><p>Is this a write to production? Is this destructive? Did the model just try to email every customer?</p><p>When Cursor asks &#8220;Apply this change?&#8221; before editing your file, that is a guardrail. When ChatGPT Agent pauses before buying something, that is a guardrail.</p><p>Without this layer, one hallucinated tool call can do real damage.</p><h4>6. Observability</h4><p>Every turn, every tool call, every input, every output, every failure has to be logged. Not just for debugging. For evals.</p><p>If your agent fails in production and you cannot replay the trace, you do not have an agent. You have a black box that occasionally works.</p><h2>What Product Managers Need To Decide</h2><h4>How agentic do you want this to be</h4><p>A single tool call wrapped in a UI is not an agent. A 50-turn autonomous loop with no human in the path is the other extreme.</p><p>ChatGPT in regular mode is mildly agentic. ChatGPT in Agent mode is heavily agentic. Same model. Different harness. Different product.</p><h4>How will you cap cost?</h4><p>Token cost per task. Turns per task. Rupees per resolved query. Pick the unit. Track from day one.</p><h4>What is your stop condition?</h4><p>Is the model allowed to declare success on its own, or does another system verify the work?</p><p>In Cursor, the verifier is the test suite. In a support agent, a customer satisfaction signal. Without a verifier, the agent will tell you it is done when it is not.</p><h4>Where is the human in the loop</h4><p>For low-stakes tasks, the agent runs free. For high-stakes ones, it pauses for approval.</p><p>ChatGPT Agent pauses before buying. Cursor pauses before applying edits. Where those pauses sit is a product decision, not a model decision.</p><h4>What do you log</h4><p>If you log only the final answer, you cannot debug. Log every tool call, every model output, every reasoning step.</p><div class="pullquote"><p style="text-align: center;"><em><strong>If this changed how you think about our <a href="https://topmate.io/technomanagers/page/IpmTa0nW5e">Job Ready AI PM Cohort</a><br><br>(12 Weeks, ~50 Sessions, ~100 Hours, ~10+ Products built, ~20 Hours of Interview Prep, 2 Mock Interviews) ~goes deeper. Live cohort. Cohort registrations open. Limited seats. <a href="https://share-na2.hsforms.com/1vL9J0C6rR9yhuOz54UhLog41clik">Fill this Form to Show Interest</a></strong></em></p></div><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><h2><strong>More Resources</strong></h2><ol><li><p>Product Management <a href="https://topmate.io/technomanagers/13042">Mock Interview (Detailed)</a></p></li><li><p>Crack AI Business Roles (AI Management Consulting, AI Category Management, AI General Manager, Revenue Planning, etc.) - <a href="https://topmate.io/technomanagers/new/QEFtA3GQ7y">Course Details</a></p></li><li><p>Crack AI Program Manager Roles - <a href="https://topmate.io/technomanagers/new/QIK5TCjtS9">Course Details</a></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Google Cloud Strategy 2026]]></title><description><![CDATA[Breakdown of Strategy via North Star Metric]]></description><link>https://www.technomanagers.com/p/google-cloud-strategy-2026</link><guid isPermaLink="false">https://www.technomanagers.com/p/google-cloud-strategy-2026</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Fri, 29 May 2026 19:34:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b74fc44d-68ff-4eb0-94bc-31c17cdd36f2_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before we move ahead, you can find out about our</p><div class="pullquote"><p><em>AI PM Course (PMs at Microsoft, Coinbase, Indeed &amp; 600+ PMs rated 4.9/ 5).<strong> <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a> &#8212; Extra 60% OFF - Use Code NYE26</strong></em></p></div><p>Google Cloud is changing its strategy in a very big way.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</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>They want to move beyond renting compute and storage. The goal is to become the only place enterprise AI runs.</p><p>But Why? </p><p>Because Alphabet has put more than half of its 2026 ML compute investment into Google Cloud. </p><p>Cloud is Alphabet&#8217;s smallest revenue line. It is also the only place inside the company where hundreds of billions of AI capex can be converted into uncapped enterprise revenue.</p><p>Let&#8217;s understand how using the North Star metric.</p><blockquote><p><em>North Star Metric for Google Cloud = Annual Cloud Revenue.</em></p></blockquote><h3>Breaking Down The Metric</h3><div class="pullquote"><p><strong>Cloud Revenue = Enterprise Customers x Workloads per Customer x Revenue per Workload</strong></p></div><ul><li><p>Enterprise Customers: Companies running on Google Cloud.</p></li><li><p>Workloads per Customer: Compute, storage, and databases each company runs.</p></li><li><p>Revenue per Workload: Money Google makes per workload per month.</p></li></ul><p>Two of three terms have a problem.</p><ol><li><p>Enterprise sales is slow. AWS has the largest enterprises. Azure has Microsoft&#8217;s installed base. Sales cycles run 12 to 18 months. Hard to grow this term fast.</p></li><li><p>Revenue per Workload is under pressure. Compute and storage are commodities. Prices drop every year. Margins compress.</p></li></ol><p>For years, this is why Google Cloud was treated as a side bet. The math did not work fast enough.</p><h3>The AI Pivot</h3><div class="pullquote"><p><strong>Cloud Revenue = Enterprise Customers x Agents per Customer x Tokens per Agent x Price per Million Tokens</strong></p></div><p>By adding Agents and Tokens, Google turns a linear business into an exponential one.</p><p>Now they have four levers to pull:</p><ol><li><p>Getting more enterprise customers ( Lever 1 )</p></li><li><p>Increasing agents per customer ( Lever 2 )</p></li><li><p>Increasing tokens consumed per agent ( Lever 3 )</p></li><li><p>Driving down cost per million tokens ( Lever 4 )</p></li></ol><h3>Lever 1: Customers</h3><p>Thomas Kurian has been rebuilding the sales motion since 2019. Vertical specialists. Financial services. Retail. Healthcare. Media.</p><p>Cloud Next 2026 was full of Fortune 500 logos. Citadel Securities. Deutsche Telekom. Home Depot. GE Appliances. Highmark Health.</p><p>Q4 2025 growth was 48% year over year. Fastest of the three big hyperscalers.</p><h3>Lever 2: Agents per Customer</h3><p>Old enterprise software had a ceiling. SaaS licenses tied to humans. You could not sell more seats than there are employees.</p><p>AI agents have no ceiling. GE Appliances is deploying 800 agents through Gemini Enterprise. Deutsche Telekom built MINDR, a multi-agent system that runs network operations on its own.</p><p>The Gemini Enterprise Agent Platform exists specifically to let one customer deploy thousands of agents inside Google Cloud. Each agent has a unique cryptographic ID and governance policies wired in. Once a company has 800 agents on the platform they cannot easily leave.</p><p>This is the new switching cost.</p><h3>Lever 3: Tokens per Agent</h3><p>Each agent burns tokens every time it does anything. Reasoning. Retrieval. Generation. Action.</p><p>The more capable the agent the more tokens it uses. A simple chatbot might use 10000 tokens per conversation. An autonomous coding agent might use 5 million for one task.</p><p>The number to watch is throughput. Google&#8217;s first-party APIs went from 10 billion tokens per minute last quarter to 16 billion this quarter. 60 percent quarterly growth on a metric that did not exist three years ago.</p><p>This is the one number that tells you if the strategy is working. Not revenue. Not market share. Token throughput growth.</p><h3>Lever 4: Cost per Token</h3><p>Google is driving cost per token DOWN. Compute prices got cut 8 percent across regions in Q1 2026. Google Cloud is now 5 to 10 percent cheaper than AWS or Azure for AI workloads.</p><p>Why cut prices? Because volume compounds faster than price drops. Price drops 8 percent. Volume grows 60 percent. Revenue still goes up.</p><p>Lower cost per token is what makes the TPU investment pay off. Google designs its own chips. No Nvidia margin paid on every inference call. Custom silicon brings the internal cost down. Some savings passed to customers. Customers run more workloads. Volume grows. Cycle compounds.</p><p>This is also why they spent 32 billion dollars on Wiz. Security is the trust layer that lets a CISO approve more agents. More agents means more tokens. The volume engine only runs if enterprises trust the stack.</p><div class="callout-block" data-callout="true"><p>This strategy is very bold because it bets on volume over margin.</p></div><p>In India, we have seen this with Jio. Jio dropped data prices to almost zero. Volume exploded. Other telecom operators died trying to match. Now Jio owns the market.</p><p>Google Cloud is playing the same game with AI. Drop the cost per token. Push volume. Lock customers in with agents that cannot be moved.</p><p>But there are two real risks.</p><ol><li><p>Multi-cloud adoption is at 89 percent of enterprises. Companies are deliberately splitting AI workloads to avoid lock-in. If they refuse to consolidate on Google Cloud the volume game does not work.</p></li><li><p>The capex math is the second risk. Alphabet is putting 180 billion dollars of capex into 2026. TPU pods get obsoleted in about two years. Half the life of a traditional server. If AI adoption is real but slow Google ends up structurally over-built.</p></li></ol><p>The strategy is forced not chosen. Cloud is the only place inside Alphabet where the AI capex math can possibly close. Search and YouTube have no real surface left for new monetisation.</p><p>If Google is right about exponential token growth and enterprise consolidation, Cloud quietly becomes the most important business inside Alphabet. If they are wrong on either, the integrated stack becomes the most expensive overbuild in tech history.</p><p>There is no middle outcome.</p><div class="pullquote"><p style="text-align: center;"><em><strong>If this changed how you think about our <a href="https://topmate.io/technomanagers/page/IpmTa0nW5e">Job Ready AI PM Cohort</a><br><br>(12 Weeks, ~50 Sessions, ~100 Hours, ~10+ Products built, ~20 Hours of Interview Prep, 2 Mock Interviews) ~goes deeper. Live cohort. Cohort registrations open. Limited seats. <a href="https://share-na2.hsforms.com/1vL9J0C6rR9yhuOz54UhLog41clik">Fill this Form to Show Interest</a></strong></em></p></div><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><h2><strong>More Resources</strong></h2><ol><li><p>Product Management <a href="https://topmate.io/technomanagers/13042">Mock Interview (Detailed)</a></p></li><li><p>Crack AI Business Roles (AI Management Consulting, AI Category Management, AI General Manager, Revenue Planning, etc.) - <a href="https://topmate.io/technomanagers/new/QEFtA3GQ7y">Course Details</a></p></li><li><p>Crack AI Program Manager Roles - <a href="https://topmate.io/technomanagers/new/QIK5TCjtS9">Course Details</a></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How Top 1% PM Candidates Answer AI Product Sense Questions in 2026?]]></title><description><![CDATA[Anthropic Real AI PM Interview Question Solved]]></description><link>https://www.technomanagers.com/p/how-top-1-pm-candidates-answer-ai</link><guid isPermaLink="false">https://www.technomanagers.com/p/how-top-1-pm-candidates-answer-ai</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Mon, 25 May 2026 18:34:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ce0b43cf-b8c8-4c12-abba-710eb6c5370e_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Anthropic recently asked this Question for their AI PM Role.</p><h3>Design a Safety Layer for an AI API?</h3><p>Here is how a top 1% candidate answers this question from first principles.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Break down the question</h2><p>Three loaded words.</p><ol><li><p><strong>Safety</strong> could mean preventing harmful outputs, preventing misuse, or preventing data leaks. Scope it. </p></li><li><p><strong>Layer</strong> means a component within a larger system. Think about where it sits and what it does not own. </p></li><li><p><strong>AI API</strong> means programmatic access. Not a chatbot. The users are developers. The attacks are automated. No human reviews each request.</p></li></ol><div class="pullquote"><p>The problem: Design a system that prevents harm across the entire API request lifecycle, at scale, without killing developer experience.</p></div><h2>Clarifying questions</h2><ol><li><p><strong>What type of AI API? </strong><br>Text-only vs multimodal vs tool-use means completely different threat surfaces. A text API faces prompt injection. A multimodal API adds visual jailbreaks like harmful text hidden in images. A tool-use API adds real-world action risks. <em>Assumption: multimodal with tool use. The hardest version.</em></p></li><li><p><strong>Who are the consumers? </strong><br>Solo devs need defaults. Enterprises need configurable policies and compliance guarantees. <br><em>Assumption: both.</em></p></li><li><p><strong>Latency constraints? </strong><br>Every safety check adds latency. If the API serves real-time apps like voice assistants, 300ms of safety processing breaks the experience. <br><em>Assumption: p50 under 50ms, p99 under 200ms.</em></p></li></ol><h2>Why does this matter?</h2><p>Safety is the moat. Model capability is converging. GPT-4, Claude, and Gemini perform comparably. What differentiates an API provider is trust. Enterprises choose the API they trust not to embarrass them. </p><p>Unsafe APIs do not scale. At 100 developers, misuse is unlikely. At 100,000, misuse is daily. And the downside is asymmetric. One viral safety failure undoes years of brand equity.</p><h2>User segments</h2><ol><li><p>End users are people using apps built on the API. They never see the safety layer. They bear the most harm when it fails. They have zero agency to protect themselves.</p></li><li><p>External developers are people calling the API. They need sensible defaults, configurable policies, and transparent error messages when requests get blocked.</p></li><li><p>Trust and Safety team are the internal operator. They need dashboards, investigation tools, and fast policy update workflows.</p></li></ol><p>Prioritise end users. They bear the highest harm and have the least agency. They cannot adjust the safety layer. They cannot complain to you. If harmful content reaches them, they absorb the full impact with no recourse. But they never touch the API directly. Developers are the interface through which you protect them.</p><p>Design FOR end users. Design THROUGH developers.</p><h2>Pain points</h2><ol><li><p>Pain point 1. Harmful content reaches end users. The model generates dangerous content even with benign inputs. <br>A user asks, &#8220;How does aspirin work?&#8221; and the model includes lethal dosage info. No attack. No adversarial intent. The model just generated something it should not have.</p></li><li><p>Pain point 2. Adversaries bypass safety controls. Jailbreaking, prompt injection, and encoded attacks. API means programmatic means thousands of automated attacks per hour. Even excellent output classifiers get bypassed when the input is adversarial enough.</p></li><li><p>Pain point 3. Sensitive data leaks. PII from training data, system prompt extraction, session bleed across users.</p></li></ol><h4>Prioritise pain point 1. Three reasons.</h4><ol><li><p>Severity is highest. Direct psychological, physical, or legal harm to end users who have no recourse.</p></li><li><p>Frequency is highest. Harmful outputs occur even with non-adversarial inputs. </p></li></ol><p>And solving PP1 partially solves PP2 and PP3. Even if a jailbreak succeeds and input controls fail, output controls still catch harmful content. PII in output is a subcategory of harmful output. The prioritised pain point creates a cascade.</p><h2>First principle breakdown</h2><p>This is where most candidates fail. They jump straight to let us add a content filter.</p><p>That is a feature answer. A systems answer starts by understanding what the system actually does.</p><p>Trace what happens when a developer calls an AI API. Step by step. From scratch.</p><ol><li><p>Step 1. A developer sends a request. A user message. Maybe an image. Maybe a document to process.</p></li><li><p>Step 2. But the model does not just see that user message. The system assembles a full context window. That includes the developer&#8217;s system prompt (their proprietary instructions that shape the model&#8217;s behaviour), the conversation history from previous turns, any documents retrieved via RAG, and outputs from any tools the model previously used. All of these are stitched together into one big input. This is what the model actually sees.</p></li><li><p>Step 3. The model processes this assembled context and generates a response token by token.</p></li><li><p>Step 4. That response goes back to the developer, who passes it to their end user.</p></li></ol><blockquote><p><em>Now ask the first-principles question. At which of these steps can something go wrong?</em></p></blockquote><p>Step 1 fails when the input itself is adversarial. A jailbreak attempt disguised as a normal query. A prompt injection hidden inside a document that the model is asked to summarise.</p><p>Step 2 fails when the assembled context contains data it should not. PII sitting inside a RAG document that nobody scanned. A previous conversation turn is slowly steering the model off course over many turns. This is the stage most candidates never think about. They conflate <strong>input</strong> with <strong>what the model sees</strong>. Those are two different things. The input is what the developer sends. The context is what the model processes. </p><p>Step 3 fails when the model generates harmful content from perfectly legit inputs. The model is a probabilistic system. It does not need to be attacked to produce something dangerous. A user asks about chemistry, and the model volunteers synthesis instructions. Nobody attacked the system.</p><p>Step 4 fails when the response contains harmful content, leaked PII, or the developer&#8217;s system prompt is reproduced verbatim.</p><p>Two more failure points sit outside this lifecycle.</p><p>Before step 1. Who is even calling this API? If you do not know the caller and what they are allowed to do, every downstream safety decision is flying blind. </p><p>After step 4. What patterns are emerging across thousands of requests? </p><h4>So, from first principles, six stages where safety must operate.</h4><ol><li><p>Stage 0. Identity and access. Who is calling? </p></li><li><p>Stage 1. Input analysis. What are they sending? Is it adversarial? </p></li><li><p>Stage 2. Context assembly. What does the model actually see? </p></li><li><p>Stage 3. Model behaviour. What rules constrain the model? </p></li><li><p>Stage 4. Output evaluation. What is going on? Should it be blocked? </p></li><li><p>Stage 5. Post-response learning. What patterns emerged? How do we improve?</p></li></ol><div class="pullquote"><p>For more such AI PM interview Questions, find out our AI PM Course - <strong>(PMs at Microsoft, Coinbase, Indeed &amp; 600+ PMs rated 4.9/ 5). <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a></strong></p></div><h2>Solution</h2><p>Now that the framework is derived, fill in each stage with the specific control and the reasoning behind it.</p><h4>Stage 0</h4><p>Tier access system. </p><ul><li><p>Tier 1 is any developer with maximum filter strictness. </p></li><li><p>Tier 2 is verified developers with configurable filters after business verification and use-case declaration. </p></li></ul><h4>Stage 1</h4><p>Two-pass input classification. </p><ul><li><p>Fast pass runs under 5ms on every request using pattern matching. Catches 70-80% of known attacks at near-zero latency. </p></li><li><p>Slow pass is an ML classifier running in parallel with model inference. Not before it. So it does not add latency for genuine requests. If flagged after the model starts, the response is blocked before delivery. </p></li></ul><p>Why two passes? One expensive classifier on every request is a latency added on all  users.</p><h4>Stage 2</h4><p>Two controls. </p><ul><li><p>System prompt protection wraps every prompt in an immutable instruction plus output text-matching as a deterministic backup. </p></li><li><p>PII scanning before inference prevents the model from ever processing data it should not see. Because once PII enters the context, even output redaction is insufficient since the model&#8217;s behaviour is already influenced. </p></li></ul><h4>Stage 3</h4><p>Two-layer policy architecture. </p><ul><li><p>Layer 1 is immutable platform rules. No developer can disable them. Weapons, CSAM, terrorism, fraud. No use case justifies relaxation here. </p></li><li><p>Layer 2 is developer-configurable for contextual harms. Three settings per category: strict, moderate, permissive. <br>A medical app sets violence to moderate. <br>A children&#8217;s app sets everything to strict. </p></li></ul><h4>Stage 4</h4><p>Synchronous-asynchronous split. Synchronous blocks catastrophic harms, PII, and system prompt leaks in under 50ms. Uses a small, fast classifier trained specifically on catastrophic categories. Asynchronous flags contextual harms, bias, and hallucination after delivery. </p><h2>Cross question: Recall or Precision?</h2><p>High recall catches everything harmful but blocks legitimate requests. Developers lose trust. High precision only blocks when confident. Misses edge cases but maintains trust.</p><p>Optimise for precision in the synchronous classifier. A false positive permanently damages developer trust. Use the async pipeline to catch false negatives retroactively. High precision, real-time. High recall over time. Best of both.</p><h2>Success metrics</h2><ol><li><p>False Negative Rate on Catastrophic Harms is the North Star. Harmful content reaching end users. Target under 0.01%.</p></li><li><p>False Positive Rate measures over-refusal. Target under 2%.</p></li></ol><div class="pullquote"><p><em><strong>If this changed how you think about our <a href="https://topmate.io/technomanagers/page/IpmTa0nW5e">Job Ready AI PM Cohort</a></strong></em><br><em><strong>(12 Weeks, ~50 Sessions, ~100 Hours, ~10+ Products built, ~20 Hours of Interview Prep, 2 Mock Interviews) ~goes deeper. Live cohort. Cohort registrations open. Limited seats. <a href="https://share-na2.hsforms.com/1vL9J0C6rR9yhuOz54UhLog41clik">Fill this Form to Show Interest</a></strong></em></p></div><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><h2><strong>More Resources</strong></h2><ol><li><p>Product Management <a href="https://topmate.io/technomanagers/13042">Mock Interview (Detailed)</a></p></li><li><p>Crack AI Business Roles (AI Management Consulting, AI Category Management, AI General Manager, Revenue Planning, etc.) - <a href="https://topmate.io/technomanagers/new/QEFtA3GQ7y">Course Details</a></p></li><li><p>Crack AI Program Manager Roles - <a href="https://topmate.io/technomanagers/new/QIK5TCjtS9">Course Details</a></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Nobody reads the FEATURE_SPEC.md. What's the Solution?]]></title><description><![CDATA[Here is what fixes it.]]></description><link>https://www.technomanagers.com/p/nobody-reads-the-feature_specmd-whats</link><guid isPermaLink="false">https://www.technomanagers.com/p/nobody-reads-the-feature_specmd-whats</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Tue, 19 May 2026 02:18:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9218d0d8-d114-49ec-8ac4-cacbba7f8604_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A PM writes a functional spec in a markdown file. It is 400 lines long. </p><p>PM reads the first 50 and the last 20 and skims the rest. The middle 330 lines contain the business rules, edge cases, and constraint definitions that determine whether the feature works or does not.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get FREE AI PM resources in your welcome Email.</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>Then sends it to engineering.</p><p>The engineering lead opens the file. He reads the overview section. Skims the requirements table. </p><p>Jumps to the technical constraints at the bottom. The 330 lines in the middle remain unread by a second person.</p><p>He hands it to the AI agent.</p><div class="callout-block" data-callout="true"><p>The agent reads every line. All 400 of them. It does not skip. It does not skim. </p></div><p>It implements exactly what the spec says, including the three contradictions between line 87 and line 312 that nobody caught because nobody read both lines.</p><p>Two weeks later, the feature ships with a critical defect. The PM blames the agent. Engineering blames the spec. The spec blames nobody because it is a markdown file, and markdown files do not defend themselves.</p><p>This is the most common failure mode in AI-native product development. And it did not start with AI.</p><h2>The Problem That Existed Before Agents</h2><p>Here is the uncomfortable truth. PMs have been skimming their own specs for years.</p><p>Markdown made specs easy to write. It did not make them easy to read. </p><p>A 400-line markdown file has no visual hierarchy beyond headers and bullets. No collapsible sections. No embedded mockups. No way to draw your eye to the three lines that matter most out of the 400.</p><div class="pullquote"><p>Before agents, this was tolerable. Not good, but tolerable. Because the humans on the other side of the spec had a safety net.</p></div><p>Engineers asked clarifying questions. &#8220;What did you mean by this requirement?&#8221; &#8220;Does this apply to logged-out users too?&#8221; &#8220;This contradicts what you said in section 3.&#8221; Those questions caught the misalignments that skimming introduced.</p><p>Sprint reviews caught the rest. You shipped a version. It was wrong. You discussed it. You adjusted. The feedback loop was two weeks. The cost of misalignment was measured in sprints, not dollars.</p><p>AI agents removed every one of those safety nets.</p><h2>The Spec-Driven Development Connection</h2><p>We wrote about this problem in our article on <a href="https://www.technomanagers.com/p/spec-driven-development-for-product">Spec-Driven Development</a>. The core argument was that a spec is a contract, not a document. It should be a behavioural specification that defines what the system must do, not a technical specification that prescribes how.</p><p>That argument stands. But it is incomplete.</p><p>A behavioural spec only works if someone reads it. A perfectly written contract that neither party reads is not a contract. It is paperwork.</p><p>Most PMs write behavioural specs in markdown. Those specs contain precise requirements. Constraint definitions. Edge case handling rules. Confidence thresholds. Fallback behaviours. All the things that separate a spec from a prayer.</p><p>Then nobody reads them.</p><h2>The Solution: HTML as the Spec Layer?</h2><p>AI agents generate HTML as easily as they generate Markdown. For the agent, the effort is identical. For the human, the difference is enormous.</p><p>An HTML spec can have collapsible sections. The PM sees high-level decisions first and drills into detail only where needed. Engineering sees the data model expanded with product context collapsed. Same document, different views, one handoff.</p><p>It can have colour-coded requirement statuses. Green for finalised. Yellow for needs-review. Red for placeholder. The PM sees at a glance which parts of the spec are done and which are still unfinished thoughts pretending to be requirements.</p><p>It can embed mockups inline. Not a link to Figma in another tab. A rendered visual sitting next to the requirement it represents. You see what you are specifying as you specify it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cs15!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cs15!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cs15!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cs15!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cs15!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cs15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1354106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/198346966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.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_!cs15!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!cs15!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!cs15!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!cs15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6972ed-5cf0-4114-a7a8-5639bf5d3363_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It can use tabs to separate product context, behavioural requirements, technical constraints, and verification criteria. Each audience reads the tab that matters to them. Nothing gets lost crossing the handoff.</p><p>This is the Engagement-Quality Loop. Better readability leads to more engagement. More engagement leads to more edits. More edits lead to higher quality specs. Higher-quality specs lead to fewer implementation cycles. Fewer cycles mean lower compute cost.</p><h2>The Costs and Limits</h2><p><strong>The token overhead is real. The ROI is better.</strong></p><p>A markdown spec costs $0.03 to $0.10 in tokens. An HTML spec costs $0.10 to $0.40. Roughly 3 to 5x more.</p><p>But trace the cost through the chain. The markdown workflow leads to skimming, which leads to missed contradictions, which leads to rework cycles at $5 to $50 each. Two or three cycles, and you have spent $15 to $150 plus days of calendar time.</p><p>The HTML workflow costs $0.30 more upfront. You catch the contradiction before implementation. One cycle. $5 to $50. Done.</p><p>Less than 1% of tokens that most teams generate end up in production code. The rest goes into planning, iterating, and reworking. </p><p>The question is not whether the spec costs more tokens. The question is whether those tokens produce a spec someone actually reads.</p><p>The token overhead is noise. The rework is the signal.</p><h4><strong>When will markdown still win?</strong></h4><p>Short tasks where the output fits on one screen. Agent-to-agent handoffs where no human reads the document. Pure technical artefacts like type definitions and API schemas. If no human judgment is needed, use markdown. If human judgment is needed, use HTML.</p><blockquote><p><em>A PM who does not spec is spending blindly. A PM who specs in a format nobody reads is spending with everyone&#8217;s eyes closed.</em></p></blockquote><h2>The Workflow</h2><p>Five steps. Start tomorrow.</p><ol><li><p>Spec in HTML. Prompt: &#8220;Create an HTML behavioural spec for [feature]. Collapsible sections. Colour-code requirements: green for finalised, yellow for review, red for placeholder. Embed mockups.&#8221;</p></li><li><p>Read your own spec. Open every section. Finalise every yellow. Remove every red. Do not send a spec with placeholder text to an agent. Every red line is a budget leak.</p></li><li><p>Identify decision nodes. Three to five points where human judgment matters more than agent capability. Business rules. Trade-offs. Prioritisation logic. These are the moments the PM earns their role.</p></li><li><p>Build micro-software for each node. Rule editors. Priority rankers. Trade-off sliders. Make decisions with full context. Cost: cents per tool. Value: precision instead of intuition.</p></li><li><p>Hand off clean. Fresh agent session. HTML spec as a single source of truth. One implementation cycle. Verify against the embedded checklist.</p></li></ol><p>Total extra cost: $0.50 to $2.00 per feature. Total savings from eliminated rework: $10 to $200.</p><div class="pullquote"><p>If this changed how you think about our <a href="https://topmate.io/technomanagers/page/IpmTa0nW5e">Job Ready AI PM Cohort</a> <br>(12 Weeks, ~50 Sessions, ~100 Hours, ~10+ Products built) ~goes deeper. Live cohort. Cohort registrations open. Limited seats. <a href="https://share-na2.hsforms.com/1vL9J0C6rR9yhuOz54UhLog41clik">Fill this Form to Show Interest</a></p></div><h2><strong>More Resources </strong></h2><ol><li><p>AI PM Course - <strong>(PMs at Microsoft, Coinbase, Indeed &amp; 600+ PMs rated 4.9/ 5)</strong><br><strong><a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a></strong></p></li><li><p>Crack AI Business Roles (Consulting, Category Management, General Manager) - <a href="https://topmate.io/technomanagers/new/QEFtA3GQ7y">Course Details</a></p></li><li><p>Crack AI Program Manager Roles - <a href="https://topmate.io/technomanagers/new/QIK5TCjtS9">Course Details</a></p></li></ol><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[5 AI Questions Every Product Manager is getting Asked]]></title><description><![CDATA[She had eight years of product experience.]]></description><link>https://www.technomanagers.com/p/5-ai-questions-every-product-manager</link><guid isPermaLink="false">https://www.technomanagers.com/p/5-ai-questions-every-product-manager</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Fri, 15 May 2026 21:16:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ff80b48e-2f04-4717-a4a8-1cf3f8ce8f51_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>She had eight years of product experience. Three products with 10 million-plus DAU. Six weeks of dedicated interview prep.</p><p>She got eliminated in Round 2.</p><p>Not by a trick question. Not by a culture fit screen. </p><p>By a single follow-up about how she would <strong>evaluate whether a RAG pipeline was retrieving the right documents</strong>.</p><p>She knew what RAG was. She could draw the architecture diagram. </p><p>But the interviewer did not want a diagram. He wanted to know what she would do when the retriever pulled the wrong documents at 2 am on a Tuesday and support tickets started spiking.</p><p>She did not have that answer.</p><p>Here is the part that should concern you. She was not underprepared. She was prepared for the wrong interview.</p><p>The AI PM interview in 2026 is a fundamentally different game. Most candidates are still running the old playbook. </p><p>CIRCLES. RICE. Feature prioritisation matrices. <strong>These are table stakes now. </strong></p><p>Nobody gets hired for knowing them. You just get disqualified for not knowing them.</p><p>The real filter is AI depth.</p><p>I have spent two years shipping AI products in production. I have also helped 1000+  PMs prepare for AI roles. <strong><a href="https://topmate.io/technomanagers">See testimonials</a></strong></p><p>The pattern is impossible to miss. <strong>Five concepts keep showing up</strong>. Not ten. Not twenty. Five.</p><p>The dangerous part is not that PMs have never heard of them. Most have. </p><p>The dangerous part is that most PMs know these concepts at exactly the depth that gets them eliminated.</p><p>Let me show you what I mean.</p><h2>1. RAG (Retrieval-Augmented Generation)</h2><p>You probably already know what RAG is.</p><blockquote><p><em>An LLM does not know everything. It hallucinates. It has no access to your company&#8217;s internal data. So you add a retrieval step. You search a vector database for relevant documents first. Then you feed those documents to the LLM as context. The LLM generates an answer grounded in actual information instead of its training data.</em></p></blockquote><p>That explanation is correct. It is also the exact answer that gets you a polite nod followed by a harder follow-up.</p><p>RAG has a dirty secret. The retrieval step fails silently. The LLM does not tell you it received the wrong documents. It generates a confident, articulate, completely wrong answer. Your user has no idea. Your metrics might not catch it for weeks.</p><p>So the real question is not what RAG is. The real question is what you do when the R in RAG stops working.</p><ul><li><p>How do you measure retrieval quality separately from generation quality? </p></li><li><p>When do you chunk documents into smaller pieces versus keeping them whole.</p></li><li><p>What happens when the user query is ambiguous, and the retriever returns five documents that are each partially relevant, but none exactly right? </p></li><li><p>What happens when you stuff too many documents into the context window and the LLM starts ignoring the important ones because of lost-in-the-middle effects?</p></li></ul><p>These are the questions that separate PMs who have read about RAG from PMs who have debugged RAG in production.</p><p>Interviewers expect you to go deeper than this.</p><h4>Sample Interview Questions</h4><ul><li><p>Q1. You are building a customer support chatbot using RAG. Users report that 30% of answers are irrelevant. How would you diagnose whether the problem is in retrieval or generation?</p></li><li><p>Q2. Your RAG system retrieves the correct document, but the LLM still produces an incorrect answer. What could be going wrong, and how would you fix it?</p></li><li><p>Q3. A stakeholder wants to add RAG to a feature that currently uses a fine-tuned model. How would you evaluate whether this is the right architectural decision?</p></li><li><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">Real AI PM Interview Questions (With Detailed Solution) Here</a></p></li></ul><h2>2. Evals (AI Evaluation)</h2><p>Here is a question that sounds easy.</p><p>Your model accuracy improved from 84 % to 91 %. Should you ship it?</p><p>Answer it in your head right now.</p><p>If your instinct was yes, ship it; accuracy went up, you just failed the interview. </p><p>If your instinct was it depends, good. But the interview is only beginning. Because the next question depends on what. And that is where most candidates fall apart.</p><p>Most PMs treat evaluation as a checkpoint. Model hits a number. You ship. But AI evaluation is not a checkpoint. It is a continuous argument between what the model does well and what the business actually needs.</p><p>There are two worlds of evals, and most PMs only live in one.</p><p>Offline evals measure model performance before deployment. You run test datasets. You calculate precision, recall, and F1. You compare against baselines. This world feels safe. The numbers are clean. The comparisons are neat.</p><p>Then there is the second world. Online evals. What happens after deployment? User satisfaction. Task completion rates. Time to value. Edge cases your test data never imagined. The queries that real humans type at 11 pm on their phones look nothing like your curated evaluation dataset.</p><p>The gap between these two worlds is where AI products go to die.</p><p>A model can score 95% on your offline eval set and still make users miserable. Your eval set was built by engineers who write clean, well-structured queries. Your actual users write things like why is this broken and fix it and paste in screenshots of error messages.</p><p>The PM who wins the interview connects eval metrics to business outcomes. Not accuracy went up 7%. Instead. Accuracy went up 7%. Did user satisfaction improve? Did support tickets decrease? Did the revenue metric move? If you cannot draw that line from model metric to business metric, you will hear the worst four words in any interview. Let us move on.</p><p>Interviewers expect you to go deeper than this.</p><h4>Sample Interview Questions</h4><ul><li><p>Q1. You are the PM for an AI content moderation system. Precision is 97 percent but recall is 72%. The policy team wants a higher recall. The UX team is worried about false positives. How do you navigate this tradeoff?</p></li><li><p>Q2. Design an evaluation framework for an AI feature that recommends products. What offline and online metrics would you track, and how would you decide when the model is ready to ship?</p></li><li><p>Q3. Your A/B test shows the new model has 3% better accuracy but 15% higher latency. How do you make the ship or no-ship decision.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://youtu.be/Bt4ABQbUsZA&quot;,&quot;text&quot;:&quot;Watch Sample Video on Advanced Evals&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://youtu.be/Bt4ABQbUsZA"><span>Watch Sample Video on Advanced Evals</span></a></p><h2>3. Fine-Tuning vs Prompting</h2><p>This is the concept where interviewers separate PMs who have shipped AI from PMs who have read blog posts about AI.</p><p>The question usually lands like this. Your AI feature is producing mediocre outputs. You have three options. Better prompts. Fine-tuning. A larger model. How do you decide?</p><p>Most candidates give a vague cost-benefit answer. Fine-tuning is more expensive but more accurate. Prompting is cheaper but limited. That answer is technically correct. It is also useless to the interviewer. Because they already know the textbook tradeoffs. What they want to hear is your decision framework. The actual sequence of steps you would follow.</p><p>Here is one that works.</p><p>Start with prompting. Always. Every single time. It is free to experiment with. You can iterate in hours, not weeks. A well-crafted prompt with good examples solves 80% of problems that PMs instinctively want to throw fine-tuning at.</p><p>But sometimes, prompting plateaus. You have tried ten prompt variations. You have added a few-shot examples. Quality is stuck at decent, and your users need excellent. Now you have a real decision to make.</p><p>Ask one question. Why is the model failing?</p><p>If the model is missing domain-specific knowledge or terminology, fine-tuning is probably the answer. A general model does not know your company&#8217;s product taxonomy. It does not understand your industry&#8217;s jargon. Fine-tuning teaches it patterns it has never seen.</p><p>If the model simply is not capable enough for the reasoning required, try a larger model first. Sometimes the problem is not knowledge. It is raw intelligence. A bigger model might handle the complexity without any fine-tuning at all.</p><p>Here is the layer that most PMs miss entirely. This is not just a technical decision. It is a product and business decision.</p><p>Fine-tuning means you now own a model. You need labelled training data to build it. You need ML engineers to maintain it. You need to retrain it when the underlying data distribution shifts. You have just taken on a recurring operational cost that compounds with every model update.</p><p>As a PM you need to justify that investment. What is the incremental quality gain? Is it large enough to warrant the ongoing maintenance burden? Could you get 70 % of the benefit with a smarter prompt and zero operational overhead?</p><p>That is the thinking interviewers want to hear. Not fine-tuning is better. But here is how I would make the decision and here is what I would measure to validate it was correct.</p><p>Interviewers expect you to go deeper than this.</p><h4>Sample Interview Questions</h4><ul><li><p>Q1. You are the PM for an AI writing assistant. Users complain that outputs feel generic and do not match their brand voice. Walk through how you would decide between prompt engineering, few-shot examples, and fine-tuning.</p></li><li><p>Q2. Your team fine-tuned a model six months ago. Performance has degraded. What could be causing this, and what is your plan?</p></li><li><p>Q3. A competitor just shipped a similar feature using GPT-4o. Your team uses a fine-tuned, smaller model that is cheaper but less capable. How do you think about this competitive dynamic?</p></li><li><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">Real AI PM Interview Questions (With Detailed Solution) Here</a></p></li></ul><h2>4. Agents</h2><p>Pay close attention to this one. If you are interviewing in the second half of 2026, agents will likely be the longest segment of your interview.</p><p>Every major tech company is building agent-based products right now. Not planning them. Building them. Shipping them. And they need PMs who understand the product challenges that agents create. Not the engineering challenges. The product challenges.</p><p>Here is the core distinction.</p><p>A regular LLM call is a one-shot interaction. You send a prompt. You get a response. Done.</p><p>An agent is a loop. It receives a goal. It breaks the goal into steps. It executes the first step. It observes the result. It decides what to do next. It keeps looping until the goal is achieved or it determines it cannot proceed.</p><p>That loop is where everything gets interesting.</p><p>Because an agent makes decisions. Autonomously. Without asking you. It might send an email on your behalf. It might delete a file it considers irrelevant. It might book a flight for the wrong date because it misinterpreted what next Friday means in context.</p><p>The technology question is how agents work. Any PM can read a LangChain tutorial and answer that. The product question is much harder and much more valuable in an interview.</p><ul><li><p>How much autonomy should the agent have? </p></li><li><p>Where do you insert human checkpoints? </p></li><li><p>When should it ask for permission versus making a judgment call on its own.</p></li><li><p>How do you design an experience where the user feels in control even though the agent is doing all the work?</p></li></ul><p>Here is the tension that makes this concept so rich for interviews. Users want agents to be autonomous. That is the entire value proposition. Do this for me so I do not have to think about it. But users also want to feel safe. They want confidence that the agent will not do something catastrophic or irreversible.</p><p>Speed and safety pull in opposite directions. The PM who can navigate that tension with clear product principles will stand out in every single interview.</p><p>The most common mistake candidates make is treating agents as a pure engineering conversation. Talking about function calling, tool schemas and ReAct patterns. That is the implementation layer. Interviewers want the product layer. The experience design. The trust model. The failure recovery flow.</p><h4>Sample Interview Questions</h4><ul><li><p>Q1. You are building an AI agent that helps users book travel. The agent can search flights, compare prices, and make reservations. Design the user experience for when the agent books the wrong dates.</p></li><li><p>Q2. Your AI agent completes tasks autonomously, but users report feeling out of the loop. How would you redesign the experience to build trust without slowing the agent down?</p></li><li><p>Q3. An agent-based feature has a 78 per cent task completion rate. Users love it when it works, but are frustrated when it fails. How do you decide whether to ship broadly or keep it in limited access?</p></li></ul><h2>5. Guardrails</h2><p>Here is a question most PMs never think about until it is too late.</p><p>What is the worst thing your AI product could do?</p><p>Not the most likely failure. The worst. The one that ends up as a screenshot on social media within hours. The one that gets your CEO pulled into a meeting with Legal at 7 am. The one that makes users question whether they should trust anything your product says ever again.</p><p>If you have shipped AI in production, you already know this feeling. Because it either already happened to you or you watched it happen to a competitor and thought that could have been us.</p><p>Guardrails are how you prevent those moments. They are the systems you build to stop your AI from generating harmful content, leaking private data, producing confidently wrong information, going off topic, or being manipulated by adversarial users who know exactly how to break your system.</p><p>Here is why this topic is deceptively difficult.</p><p>The naive approach to guardrails is to block everything that looks risky. Restrict the model outputs aggressively. Add filters on every response. Flag anything that seems remotely problematic.</p><p>That approach solves the safety problem. It also kills the product. Users start hitting walls on legitimate queries. The AI becomes so cautious it is useless. You have traded one crisis for another. Instead of a harmful output going viral, you have a product that nobody wants to use because it blocks everything.</p><p>The real challenge is surgical precision. Block the dangerous outputs. Let the legitimate ones through. Do it fast enough that the user never notices a filter is running behind the scenes.</p><p>The layered approach works. Input filters catch bad requests before they reach the model. System prompts constrain the model behavior at the instruction level. Output filters catch problematic responses before they reach the user. Human review handles the edge cases that automated systems miss.</p><p>But the product question is always the same. Where do you draw the line.</p><p>A guardrail that is too strict blocks 15 percent of legitimate queries and your users leave for a competitor. A guardrail that is too loose lets one harmful response through and your product is trending for the wrong reasons.</p><p>That calibration problem is the entire interview. Not what are guardrails. But how do you set them. How do you measure whether they are working. And how do you adjust them when you get it wrong.</p><p>Interviewers expect you to go deeper than this.</p><h4>Sample Interview Questions</h4><p>Q1. You are launching an AI chatbot for a healthcare company. What guardrails would you implement and how would you prioritise them given a tight launch timeline.</p><p>Q2. Users have discovered they can manipulate your AI assistant through indirect prompt injection via pasted text. How do you approach this as a product problem, not just an engineering problem.</p><p>Q3. Your guardrails are blocking 12 percent of legitimate user queries. Engineering says tightening the filters further will increase false positives to 18 percent. How do you handle this.</p><h2>The Pattern You Need to See</h2><p>Now here is the honest question.</p><p>Go back to the 15 sample interview questions in this article. Read them carefully. For each one, ask yourself whether you could give a <strong>structured and confident answer </strong>that would satisfy a senior interviewer at a top tech company.</p><ul><li><p>If you could answer 12 or more with real depth, you are in strong shape. Keep sharpening.</p></li><li><p>If you could answer 8 to 11, you have gaps. Targeted gaps. The kind that a focused two-week sprint could close.</p></li><li><p>If you could answer fewer than 8, the problem is not intelligence. You are smart enough to be reading this article. <strong>The problem is exposure. </strong></p></li></ul><p>Nobody has shown you how these concepts actually play out in real product decisions. You have been learning definitions when you should have been practising trade-offs.</p><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">That gap is exactly why we built the AI PM course. 800+ PMs have taken it. 4.9 out of 5 rating</a></p><p>The interview has changed. Your preparation should too.</p><h2><strong>Become an AI Product Builder | 100 Hrs+ Learning</strong></h2><p><strong>This is not a course you watch passively. It is a program you go through with a cohort of other PMs. You get office hours. You get demo sessions.</strong></p><p>The AI Product Manager Builder 2.0 is a 12-week cohort program. 45 plus classes. Hands-on demos. Interview prep sessions every week. A capstone project. 10+ real-world projects you can add to your portfolio.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X3SL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X3SL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X3SL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1790099,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/197912775?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.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_!X3SL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!X3SL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F985e89ac-0d0a-4711-9cd7-53860eaf7a90_1448x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://topmate.io/technomanagers/page/IpmTa0nW5e&quot;,&quot;text&quot;:&quot;Apply for Cohort&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://topmate.io/technomanagers/page/IpmTa0nW5e"><span>Apply for Cohort</span></a></p><h2><strong>About Author</strong></h2><p><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a> - I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass (Here)</a></p>]]></content:encoded></item><item><title><![CDATA[Become AI Product Builder (starting from Zero)]]></title><description><![CDATA[The only Roadmap you will need]]></description><link>https://www.technomanagers.com/p/ai-product-builder-roadmap-2026</link><guid isPermaLink="false">https://www.technomanagers.com/p/ai-product-builder-roadmap-2026</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Mon, 11 May 2026 20:35:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/210f7da8-32bb-44a6-84cd-89beab1ff086_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The workflow nobody taught you.</p><p>I built technomanagers.in in one day.</p><p>Full product. Frontend, backend, course catalogue, question bank, <strong>deployment</strong>. <strong>One day.</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_!Z7XP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z7XP!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 424w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 848w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 1272w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z7XP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif" width="1146" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:1146,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Z7XP!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 424w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 848w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 1272w, https://substackcdn.com/image/fetch/$s_!Z7XP!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff736ed3-3d97-405e-a768-544098e8cca8_1146x540.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Link &#8212; https://technomanagers.in/</p><p>I am not an engineer. I am a product manager.</p><p>This is what a building looks like in 2026.</p><p>The tools have changed so fundamentally that the gap between idea and shipped product is no longer months. It is days. Sometimes hours.</p><p>In 2026, the PM who gets hired is the one who builds. Not manages. Builds.</p><p>This article walks through the full pipeline.</p><p>Problem discovery to launch. Every step uses tools that did not exist 18 months ago.</p><p><em><strong>If you are a PM, engineer, or builder trying to ship an AI product this year, this is the roadmap.</strong></em></p><h2><strong>Step 1. Spot the problem. Validate it fast.</strong></h2><p>Most AI products fail at step zero. They start with a technology and go looking for a problem. We should build something with RAG. We should make an agent. Backwards.</p><p>Start with the problem. But how you validate has changed.</p><p>Pick a domain you understand. Not AI for healthcare. Something specific.</p><p><em>Radiologists spend 40 minutes per scan writing structured reports. Observable. Measurable. Worth solving.</em></p><p>Now, validate it in 30 minutes. Open Claude. Run a research session.</p><h3><strong>Sample prompt:</strong></h3><blockquote><p><em>I am validating a product idea. The problem is that radiologists spend 40 minutes per scan writing structured reports. I need you to do the following. First, find 5 existing products that solve this problem today. Second, find evidence from radiology forums or medical publications that this pain point is real and widespread. Third, estimate the addressable market size using publicly available data on the number of radiologists and scans per year. Fourth, list three reasons this problem might not be worth solving.</em></p></blockquote><p>That last line matters. You are not looking for confirmation. You are stress-testing the hypothesis.</p><p>The output of this step is a one-page problem brief in markdown.</p><p>Four sections.</p><p>&#8594;Problem statement.<br>&#8594; Evidence it exists.<br>&#8594; Who has it?<br>&#8594; What they do today.</p><p>If you cannot fill that page with real evidence, move on.</p><h2><strong>Step 2. Competitor research with agents</strong></h2><p>This is where the 2026 flow diverges most from the old one.</p><p>Traditional competitor research meant 15 browser tabs, free trial signups, and a comparison spreadsheet built over two days.</p><p>Now you build a lightweight agent that does the data collection in hours.</p><h3><strong>Sample prompt for Claude with web search:</strong></h3><blockquote><p><em>I am building an AI product for radiology report generation. Research the following competitors: Nuance DAX, Rad AI, DeepScribe, and Ambra Health. For each one extract the following. Target customer segment. Core AI capability. Pricing model if publicly available. Key differentiator. Weaknesses mentioned in user reviews. Present this as a structured comparison table.</em></p></blockquote><p>The agent does not replace your analysis. It replaces the manual collection. You still look at the output and ask the hard questions.</p><p>Where are the gaps? Where are competitors overserving? Where is there a segment nobody is building for?</p><p>Save the output as competitor-matrix.md. It lives alongside your problem brief. Both are markdown. Both feed into the next step.</p><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">If you want to learn how to build these agent workflows from scratch, the Technomanagers AI PM course covers everything. </a><strong><a href="https://topmate.io/technomanagers/new/fK374qFpvL">800+ students. 4.9 out of 5 rating.</a></strong></p><h2><strong>Step 3. Talk to users. AI does not replace this.</strong></h2><p>You have a validated problem and a competitor landscape. Now talk to actual humans.</p><p>No agent replaces a 30-minute conversation with someone who has the problem you are solving. But how you prepare and synthesise has changed.</p><p>Before the call, generate a targeted research script.</p><h3><strong>Sample prompt:</strong></h3><blockquote><p><em>Here is my problem brief [paste problem-brief.md]. Here is my competitor matrix [paste competitor-matrix.md]. Generate 10 user interview questions that specifically probe the gaps I identified in the competitor landscape. Focus on workflow pain points, current workarounds, and willingness to pay. Avoid generic questions.</em></p></blockquote><p>After five conversations, paste all your notes into Claude.</p><h3><strong>Sample prompt:</strong></h3><blockquote><p><em>Here are my notes from 5 user interviews about radiology report generation [paste notes]. Extract the following. Top 3 recurring pain points ranked by frequency. Contradictions between what users say they want and what they actually do. Unmet needs that no current competitor addresses. Willingness to pay signals.</em></p></blockquote><p>The key discipline is triangulation. User interviews say one thing. Competitor gaps say another. Usage data says a third. The truth is in the overlap.</p><h2><strong>Step 4. Write the spec in markdown</strong></h2><p>This step separates the 2026 builder from the traditional PM.</p><p>You do not write a 20-page PRD in Google Docs. You write a product spec in markdown. In Claude.</p><p>A markdown spec is machine-readable. It can be fed directly into Claude or Cursor to generate functional code. A Google Doc cannot.</p><p>The format of your spec determines the speed of your prototype. This is an architectural decision, not a style preference.</p><h3><strong>The spec has five sections.</strong></h3><ol><li><p>Section 1. Problem and user.<br>One paragraph pulled from your problem brief.</p></li><li><p>Section 2. Core workflow.<br>The 3 to 5 steps the user takes to get value. Not features. Steps. User uploads a scan. System extracts findings. The system generates a structured report. User reviews and edits. System learns from edits.</p></li><li><p>Section 3. Technical architecture.<br>What model. What retrieval strategy? Input and output formats. Where the data lives. If you cannot write this section, you do not understand your own product.</p></li><li><p>Section 4. Eval criteria.<br>How will you know if it works? Precision. Recall. Latency. Hallucination rate. Defined before you build.</p></li><li><p>Section 5. Out of scope.<br>What you are deliberately not building in v1. This section saves more time than any other.</p></li></ol><p>Save it as product-spec.md.</p><h2><strong>Step 5. Build the prototype in Claude</strong></h2><p>Take your product-spec.md. Open Claude. Paste the entire spec.</p><h3><strong>Sample prompt:</strong></h3><blockquote><p><em>Here is my product spec [paste product-spec.md]. Build a functional prototype of this application. Use React for the frontend. Use Python with FastAPI for the backend. For the RAG component, use a vector database with cosine similarity search. Generate the full codebase, including file structure, all components, API endpoints, and database schema. Make it deployable.</em></p></blockquote><p>Claude generates a working application from a well-written spec. Not a mockup. Not a wireframe. A working product.</p><p>The quality of the prototype is a direct function of the quality of your spec. Vague spec, vague output. Precise spec, precise output.</p><p>This is where the .md format pays off.</p><p>Then you iterate.</p><p>Sample follow-up prompts:</p><ol><li><p>Change the retrieval to a hybrid search combining keyword and semantic matching.</p></li><li><p>Add error handling for cases where the API returns empty results or the context window is exceeded.</p></li><li><p>Refactor the output to match this JSON schema [paste schema].</p></li></ol><p>Each iteration takes minutes. Within a few hours, you have something you can put in front of users. Not a deck. A working product.</p><h2><strong>Step 6. Build evals before you launch</strong></h2><p>Most AI products ship without evals. Single biggest mistake in AI product development.</p><p>Evals answer one question. Is the AI actually working?</p><ol><li><p>For a RAG product, your metrics are Precision at K, Recall at K, and MRR.</p></li><li><p>For generative output, hallucination rate, relevance, and coherence.</p></li><li><p>For an agent, the task completion rate, step accuracy, and cost per task.</p></li></ol><p>Define before launch. Automate. Set thresholds below which the product does not ship.</p><h3><strong>Sample prompt:</strong></h3><blockquote><p><em>I have a RAG-based radiology report generator. Generate a Python evaluation script that tests the following. Precision at 5 for retrieved context chunks. Recall at 5 for relevant medical findings. Mean Reciprocal Rank for the top result. Hallucination detection by comparing generated text against source documents. Use a test set of 20 sample queries with known correct answers that I will provide.</em></p></blockquote><p>This separates a demo from a product.</p><h2><strong>Step 7. Production hardening</strong></h2><p>Prototype works. Evals pass. Now harden it.</p><h3><strong>Latency</strong></h3><p>If your pipeline takes 8 seconds, users leave. Target under 2 seconds. Optimise chunking, cache frequent queries, and pick the right model size.</p><h3><strong>Cost</strong></h3><p>Every API call costs money. A prototype at 2 dollars per session is a burn rate, not a product. Find where smaller models work, where you can cache, and where you can batch.</p><h3><strong>Error handling</strong></h3><p>What happens when the model returns garbage? When retrieval finds nothing. When the API goes down, every failure mode needs a graceful fallback.</p><p>Monitoring. Log inputs, outputs, latencies, costs. Build dashboards that catch quality degradation before users notice.</p><h2><strong>Can you actually do all of this?</strong></h2><p>Each step is learnable. Each step uses tools available right now.</p><p>If you want to go from reading to shipping, the AI Product Builder Cohort is built for exactly this pipeline.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c8cw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c8cw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 424w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 848w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c8cw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png" width="1400" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!c8cw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 424w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 848w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!c8cw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a2c45a6-b5c4-4ca7-9f26-467c1cafe30d_1400x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://topmate.io/technomanagers/page/IpmTa0nW5e">12 Weeks | 45+ Sessions | 100Hrs of Learning | AI Interview Prep | Portfolio Ready | Direct mentor access. Applications open.</a></p><p>If you prefer self-paced, the Technomanagers AI PM course covers every concept here.<strong> 800+students. 4.9 rating. </strong>It is the foundation the cohort builds on <strong>&#8594; <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[How Would You Build Google Photos’ New Wardrobe Feature?]]></title><description><![CDATA[AI Product Manager Case Study]]></description><link>https://www.technomanagers.com/p/how-would-you-build-google-photos</link><guid isPermaLink="false">https://www.technomanagers.com/p/how-would-you-build-google-photos</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Sun, 03 May 2026 03:13:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/465169a1-2d94-44f5-9b52-28cf840cdb42_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before we move ahead, you can also read the following articles</p><ol><li><p><a href="https://www.technomanagers.com/p/90-day-plan-become-an-ai-pm-starting">90 Days Roadmap to become an AI Product Manager</a></p></li><li><p><a href="https://www.technomanagers.com/p/advanced-evals-evals-for-rag">Advanced Evals - Evals in RAG</a></p></li></ol><p>You own roughly 80 pieces of clothing. You remember maybe 15. You rotate through 7.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to get the FREE Book (AI &amp; Tech Simplified), Link in Welcome Email</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>The problem is not the clothes. The problem is that your closet has no search bar.</p><p>Google Photos just shipped a feature that fixes this. It scans your photo library, finds every piece of clothing you have ever worn in a picture, catalogues it, and turns your gallery into a searchable digital closet. Filter by category. Mix and match pieces into outfits. Try the whole thing on virtually before you get dressed.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;3af85f6e-63b6-4238-aebd-229e63d02694&quot;,&quot;duration&quot;:null}"></div><p>That is the product. Now, let us build it.</p><p>As an AI Product Manager, you would get such problem statements.</p><p>In our previous pieces, we covered <a href="https://www.technomanagers.com/p/how-session-based-rnns-predict-your">how TikTok uses session-based RNNs</a> and <a href="https://www.technomanagers.com/p/two-versions-of-every-click">why position bias destroys your ranking quality</a>. This one is about a different kind of AI system. </p><p>Not one model does one job. Five models chained together, where every failure cascades downstream.</p><p>If you are preparing for AI PM interviews, we will prepare you with Real AI PM Interview Questions.&nbsp;<a href="https://topmate.io/technomanagers/1861184">We cover this more in our course.</a></p><h2>The Problem Statement</h2><p>Given a user&#8217;s unstructured photo library, build a system that:</p><ol><li><p>Identifies every unique garment the user has worn in any photo</p></li><li><p>Creates a clean catalogue with one entry per garment</p></li><li><p>Let&#8217;s users combine items into outfits</p></li><li><p>Shows users how the outfit looks on their body</p></li></ol><p>The input is chaos. Vacation photos, selfies, group shots, screenshots, food pictures, photos where you are partially visible, and photos where your jacket covers your shirt.</p><p>The output must be a clean wardrobe.</p><p>This is not one model. It is five models chained together.</p><h2>Stage 1: Find the Photos That Matter</h2><p>A typical library has 1000 images. Maybe 400 contain you wearing visible clothing. The system needs to find those 400 and discard the rest.</p><p>Google Photos already detects and groups faces through its People feature. That tells the system which photos contain you. But face detection is not enough. You need body pose estimation.</p><p>The system runs a pose estimator to map body joints. Shoulders, elbows, wrists, hips, knees, ankles. These key points answer two questions. </p><ol><li><p>How much of your body is visible? </p></li><li><p>And where does each garment zone fall in the image?</p></li></ol><p>The region between the shoulders and hips is a top. Between hips and the ankles is the bottom.</p><p>If only your face and shoulders are in frame, there is no point in trying to extract pants.</p><p>The PM decision here is the visibility threshold. </p><ul><li><p>How many keypoints must be detected for the photo to enter the pipeline? </p></li><li><p>Too strict and you miss casual selfies that still show a good shirt. </p></li><li><p>Too lenient and you flood every downstream stage with blurry, occluded garbage.</p></li></ul><h2>Stage 2: Segment Each Garment</h2><p>Each photo might contain multiple garments. A shirt, a jacket, pants, and earrings. The system needs to isolate each item at the pixel level.</p><p>This is instance segmentation. </p><p>Not &#8220;there is clothing in this image&#8221; but &#8220;these exact pixels belong to this shirt, and those exact pixels belong to that jacket.&#8221;</p><p>The model takes an image and outputs bounding boxes and pixel masks, each labelled with a garment category.</p><p>Here is where the first real complexity shows up. <strong>Occlusion</strong>.</p><div class="callout-block" data-callout="true"><p>A jacket covers a shirt. A scarf drapes across a jacket. A bag strap cuts across your torso.</p></div><p>The naive answer is to only extract fully visible items. This fails. </p><p>If you always wear a jacket over a particular shirt in photos, that shirt never enters your wardrobe.</p><p>The better approach is to extract all detected garments and attach a visibility score.</p><blockquote><p>Visibility Score = Visible Pixels / Estimated Total Pixels</p></blockquote><p>A shirt with 80% visible scores 0.8. A shirt 30% hidden behind a jacket scores 0.3. This score determines which photo gets chosen as the representative thumbnail later.</p><h2>Stage 3: The Hardest Problem in the Pipeline</h2><p>You now have roughly 1,000 segmented garment patches across 400 photos. Many are the same physical item photographed in different conditions. Your favourite blue shirt appears in 40 photos. Different lighting. Different wrinkles. Different backgrounds. Different angles.</p><p>The system needs to know that these are all the same shirt.</p><p>This is a visual re-identification problem. The same class of problem that security systems use to track a person across multiple cameras.</p><p>The naive approach is pixel-level image similarity. Compare the raw pixels of two garment patches. This fails immediately.</p><p>The same white shirt photographed indoors under warm lighting looks golden. Outdoors, it looks blue-white. Against a dark background, it appears brighter. Pixel similarity would call these three different shirts. They are the same shirt.</p><div class="pullquote"><p>The correct approach is to learn a garment embedding.</p></div><p>You pass each segmented garment through a feature extraction network. </p><p>A CNN or Vision Transformer fine-tuned on fashion datasets like DeepFashion. The network outputs a compact vector, say 256 dimensions, that captures the garment&#8217;s identity. Its colour, texture, pattern, cut, and structure. Not the lighting. Not the background. Not the wrinkles.</p><div class="callout-block" data-callout="true"><p>Two patches of the same shirt, photographed in completely different conditions, should produce vectors that are close together in this 256-dimensional space. Two different shirts should produce vectors that are farther apart.</p></div><blockquote><p>Similarity(A, B) = cosine(Embedding(A), Embedding(B))</p></blockquote><p>If cosine similarity exceeds a threshold, say 0.85, the system treats them as the same garment.</p><p>This threshold is the single most important PM decision in the entire pipeline.</p><p>Set it too high at 0.95, and the system creates duplicates. Your blue shirt appears four times because slightly different photos produced slightly different embeddings.</p><p>Set it too low at 0.70, and the system merges two genuinely different items into one. Your navy polo and your navy crew-neck collapse into a single entry.</p><p>Which mistake is more tolerable? </p><p>For a consumer product, false merges are worse. Showing two entries for one shirt is a mild annoyance. Deleting a unique garment by merging it with another item is data loss. You cannot undo it without rerunning the pipeline.</p><p>Bias the threshold higher. Accept some duplicates. Give users a manual merge option in the UI.</p><h2>Stage 4: Cluster and Build the Catalogue</h2><p>With 1000 embeddings, the system clusters them. Each cluster represents one unique garment. DBSCAN works well here because it does not require specifying the number of clusters in advance. It finds natural groupings based on embedding distances.</p><p>From each cluster, select a representative thumbnail. Highest visibility score. Highest resolution. Best lighting.</p><p>But a raw crop from a photo still has a messy background. Your shirt thumbnail would show a slice of a restaurant behind you.</p><p>The system takes the segmented garment mask and runs an inpainting model. It generates a clean thumbnail on a neutral background, fills in any occluded parts of the garment, and removes everything else.</p><p>The output: a clean, catalogue-style image of each garment. That is what you see in the Wardrobe UI.</p><h2>Stage 5: Classification</h2><p>Each garment needs a category label. Tops, bottoms, dresses, outerwear, skirts, jewellery, and footwear.</p><p>The same feature extraction network from Stage 3 can feed into a classification head. Standard multi-class classification.</p><p>The design question that matters here is whether classification should run before or after clustering.</p><p>If you classify first, the category becomes a hard constraint during clustering. A shirt and a jacket can never merge, regardless of how similar their embeddings are. This eliminates absurd false merges. But classification errors now propagate. If a blazer gets mislabelled as a shirt, it will never match with other photos of that blazer correctly labelled as outerwear.</p><p>If you run classification and clustering in parallel, you can use category agreement as a soft constraint. Same category plus high embedding similarity means high-confidence merge. Different categories, plus high embedding similarity, mean flagged at a higher threshold.</p><p>The parallel approach is more robust. It lets one model compensate for the other&#8217;s mistakes.</p><h2>The Virtual Try-On</h2><p>You select a top and a bottom from your wardrobe. You tap Try it on. </p><p>The system generates a photorealistic image of you wearing that combination.</p><p>Google did not build this for Photos. This technology already existed in Google Shopping, where it worked on billions of product listings. The PM reused it.</p><p>The underlying system is a diffusion-based image generation model built specifically for fashion. Here is how it works.</p><p>The model takes three inputs. </p><ol><li><p>A photo of you. </p></li><li><p>A garment image. </p></li><li><p>A body pose estimate from Stage 1.</p></li></ol><p>First, 2D warping. The garment pixels get mapped onto the region of your body where that garment would sit. The pose estimate locates your shoulders, torso, and hips. The segmentation mask provides shape and texture.</p><p>But simple warping produces artefacts. Sleeves do not match arm positions. Fabric does not fold correctly around your body.</p><p>The diffusion model takes over. It receives the warped image plus a segmentation map of the missing regions and generates the final output. Realistic fabric folds, shadows, and draping.</p><p>The critical constraint: the model preserves the exact texture, colour, and pattern of your actual garment. It only generates the physics of how that fabric interacts with your body. This is not &#8220;put a blue shirt on this person.&#8221; This is &#8220;take this specific shirt with this specific weave and show how it drapes on this specific body in this specific pose.&#8221;</p><p>This is why the output looks like your actual clothes. Not generic AI-generated clothing.</p><h2>Outfit Compatibility</h2><p>There is one more model that the press release does not mention, but the product requires.</p><p>When a user mixes a top with a bottom, the system should score whether the combination works visually. This is a compatibility scoring problem.</p><p>The approach: train a model on labelled fashion datasets where outfit combinations are rated as compatible or incompatible. Each item has an embedding from Stage 3. The compatibility model takes two or more garment embeddings and outputs a score between 0 and 1.</p><blockquote><p>Compatibility(Top, Bottom) = sigmoid(W &#183; concat(Embedding_top, Embedding_bottom) + b)</p></blockquote><p>A navy blazer with khaki chinos might score 0.9. A navy blazer with basketball shorts might score 0.2.</p><p>The PM decision is whether to surface this score or use it passively. </p><p>Surfacing it as this outfit scores 4 out of 5 risks being wrong and annoying. Using it passively to sort moodboard suggestions by compatibility adds value without overcommitting.</p><p>The safe answer is passive integration. Let the user feel the algorithm without seeing it.</p><h2>What Metrics will you track?</h2><p>Most PMs would track whether users open the Wardrobe tab. That tells you almost nothing. Here is the framework that actually measures success.</p><h4>Does the user come back?</h4><p>Wardrobe retention at Day 7 and Day 30. Not Google Photos retention. Wardrobe-specific retention. A user who opens the Wardrobe tab once and never returns means the catalogue was not useful. A user who returns weekly is planning outfits. That is the behaviour you want.</p><p>Track the ratio of outfit creations to wardrobe visits. If users open the wardrobe but never create an outfit, the catalogue is interesting, but the mix-and-match experience is not compelling. Target at least 30 per cent of wardrobe visits resulting in an outfit action (create, save, or share).</p><h4>Does Try It On convert?</h4><p>Try It On usage rate among outfit creators. If users create outfits but never tap Try It On, the feature is either hidden or not trusted. Target at least 40 per cent of outfit creators using Try It On at least once.</p><p>Try It On completion rate. Does the user look at the generated image for more than 3 seconds? Do they save it or share it? If they generate a try-on and immediately dismiss it, the output quality is not meeting expectations.</p><p>Try It On repeat rate. Users who try it once and never again do not trust the result. Users who try it multiple times per session are engaged. A healthy repeat rate means the diffusion model is producing outputs that feel real.</p><p>If this breakdown changed how you think about multi-model pipelines, cascade error budgets, and AI feature design, you will find much more depth in our AI PM course. We cover  RAG architectures, evaluation frameworks, and real interview questions from top companies.</p><p>Check our highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></p><h2>About Author</h2><p><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a> - I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass (Here)</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></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>Subscribe to get the FREE Book (AI &amp; Tech Simplified), Link in Welcome Email</p>]]></content:encoded></item><item><title><![CDATA[Two Versions of Every Click]]></title><description><![CDATA[Why Your Model and Your User Disagree on What Just Happened]]></description><link>https://www.technomanagers.com/p/two-versions-of-every-click</link><guid isPermaLink="false">https://www.technomanagers.com/p/two-versions-of-every-click</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Sun, 26 Apr 2026 18:31:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fcbe9455-2e46-43c0-96c7-fdf49280a0ff_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every click in your training data tells two stories.</p><p>Your model hears one. The user lived the other.</p><p>They are not the same story. And the gap between them is destroying your feed.</p><p>We are going to show you both versions, side by side, for every stage of the recommendation pipeline. By the time the two stories merge, you will understand position bias deeper than any offline metric can show you.</p><p>In our previous pieces, we covered <a href="https://www.technomanagers.com/p/how-session-based-rnns-predict-your">how TikTok uses session-based RNNs</a> and <a href="https://www.technomanagers.com/p/why-your-recommender-keeps-forgetting">why recommenders suffer from catastrophic forgetting</a>. This one is about a different failure. Your model remembers clicks. But it misremembers why they happened.</p><p>If you are preparing for AI PM interviews, position bias comes up constantly in recommendation system design rounds. <a href="https://topmate.io/technomanagers/1861184">We cover this and more in our course.</a></p><h2>The Click</h2><h4><strong>What your model recorded</strong></h4><p>User opened the app store. Saw App X at position 1. Clicked. Label = 1. App X is relevant.</p><h4><strong>What actually happened</strong></h4><p>User opened the app on the metro. Had 40 seconds before their stop. App X was the first thing on screen. They did not scroll. Did not compare. Saw one thing. Tapped it.</p><p>If App Y had been at position 1, they would have tapped App Y.</p><p>The click had nothing to do with App X. It had everything to do with position 1.</p><h2>The Data</h2><h4><strong>What your model sees:</strong></h4><p>Position 1 CTR is 0.25. Position 5 is 0.10. Position 15 is 0.03. Items at position 1 are 8x better than items at position 15.</p><h4><strong>What is actually true</strong></h4><p>95% of users see position 1. Maybe 60% reach position 5. Fewer than 20% get to position 15.</p><p>A great app at position 15 gets 0.03 CTR because nobody saw it. A mediocre app at position 1 gets 0.25 because everyone saw it.</p><p>The model has no way to tell these apart. It calls both numbers a preference.</p><h2>The Loop</h2><h4><strong>What your model believes</strong></h4><p>It trains weekly. Every cycle, the data confirms that items at the top are the best items. Their CTR is highest. Their scores go up. They stay at the top. The system is stable. The system is working.</p><h4><strong>What is actually happening?</strong></h4><p>Top items get more clicks because they are at the top. Those clicks inflate their CTR. Inflated CTR keeps them at the top. Next week, same thing.</p><p>A genuinely excellent app debuted at position 12 three weeks ago. CTR of 0.04. Not because users disliked it. Because most users never scrolled that far. The model scored it low. It dropped to 16. Then it disappeared.</p><p>Your feed is not ranking by quality. It is ranked by inertia.</p><p>This has two costs.</p><ol><li><p>First, diversity dies. The same items win every cycle. New items cannot break through. Your feed feels stale. Engagement decays.</p></li><li><p>Second, revenue leaks. Your ranking function is f(CTR, bid). If CTR is inflated by position, you are overvaluing items that sit high and undervaluing items that bid high. That is money lost daily.</p></li></ol><h2>The Usual Fix (And Why It Fails)</h2><p>Every team eventually notices something is off. The standard fix is simple. Add position as a feature.</p><p>The model sees <strong>[user features, item features, context, position]</strong>. It learns that clicks at position 1 should be discounted. Sounds reasonable.</p><h4><strong>What the team believes this achieves</strong></h4><p>The model now accounts for position. Bias is handled.</p><h4><strong>What actually happens at inference time?</strong></h4><p>The model needs a position value to produce a score. But the position has not been decided yet. That is what the ranking is supposed to determine.</p><p>You cannot feed a position as input when the position is the output.</p><p>So the team picks a default. Position 1 for all items. Or position 5. Or position 9.</p><p>They try position 1. They get Ranking A. They try position 5. They get Ranking B. Completely different. Different items in the top 5. Different user experience.</p><p>The ranking depends entirely on a number someone picked arbitrarily.</p><p>You are now running AB tests to find the best magic number. And the best number for one scenario does not transfer to another. The approach is a dead end.</p><h2>The Question That Closes the Gap</h2><p>Here is the question that resolves the two stories into one.</p><blockquote><p>When a user clicks, what are they actually telling you?</p></blockquote><p>Two things. Fused into a single signal.</p><p>First: I saw this item. This depends on the position. Position 1 is almost always seen. Position 20 has maybe a 10 per cent chance. This has nothing to do with the item.</p><p>Second: I wanted this item. This depends on the user, the item, and the context. This has nothing to do with position.</p><p>Every click is the product of these two.</p><p>P(click) = P(saw it) x P(wanted it, given I saw it)</p><div class="pullquote"><p>Your model treats this product as one number. That is the entire problem. The fix is to split it.</p></div><h2>How to solve this?</h2><p>We can build two modules. Trains them together. Deploys them apart.</p><h4>Module 1 is ProbSeen. </h4><ul><li><p>One input: position. </p></li><li><p>One output: the probability the user saw the item at that position. Think of it as a small curve. Position 1 outputs 0.95. Position 20 outputs 0.12.</p></li></ul><h4>Module 2 is pCTR. </h4><ul><li><p>Inputs: user profile, item features, context. </p></li><li><p>Output: the probability the user would click if they had seen it.</p></li></ul><p>Position never enters pCTR.</p><p>During training, predicted click = ProbSeen x pCTR. This is compared against the actual click label. Standard cross-entropy loss.</p><p>Here is what makes it work. Both modules share the same loss. They train jointly. Gradients flow through both.</p><p>When the model sees that position 1 items get clicked more, the shared gradient forces a split. How much of that signal is visibility? ProbSeen takes it. How much is genuine preference? pCTR takes it.</p><p>Neither module can steal the other&#8217;s signal. Both are accountable for the same loss. The separation is automatic.</p><p>Why not train them separately? Because separate losses mean separate objectives. ProbSeen might absorb preference. pCTR might absorb position. The boundaries blur. Joint training forces a clean separation through coupled gradients.</p><p>At inference time, you throw away ProbSeen. You deploy only pCTR.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fybR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fybR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!fybR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!fybR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!fybR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fybR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png" width="1402" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1083701,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/195546280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.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_!fybR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 424w, https://substackcdn.com/image/fetch/$s_!fybR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 848w, https://substackcdn.com/image/fetch/$s_!fybR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!fybR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8653bd-c4bd-48bc-96fa-ad32e39b9709_1402x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>No position input needed. No default value. No magic number.</p><p><strong>What your model now records:</strong> This user would click this item, regardless of where it is shown.</p><p><strong>What actually happened:</strong> Same thing.</p><p>The two stories are finally one.</p><p>If this article changed how you think about position bias, CTR modelling, and ranking quality, you will find much more depth in our AI PM course Case Studies. <a href="https://topmate.io/technomanagers/new/fK374qFpvL">(42+ Videos &amp; 25+ Case Studies)</a></p><p>Check our highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></p><h2>About Author</h2><p><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a> - I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass (Here)</a></p>]]></content:encoded></item><item><title><![CDATA[How Anthropic PMs Ship Features in 45 Minutes (Without Writing PRDs)]]></title><description><![CDATA[If you are still writing 15-page strategy documents, your career is already over.]]></description><link>https://www.technomanagers.com/p/how-anthropic-pms-ship-features-in</link><guid isPermaLink="false">https://www.technomanagers.com/p/how-anthropic-pms-ship-features-in</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Sat, 25 Apr 2026 09:46:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8ac2d9c6-a0e3-485c-97a3-a9034de71f5a_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this artcile we will see the exact workflow that is being used by the Top Companies like Anthropic, Shopify, etc</p><p>The average Product Manager spends 40% of their week writing Jira tickets, updating roadmaps, and arguing over edge cases in 15-page Product Requirements Documents (PRDs).</p><p>At elite AI labs like Anthropic, Senior PMs spend exactly 0% of their week doing this.</p><p>Instead, a PM has an idea. They write a concise, 3-paragraph Product Note.</p><p>They drop it into an automated agentic workflow. 45 minutes later, there is a functional, tested Pull Request (PR) waiting in GitHub for engineering review.</p><p>No refinement meetings. No 15-page PRDs. No six-week development cycles.</p><p>This is not a sci-fi prediction for 2030. This is happening <em>right now</em>.</p><p>It is called the <strong>Execution Collapse</strong> &#8212; the cost and time of turning a product thought into production code has effectively dropped to zero.</p><p>To survive the next wave of tech, you have to become an &#8220;Orchestrator.&#8221;</p><blockquote><p>Orchestrators don&#8217;t write PRDs. They write <code>context.md</code><em><strong> </strong></em>files.</p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/p/90-day-plan-become-an-ai-pm-starting&quot;,&quot;text&quot;:&quot;90-Day Plan: Become an AI PM&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.technomanagers.com/p/90-day-plan-become-an-ai-pm-starting"><span>90-Day Plan: Become an AI PM</span></a></p><h2><strong>The PM Workflow of 2026</strong></h2><h3><strong>Step 1: The Product Note (The Seed)</strong></h3><p>You no longer write a PRD. You write a &#8220;Product Note.&#8221;</p><p>This is a raw, 3-to-4 paragraph summary of the user intent, the desired outcome, and the specific metrics you want to move.</p><p>It is pure strategy, stripped of any implementation details.</p><h3><strong>Step 2: The Injection (</strong><code>context.md</code><strong>)</strong></h3><p>This is the secret weapon. The PM takes the Product Note and feeds it into an orchestrating LLM, but they inject two critical system files alongside it to constrain the AI&#8217;s hallucinations:</p><p><strong>product_area_context.md:</strong> Maintained strictly by the PM. This file defines the rigid business rules.</p><ul><li><p><em>Example Content:</em> Free users can only generate 5 reports per day. Do not allow PDF exports for Free Tier. If a user hits a paywall, route them to /upgrade. Our tone is professional, never conversational.&#8221;</p></li></ul><p><strong>code_context.md:</strong> Maintained by the engineering lead. This file maps the current technical reality.</p><ul><li><p><em>Example Content: </em>&#8220;We use React for the frontend and Python/FastAPI for the backend. All user data must pass through the auth_v2 middleware. Our database schema for users is located in /db/schema/users.sql.&#8221;</p></li></ul><h3><strong>Step 3: The Functional Spec &amp; The PM Review (The New Hero Skill)</strong></h3><p>The Orchestrator LLM synthesises the Product Note with the strict constraints of the Context files.</p><p>It instantly generates a highly technical <strong>Functional Spec</strong>.</p><p><em>This is the new job of the Product Manager.</em> You don&#8217;t write the spec from scratch; you <em>evaluate</em> it.</p><p>You act as the Editor-in-Chief.</p><p>You review the AI&#8217;s logic, check for edge cases it missed, verify it adhered to the product_area_context.md rules, and adjust its assumptions. You are the taste-maker and the final human in the loop.</p><p>Once you approve it, you hit &#8220;Proceed.&#8221;</p><h3><strong>Step 4: Tech Spec to Autonomous PR</strong></h3><p>Once the PM approves the Functional Spec, the workflow becomes fully autonomous.</p><ol><li><p>The agent converts the Functional Spec into a <strong>Tech Spec</strong> (defining architecture and data models).</p></li><li><p>The agent hands the Tech Spec to a coding model (like Claude 4.6).</p></li><li><p>The coding model writes the actual code, runs the unit tests, and automatically raises a Pull Request in GitHub.</p></li></ol><p><strong>Total time elapsed: 45 minutes.</strong> &#8212; -</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/p/ai-product-management-2026-winners&quot;,&quot;text&quot;:&quot;AI PM 2026 &#8212; Winner&#8217;s Playbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.technomanagers.com/p/ai-product-management-2026-winners"><span>AI PM 2026 &#8212; Winner&#8217;s Playbook</span></a></p><h2><strong>The Terrifying Future of Product Management</strong></h2><p>Read that workflow again. At no point did the PM schedule a backlog refinement meeting.</p><p>At no point did they write a user story in Jira.</p><p>The Execution Collapse means that engineering execution is rapidly becoming a commodity.</p><p>In this new reality, companies don&#8217;t need 50 Product Managers to coordinate sprints.</p><p>They need 5 elite PMs who understand how to structure context.md files, evaluate AI logic, and orchestrate autonomous agents.</p><p>If you don&#8217;t understand how to build these pipelines, you are fighting a losing battle against a PM who does.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;afbfc530-1871-4896-823b-0541f616f511&quot;,&quot;duration&quot;:null}"></div><blockquote><p><strong><a href="https://topmate.io/technomanagers/1084615">FREE Book Giveaway&#8202;&#8212;&#8202;AI &amp; Tech Simplified</a></strong></p></blockquote><h2><strong>Stop Coordinating. Start Orchestrating.</strong></h2><p>Understanding that this is the future is just a theory.</p><p>Actually building these agentic workflows for your own product is how you survive the transition.</p><p>You cannot learn this by just reading Medium articles. You have to build it.</p><p>If this article changed how you think about Product Management in the AI Era, you will find much <a href="https://topmate.io/technomanagers/new/fK374qFpvL">more depth in our AI PM course</a>.</p><p>Check our <strong>highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><h2><strong>More Resouces </strong></h2><ol><li><p><a href="https://topmate.io/technomanagers/new/QEFtA3GQ7y">Crack AI Business Roles ( Consultants, Revenue Planning, Category Manager, General Manager )</a></p></li><li><p><a href="https://topmate.io/technomanagers/new/QIK5TCjtS9">Crack AI Program Manager Roles</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Model Choice Playbook Every AI PM Needs in 2026]]></title><description><![CDATA[AI Model Selection Framework]]></description><link>https://www.technomanagers.com/p/the-model-choice-playbook-every-ai</link><guid isPermaLink="false">https://www.technomanagers.com/p/the-model-choice-playbook-every-ai</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Tue, 21 Apr 2026 20:23:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/364a64b8-7366-47ae-bee0-88aba1128a97_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="pullquote"><p>AI Model Selection has become a very critical skill and getting asked in a Lot of Interviews</p></div><p>Imagine your CEO asks you to build an AI customer support agent for a food delivery app that handles 2 million tickets a month.</p><p>You think that Just use the best model. GPT-5. Claude Opus. Gemini 3, wire it up, and ship it.</p><p>You do the math, and you realise the ROI will not make sense.</p><div class="callout-block" data-callout="true"><p>If your instinct as an AI PM is to default to the frontier model on the leaderboard, you will ship a product that wins the pilot and loses the P&amp;L. </p></div><p>Your agent will feel smart. Your margin will turn negative. Your CFO will ask why AI inference is eating half the savings you promised. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!83LG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!83LG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!83LG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!83LG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!83LG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!83LG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3102b870-725d-4291-8473-a0374095b76f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:550404,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194956369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.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_!83LG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!83LG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!83LG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!83LG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3102b870-725d-4291-8473-a0374095b76f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the first-principles breakdown of how AI PMs should actually make model-choice decisions. We will walk through it using one real scenario. </p><blockquote><p>Building an AI customer support agent for a food delivery app at the Swiggy or DoorDash scale. </p></blockquote><p>If you are preparing for AI PM interviews, this is one of the questions that now separates real AI PMs from people who have only used ChatGPT. <a href="https://topmate.io/technomanagers/new/fK374qFpvL">You can check out other AI PM Interview Questions here.</a></p><h2>The Scenario</h2><p>You are the AI PM at a food delivery company. </p><p>You have 2 million support tickets a month. Human agents currently handle them at roughly 0.5$/ticket. Total support cost is 1 million dollars a month.</p><p>Your CEO gives you a mandate. Cut that by 70% with an AI agent.</p><p>The ticket distribution looks like this.</p><ol><li><p>50% ~  Where is my order?</p></li><li><p>20% ~ missing items or cold food. </p></li><li><p>15% ~ are refund disputes. </p></li><li><p>10% ~ are restaurant quality complaints. </p></li><li><p>5% ~ are complex multi-turn escalations involving payment failures, account issues, or angry users demanding managers.</p></li></ol><p>Some tickets take three seconds to resolve. Some take a thirty-turn conversation. Some require reading six previous tickets to understand what the user is asking. Some are hungry users at 10 PM typing in all caps.</p><p>The naive answer is to wire up a frontier model and pipe every ticket through it. </p><p>Let us see what happens when you do this.</p><h2>What is Model Choice, Really?</h2><p>Model choice is not a vendor decision. It is a five-dimensional optimisation problem under a hard business constraint.</p><p>You are picking a point on a Pareto frontier defined by Task Fit, Latency, Cost, Context, and Controllability. No single model wins on all five. Every choice is a trade.</p><p>For this support agent, the trade is complicated.</p><p><em>If you use a frontier model for every ticket. Quality is high. </em></p><p>At two million tickets of an average 5 turn conversation, at roughly 0.27$ of inference per ticket, you spend 540,000 dollars a month. You have already burned 54% of the savings you were hired to deliver. Add infrastructure, monitoring, safety guardrails, and retries, and you are above 70%.</p><p><em>If you use a cheap model for every ticket. Cost is fine. </em></p><p>But the model hallucinates refund policies, misreads Hinglish, and escalates half your tickets to humans anyway. Your deflection rate drops from 70% to 30%. The math collapses from the other direction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mv_A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mv_A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mv_A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:676104,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194956369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.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_!mv_A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!mv_A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c671900-ffe9-4a54-9b1d-851539af3292_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Neither extreme works. The right answer lives in between. The PM decides where.</p><h2>The Strategic Bet</h2><p>Here is what most PMs miss entirely.</p><p>The support agent you are about to build does not run on a single model. It runs on a routing layer that decides which model handles which ticket.</p><p>&#8212;&gt; Where is my order needs a database lookup, a tiny model to format the response, and a sub-500ms latency target. </p><p>&#8212;&gt; A refund dispute from an angry user who has already had three bad experiences needs a frontier model, long context, and two seconds of real reasoning. </p><blockquote><p><em>Shoving both requests into the same model is how you lose money and lose users at the same time.</em></p></blockquote><p>The router is where your actual product intelligence lives. It is the layer that turns commodity foundation models into a profitable support operation.</p><p>Anyone can call the OpenAI or Anthropic API. What no competitor can easily copy is your 18 months of telemetry about which ticket class wins on which model at what confidence threshold with your specific users.</p><div class="pullquote"><p>So the Problem Statement becomes - How do we match every incoming ticket to the cheapest model that still clears the user&#8217;s quality bar, within our latency SLA, at a positive contribution margin against human support cost?</p></div><p>Over-routing to the expensive model and inference eats the savings. Over-route to the cheap model and deflection collapses because humans have to clean up after the agent.</p><h2>The Five Constraints</h2><p>Before you pick a model, you score every candidate on five constraints. Most PMs only think about one or two. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8xRc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8xRc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8xRc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png" width="1254" height="1254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1254,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:588467,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194956369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.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_!8xRc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 424w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 848w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 1272w, https://substackcdn.com/image/fetch/$s_!8xRc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626180d3-0c54-4046-a8b9-1a3e5dd3d6fb_1254x1254.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Constraint 1: Task Fit</h4><p>Task Fit measures how closely the model&#8217;s training matches the actual ticket.</p><p>Where is my order is not a reasoning task. It is a structured data lookup wrapped in natural language. </p><p>A small model paired with a database call beats a frontier model here. The frontier model writes more than needed, invents delivery estimates, and hedges unnecessarily.</p><p>A refund dispute is a reasoning task. The user references past tickets, implies context, negotiates, and escalates. A small model collapses. You need the frontier model.</p><p>The same agent handles both. Task Fit tells you they cannot be handled by the same model.</p><div class="pullquote"><p>The only way to score Task Fit honestly is to build an internal eval set. </p></div><p>200 real tickets, sampled proportionally across ticket types. Every candidate model runs through it. A human or a judge model rates outputs on a rubric. This eval set is owned by the PM, not the ML team, and it is refreshed every month with real production data.</p><h4>Constraint 2: Latency</h4><p>Time to first token is what the user feels when they hit send.</p><p>For the 50% of tickets that are order status lookups, your target is under 500ms. The user is anxious. Every extra second is another 10% chance they open Twitter instead.</p><p>For the 5% of complex escalations, 2 seconds is acceptable if the response is visibly thoughtful. The user is already in a serious conversation and expects weight.</p><p>Your router itself has a latency budget. If your intent classifier takes 300ms to decide where to send the ticket, you have already burned most of the user&#8217;s budget before the actual model has started generating.</p><p>This is why classifier models are almost always small, often distilled or fine-tuned, tuned to run under 50ms. The router cannot be the bottleneck.</p><h4>Constraint 3: Cost</h4><p>At 2 million tickets a month, run the math on frontier-only inference.</p><p>Average ticket: five turns, roughly 2,000 accumulated input tokens per turn and 400 output tokens. At frontier model prices of roughly 15 dollars per million input tokens and 60 dollars per million output tokens, one ticket costs about 0.27$.</p><p>2 million tickets a month at 0.27$ each is 540,000 dollars in pure inference.</p><p>Your human baseline was 1 million dollars. Your AI inference alone is 54% of that. Your CEO is not impressed.</p><p>Now run the same math with a routed system. </p><ol><li><p>70% of tickets go to a cheap model at $0.01 each. </p></li><li><p>25% go to a mid-tier at $0.08. </p></li><li><p>5% go to the frontier model at $0.27. </p></li><li><p>Weighted average lands at 0.04$  per ticket. Total monthly inference cost: 81K</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_fDV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_fDV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_fDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:744971,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194956369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.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_!_fDV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_fDV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fcbb122-fbe3-4b67-9959-2a1122f5a301_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Same deflection rate. Nearly 7x the margin.</p><h4>Constraint 4: Context and Memory</h4><p>The agent needs context like past orders. previous tickets from the same user, restaurant policies, active promotions, delivery agent notes etc.</p><p>The instinct is to stuff everything into a 200K context window and let the model figure it out. This fails in two ways.</p><ol><li><p>Models measurably degrade past a certain context length, usually between 30K and 100K tokens, depending on the model. This is the lost-in-the-middle problem, and it is real.</p></li><li><p>Cost scales with every token included on every turn across millions of tickets. A 50K context blindly passed every turn turns your 0.04$ ticket into a $0.25 ticket. You have rebuilt the frontier-only problem with extra steps.</p></li></ol><blockquote><p>The right answer is retrieval. Pull only the relevant past order, the specific restaurant&#8217;s policy, the last two tickets, and the user&#8217;s LTV tier. Keep the context under 4,000 tokens. Let the router decide when a ticket is complex enough to justify pulling the full history.</p></blockquote><p>Retrieval gives you control. Massive context gives you a black box that silently gets worse and more expensive as you fill it.</p><h4>Constraint 5: Controllability</h4><p>A customer support model cannot invent a refund policy.</p><p>If the model says you will get a full refund plus 500 rupees credit and that is not your policy, you have two problems. You either honour the invention and bleed money. Or you refuse and face a Twitter escalation.</p><p>Controllability is how reliably the model sticks to your rules under adversarial inputs.</p><p>Frontier models are generally more capable but not always more controllable. A fine-tuned, smaller model trained on your exact refund policy will follow the rules more reliably than a frontier model with a clever prompt. For the 15% of tickets that are refund disputes, controllability beats raw capability.</p><p>Most PMs stop at the first two constraints. The best AI PMs score every candidate on all five, document the trade, and revisit the scorecard every quarter.</p><h2>Why - Just Use the Best Model - Fails Here</h2><p>The argument is familiar. LLM Prices are dropping or will drop drastically in future. Capability is doubling. Just pick the top model and wait.</p><p>Three reasons this is wrong for the support agent.</p><ol><li><p>Your competitor is not waiting. If they run a routed system today, they save 450K $ a month and reinvest it into faster delivery SLAs or cheaper customer acquisition. By the time frontier prices drop, they have already eaten your growth.</p></li><li><p>Best is relative to the ticket class, not the benchmark. The frontier model loses to a fine-tuned, smaller model on structured refund queries.</p></li><li><p>Cost drops do not flow to users. Every time inference gets cheaper, users expect richer responses, longer context, and more autonomy. If your unit economics are bad today, they are still bad tomorrow on a cheaper, more capable model.</p></li></ol><p><strong>Betting on the best model is a tax you pay to avoid doing the actual PM work.</strong></p><h2>The Router Pattern, Built for the Agent</h2><p>Your router has five components.</p><ol><li><p>An intent classifier sits in front of every ticket. A small fine-tuned model, under 50ms. It reads the ticket and returns one of five labels. order_status, missing_item, refund_dispute, restaurant_complaint, complex_escalation. It also returns a confidence score.</p></li><li><p>A model assignment table. order_status goes to a small model plus a database call. missing_item goes to a mid-tier model with a template response. refund_dispute goes to a fine-tuned, smaller model trained on your refund policy. restaurant_complaint goes to the mid-tier. Complex escalation goes to the frontier model.</p></li><li><p>A confidence threshold. If the classifier returns low confidence, the ticket escalates one tier up. If the primary model returns a low-confidence answer or the user replies &#8220;this is wrong&#8221;, it escalates again. The third escalation goes to a human.</p></li><li><p>A cache layer. 40% of &#8220;where is my order&#8221; tickets in a one-hour window ask about the same handful of delayed orders in a single city. Cache the response per order ID with a 60-second TTL. Zero inference cost on a cache hit.</p></li><li><p>A telemetry layer. Every ticket logs the classifier label, model chosen, tokens consumed, latency, user reaction, and final disposition. This is where your routing intelligence compounds.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IPCH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IPCH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IPCH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:763480,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194956369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.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_!IPCH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!IPCH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9607de2-c0cd-4ff5-8117-7245c7cce42e_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The sophistication is not in the components. It is in the ongoing tuning of the assignment table based on telemetry.</p><h2>One Ticket, End to End</h2><p>Follow a single ticket through the router.</p><p>A user types &#8220;bhai order kidhar hai, 45 min ho gaye&#8221; at 9:47 PM.</p><p>The ticket hits the edge. It is hashed and checked against the cache. No hit.</p><p>It goes to the intent classifier. Classifier returns order_status, confidence 0.93. 42 milliseconds elapsed.</p><p>The router looks up the assignment table. order_status with high confidence goes to the small model plus a database call.</p><p>In parallel, the system pulls the user&#8217;s active order and the delivery agent&#8217;s current GPS location. 80 milliseconds.</p><p>The small model receives the ticket plus structured context. It generates &#8220;Your order is 4 minutes away. The delivery agent is on the last stretch&#8221;. Time to first token: 210ms. Total response time: 480ms.</p><p>Telemetry logs the full trace. Ticket class, model used, tokens consumed, latency, user&#8217;s next message.</p><p>The user replies &#8220;ok thanks&#8221;. Telemetry marks this as a positive resolution.</p><p>The router chose the right model. The user got a fast answer. The ticket cost you $0.004  against a human cost of $0.5. Multiply by one million similar tickets a month, and you see where the money is actually saved.</p><p>That is the product.</p><p>Model choice is where the business is either made or broken. And it is the PM&#8217;s job to decide.</p><p>If this article changed how you think about model choice and AI product strategy, you will find much <a href="https://topmate.io/technomanagers/new/fK374qFpvL">more depth in our AI PM course</a>. We cover model selection, routing architectures, AI evals, cost modelling, and real interview questions from top companies.</p><p>Check our <strong>highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[Apple AI Strategy ]]></title><description><![CDATA[Everyone thinks Apple is losing the AI race.]]></description><link>https://www.technomanagers.com/p/apple-ai-strategy</link><guid isPermaLink="false">https://www.technomanagers.com/p/apple-ai-strategy</guid><dc:creator><![CDATA[The AI Professional]]></dc:creator><pubDate>Sun, 19 Apr 2026 05:43:54 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194667159/bde46f6563d7cccddcbb469414e6553f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Everyone thinks Apple is losing the AI race. </p><p>But here&#8217;s the truth&#8230; they&#8217;re playing a completely different game. </p><p>To dominate AI, companies need four things: </p><ol><li><p>Infrastructure, </p></li><li><p>Models, </p></li><li><p>Data, </p></li><li><p>and Distribution. </p></li></ol><p>Apple may be weak in AI models, but they are insanely strong in distribution. </p><p>They sell 200+ million iPhones every year. </p><p>And think about how we use phones. </p><p>We ask simple things &#8212; summarise emails, find photos, send quick messages. </p><p>So Apple&#8217;s strategy is simple: use our personal data to give hyper-personalised AI, and build the best interface on devices. and let others build the giant models. </p><p>For this, Apple is simply partnering with Google. </p><p>So Apple may never build the smartest AI&#8230; but they might build the most useful AI on our phone. Subscribe for more business strategy breakdowns.</p>]]></content:encoded></item><item><title><![CDATA[Why Your Recommender Keeps Forgetting You?]]></title><description><![CDATA[AI Product Management Case Study]]></description><link>https://www.technomanagers.com/p/why-your-recommender-keeps-forgetting</link><guid isPermaLink="false">https://www.technomanagers.com/p/why-your-recommender-keeps-forgetting</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Sat, 18 Apr 2026 12:08:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9698b809-65a8-48ac-a245-db55e4260e97_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine this, you buy an iPhone on Amazon. </p><p>Three days later, you buy a case for it. A week after that, you buy AirPods. Normal journey. </p><p>Your recommendation feed is doing its job.</p><p>Then life happens. You buy a birthday gift for your niece. A toy. Then a book for your dad. Then a yoga mat. Then some groceries.</p><p>Now you come back looking for a screen protector for that iPhone.</p><p><strong>Here is the problem. Your recommender has forgotten about the iPhone.</strong></p><p>The model remembers what you did most recently. <br>Toy. Book. Yoga mat. Groceries. <br>Based on that, it is now quietly convinced you are a gifting parent with a wellness streak. It is showing you more toys, more books, more yoga equipment.</p><p>Meanwhile, the single most important signal about what you want right now, the iPhone from three weeks ago, has been washed out.</p><p>This is not a theoretical problem. This is happening on most recommendation systems you use today. </p><p>Today, we are going to see how to fix that.</p><p>In our previous piece, we <a href="https://www.technomanagers.com/p/how-session-based-rnns-predict-your">explained how TikTok uses session-based RNNs</a> to predict your next swipe. At the end, we flagged three pitfalls. One of them was Catastrophic Forgetting. This article is a deep dive into the paper that solved it.</p><p>If you are preparing for AI PM interviews, recommendation system design is the most commonly asked system design topic at senior levels. <a href="https://topmate.io/technomanagers/1861184">We teach this in our course.</a></p><h2>The iPhone Problem</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QZxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QZxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QZxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:298769,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194601714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.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_!QZxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QZxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3b2f278-6e43-45d9-9497-f59a9c7b26e1_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let us go back to your Amazon story. Why did the model forget the iPhone?</p><p>The reason lies in how most recommenders store your history.</p><p>An RNN-based recommender works like this. Every time you buy something, the model converts that item into a short numerical fingerprint. Then it mixes that fingerprint into a single vector called the hidden state. One vector. That is the model&#8217;s entire memory of you.</p><p>Think of the hidden state like a single sticky note. Every time you buy something, the model scribbles on that same note, and whatever was written before gets slightly smudged.</p><p>After your iPhone purchase, the note says &#8220;wants tech accessories.&#8221;</p><p>After the case and AirPods, it still says roughly that.</p><p>Then you buy a toy. The note gets rewritten. Now it says &#8220;tech accessories and a gift.&#8221;</p><p>Then a book. Yoga mat. Groceries. By the time you come back for that screen protector, the sticky note no longer mentions the iPhone at all. It says something like &#8220;parent on a wellness kick with household needs.&#8221;</p><p>The iPhone signal is not lost. It is buried. Smeared under four unrelated purchases.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VmfF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VmfF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VmfF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:432020,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194601714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.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_!VmfF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!VmfF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64659897-9a44-49ad-8b23-b04d5d8f4035_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is called Catastrophic Forgetting. And it is not a bug you can fix by tuning the model. It is a fundamental flaw in the architecture. The sticky note itself is too small to hold what it needs to hold.</p><h2>Why This Breaks Product Experience</h2><p>This has two costs that hit you directly as a PM.</p><ol><li><p>The first cost is performance. Your model misses the highest-signal moments in a user&#8217;s journey because they get washed out by noise. A user who bought an iPhone three weeks ago is an obvious candidate for iPhone accessories. Your model does not see it. Your revenue per user suffers.</p></li><li><p>The second cost is explainability. You cannot tell a user why something was recommended. You cannot tell your leadership why the model did what it did. A single hidden vector is a black box even to the people who built it.</p></li></ol><p>If you have ever been in a meeting where your head of product asks, &#8220;Why is the model recommending this?&#8221; and your ML lead says, &#8220;The embeddings suggest...&#8221;, you have lived this problem.</p><h2>How Humans Actually Remember</h2><p>Here is the interesting part. You do not have this problem.</p><p>If someone asks you what to get for a new baby, you do not scan every memory from your entire life. You pull up the specific episode of buying baby stuff for your niece last year. You focus on that. Everything else stays quiet in the background.</p><p>You have episodic memory. You can pull up specific moments on demand.</p><p>Your recommender does not have this. It only has the sticky note.</p><blockquote><p><strong>What if we gave the recommender episodic memory?</strong></p></blockquote><h2>The Fix: A Memory Box, Not a Sticky Note</h2><p>Instead of the single hidden vector, can we give every user a small memory box?</p><p>Think of the box as a row of 20 labelled drawers. Each drawer holds one past purchase. When you buy something new, it goes into a fresh drawer. The oldest drawer gets emptied to make space.</p><p>At any moment, your box has your last 20 purchases, sitting side by side. <br>The iPhone is in drawer 17. <br>The case in drawer 16. <br>The AirPods in drawer 15. <br>The toy in drawer 14. <br>The book in drawer 13. </p><p>And so on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n95E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n95E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!n95E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!n95E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!n95E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n95E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:350071,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194601714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.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_!n95E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!n95E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!n95E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!n95E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92926d10-a785-4b84-abb4-65f1ecb32c7d_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Nothing is smudged. Nothing is averaged. Each purchase sits cleanly in its own drawer.</p><p>Now, when you come back looking for a screen protector, the model does something clever. It does not read all 20 drawers equally. It asks a question.</p><p>&#8220;Which of these past purchases is most relevant to a screen protector?&#8221;</p><p>It scans each drawer, scores the similarity, and pays attention to the ones that match. The iPhone drawer lights up. The toy drawer stays dim. The book drawer stays dim.</p><p>The model pulls out the iPhone signal cleanly and recommends the perfect screen protector.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MEvq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MEvq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MEvq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:527502,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194601714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.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_!MEvq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!MEvq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe11d1055-fa8c-40de-a50c-df59436352b9_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>This is exactly how attention works in modern AI. The model decides what to focus on based on what it is trying to do right now.</p></blockquote><h2>Two Versions of the Same Idea</h2><p>Here this we can do in two ways, both use the same core idea. They differ in what they store.</p><ol><li><p>The first version is called item-level RUM. <br>Each drawer in the box holds an actual past purchase. iPhone in one drawer. AirPods in another. This is simple. It is also explainable. You can literally tell the user that we showed you this because of that iPhone you bought three weeks ago.</p></li><li><p>The second version is called feature-level RUM. <br>Each drawer does not hold a purchase. It holds a preference. One drawer tracks your brand preference. Another tracks your price sensitivity. Another tracks your style preference. Every time you buy something, the drawers get gently updated. Buy an Apple product, and the brand drawer leans more towards Apple. Buy something cheap; the price is more budget-friendly.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EF86!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EF86!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EF86!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EF86!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EF86!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EF86!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:923468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194601714?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.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_!EF86!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EF86!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EF86!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EF86!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47058f43-cfa9-47d9-9ba2-6468ab5a0a19_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The second version tends to perform better. The first is easier to explain.</p><div class="pullquote"><p>If you work in a domain that demands explainability, such as finance or healthcare, <strong>go item-level. </strong></p><p>If you are running a pure engagement product where performance is everything, <strong>go feature-level.</strong></p></div><h2>How The Memory Updates</h2><p>The item version is simple. New purchase comes in, oldest one gets kicked out. First in, first out. A 20-slot box always holds the last 20 purchases.</p><p>The feature version is more interesting.</p><p>When you buy something new, the model does two things. </p><ol><li><p>First, it decides what to forget. If you just bought an Android phone, your brand preference for Apple should fade. The model computes a forget signal and uses it to gently erase the old preference.</p></li><li><p>Then it decides what to reinforce. Your brand preference for Android should go up. The model computes an add signal and writes it to the drawer.</p></li></ol><p>The mental model is simple. Every time you buy something, the relevant drawers in your memory box get a small dusting-off followed by a small update. </p><p>The beautiful thing is that the model learns what to forget and what to reinforce on its own. You do not write rules. You show it millions of user sequences, and it figures out the pattern.</p><h2>Thing which Product Manager needs to decide</h2><h4>Memory size</h4><p>How many drawers per user? More drawers mean richer history, but more computing. 20 might work for e-commerce. For a content platform like TikTok, where users burn through items in seconds, you might want 50 or 100.</p><h4>Item level or feature level</h4><p>Explainability or performance. Pick one. You cannot have both.</p><h4>Memory weighting</h4><p>optimal weight for recent behaviour. Start there. Then an A/B test. Stable domains like books or music can push intrinsic weight higher. Volatile domains like news or short-form video need more memory weight.</p><h4>Write strategy</h4><p>For item level, first-in-first-out is fine. For the feature level, you need the forget-and-reinforce approach. It is more powerful. It is also harder to debug.</p><p>If this article changed how you think about memory, recommendation architectures, and AI system design, you will find much more depth in our AI PM course. </p><blockquote><p><em>We cover these in 40+ Videos and 25+ Case Studies, along with AI PM interview questions from top AI companies.</em></p></blockquote><p><a href="https://topmate.io/technomanagers/1861184">Check our highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments.</a></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[90-Day Plan: Become an AI PM (starting from Zero)]]></title><description><![CDATA[If I Had to Start Over in 2026]]></description><link>https://www.technomanagers.com/p/90-day-plan-become-an-ai-pm-starting</link><guid isPermaLink="false">https://www.technomanagers.com/p/90-day-plan-become-an-ai-pm-starting</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Thu, 16 Apr 2026 16:58:07 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/26b237ae-2b48-4c0d-98f3-100b3ae0913d_1920x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If I lost every skill I have tomorrow and had 90 days to get hired as an AI PM, I would not watch a single YouTube video about prompt engineering for the first three weeks.</p><p>I would not open ChatGPT. I would not read a blog post about agents. I would not touch a no-code tool.</p><p>I would do something most PMs skip entirely.</p><p>I would learn how AI systems actually work before I try to build anything with them.</p><p>This sounds obvious. It is not what people do. What people do is jump straight to the shiny layer. They learn prompting. They learn vibe coding. They built a chatbot in an afternoon and updated their LinkedIn headline to &#8220;AI Product Manager.&#8221;</p><p>Then they sit in an interview. The interviewer asks how they would design evaluations for a RAG-based support system. They freeze.</p><p>They have no answer because they skipped the foundation that the answer sits on.</p><p>90 days is enough time. But only if you sequence things correctly.</p><p>Here is the exact sequence.</p><h2><strong>Weeks 1 to 3. The Foundation Nobody Wants to Build.</strong></h2><p>Most PMs hear about AI and start with Generative AI. This is backwards.</p><p>Generative AI is a layer that sits on top of machine learning. Machine learning sits on top of data systems. If you do not understand the layers below, you cannot reason about the layer above.</p><h4><strong>Week 1 is about machine learning at a PM level. Not math. Not code. Concepts.</strong></h4><ol><li><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">What is supervised learning, &amp; What is unsupervised learning?</a></p></li><li><p>What is the difference between a classification problem and a regression problem?</p></li><li><p>When your team says we trained a model, what does that actually mean?</p></li><li><p>What did they feed it? What did they optimise for? What could go wrong?</p></li></ol><blockquote><p><em>You are not learning this to become a data scientist.</em></p></blockquote><p>You are learning this so you can sit in a design review and know whether the team picked the right approach.</p><blockquote><p>If you cannot do that, you are not an AI PM. You are a project manager with a fancy title.</p></blockquote><p>We are launching a 12-week Cohort ( 100 Hrs of Learning) and 10+ Live Projects. Please find the details here</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dsDs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dsDs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dsDs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1571307,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/194427937?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.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_!dsDs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!dsDs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1edfdd9-74c4-4396-808d-28afb34eb3cb_1448x1086.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://topmate.io/technomanagers/page/IpmTa0nW5e&quot;,&quot;text&quot;:&quot;Become AI Product Builder&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://topmate.io/technomanagers/page/IpmTa0nW5e"><span>Become AI Product Builder</span></a></p><h2><strong>Week 2 is about the AI Flywheel.</strong></h2><p>This is the concept that separates AI products from regular software.</p><p>In regular software, a feature works the same way on day 1 and day 1000.</p><p>In AI, the product should get smarter the more people use it. Users generate data. Data improves the model. The better model creates better user experiences. Better experiences bring more users.</p><blockquote><p><em>If you cannot design this loop for your product, you do not have an AI strategy.</em></p></blockquote><p>You have a feature with an API call.</p><h2><strong>Week 3 is about data pipelines.</strong></h2><p>This is the week that will feel the most boring and will be the most valuable.</p><p>Your AI is only as good as the data feeding it.</p><blockquote><p>Dirty data. Biased data. Missing data. Poorly labelled data.</p></blockquote><p>These are not engineering problems. These are product problems.</p><p>The PM who understands data pipelines catches issues in the design phase. The PM who does not catch them in production, after users have already had a bad experience.</p><p>By the end of Week 3, <a href="https://topmate.io/technomanagers/new/fK374qFpvL">you should be able to whiteboard a basic ML system</a>. Data in. Feature engineering. Model training. Prediction. Feedback loop. If you cannot draw this, you are not ready for what comes next.</p><h2><strong>Weeks 4 and 5. Algorithms and Case Studies.</strong></h2><p>You do not need to derive the math behind logistic regression.</p><p>You need to know when to use it.</p><p>Here is a real scenario.</p><p>Your team is deciding between a decision tree and a linear model for a pricing feature.</p><p>The engineer explains the trade-offs. If you do not understand what either approach does, you are sitting in that meeting as a spectator.</p><p>You are waiting for someone else to make a decision that is yours to make.</p><p>Week 4: learn the three algorithms that cover 80% of PM-relevant AI decisions.</p><ol><li><p>Linear regression for predicting continuous values.</p></li><li><p>Logistic regression for classification.</p></li><li><p>Decision trees for complex, non-linear problems.</p></li></ol><p>For each one, learn what it does, when it works, when it breaks, and what the output looks like.</p><p>Do not learn these from textbooks. Learn them from product case studies. How Uber uses prediction models for pricing.</p><p><em><strong>How Netflix uses collaborative filtering for recommendations.</strong></em></p><p><em><strong><a href="https://topmate.io/technomanagers/new/fK374qFpvL">How Amazon designs the data flywheel behind Alexa.</a></strong></em></p><p>Week 5 is entirely case studies. Read 10 to 15 real company teardowns.</p><p>How does Lyft balance model accuracy against latency in real-time pricing, and how does Amazon show the next best category to the users? How does Netflix do creative personalisation on the Homepage? <em><strong><a href="https://topmate.io/technomanagers/new/fK374qFpvL">(You can find Case Studies Here)</a></strong></em></p><p>Every case study you internalise becomes a mental model you can pull out in a conversation, a strategy discussion, or an interview.</p><p>The PMs who sound the sharpest in rooms are the ones with the deepest library of real-world references.</p><h2><strong>Weeks 6 and 7. Generative AI From First Principles.</strong></h2><p>Now you are ready for Gen AI. Not before.</p><p>Week 6 is about understanding generative AI, how it is different from the AI that we learnt in the last few weeks. How does Generative AI work? What are some of the applications that generative AI can solve?</p><p>Then go deeper into the hood of Generative AI</p><ol><li><p>What is a transformer? What is a token? What is a context window?</p></li><li><p>What happens when you increase the temperature from 0.2 to 0.9?</p></li><li><p>Why does the same prompt give different outputs each time?</p></li><li><p>Why does the model hallucinate, and when is hallucination more likely?</p></li></ol><p>These are not academic questions. If your AI feature is hallucinating and you do not know whether the problem is the prompt, the temperature, the model, or the retrieval layer, you cannot diagnose it.</p><p>You are dependent on an engineer to figure it out. That is a loss of ownership.</p><p>Week 7 is prompting. Not &#8220;write me a blog post&#8221; prompting. Structural prompting.</p><ol><li><p>Chain of Thought. Tree of Thought. Few-shot examples.</p></li><li><p>System-level constraints. Prompt chaining for multi-step workflows.</p></li></ol><p>These techniques are the difference between an AI feature that works 60% of the time and one that works 95% of the time.</p><p>If you are building a product used by millions of people, that 35% gap is the difference between a feature users trust and a feature users abandon.</p><p>By the end of Week 7, you should be able to write a multi-step prompt chain that produces consistent, reliable output for a defined product use case. Not a toy demo. A real workflow.</p><h2><strong>Weeks 8 and 9. Prototyping. The Phase That Changes Your Career.</strong></h2><p>Everything before this was understandable. This is where you start building.</p><p>The gap between PMs who understand AI and PMs who build with AI is the largest salary gap in product management right now. The difference is not 10% or 20%. It is 2x to 3x.</p><h4><strong>Week 8: build your first working prototype.</strong></h4><p>Not a mockup. Not a slide deck. A working thing where the AI takes an input, processes it, and returns an output a real user can interact with.</p><p>Use Cursor. Use Replit. Use Claude. The tools are too good now for any PM to say &#8220;I cannot build anything.&#8221; You do not need to write production code. You need to string together an API, a prompt, and a simple interface.</p><p>Pick a real problem you face at work. Build a tool that solves it in an afternoon. When you walk into a meeting and show your team a working prototype instead of a spec, the dynamic changes permanently. You stop being the person who requests things. You become the person who builds things.</p><h4><strong>Week 9: Make the prototype reliable.</strong></h4><p>This is where most vibe coding efforts die.</p><p>The prototype works 70% of the time. The PM calls it done. Post it on LinkedIn. Gets some likes.</p><blockquote><p>But 70% reliability is not a product. It is a demo.</p></blockquote><p>Week 9 is about model control. Temperature tuning. Choosing between a fast, cheap model and a slow, expensive one for different parts of the workflow.</p><p>Building a reliability framework. Understanding the cost-per-query math so you can tell leadership &#8220;this feature costs X per user per month&#8221; and mean it.</p><p>These are PM decisions. Not engineering decisions. The PM who owns these trade-offs owns the product. The PM who delegates them owns a spec.</p><blockquote><p><strong><a href="https://topmate.io/technomanagers/1084615">FREE Book Giveaway&#8202;&#8212;&#8202;AI &amp; Tech Simplified</a></strong></p></blockquote><h2><strong>Weeks 10 and 11. RAG, Agents, and Evals.</strong></h2><p>If you have done everything above, you are in the top 10% of PMs by AI fluency.</p><blockquote><p><em>The top 1% knows three more things. RAG systems. AI agents. And evals.</em></p></blockquote><h3><strong>RAG</strong></h3><p>Almost every enterprise AI product is a RAG system. The reason is simple. GPT does not know your company data. Claude does not know your Q3 metrics. No off-the-shelf model knows your customer support documentation.</p><p>RAG bridges this gap. It retrieves relevant chunks from your private data and feeds them to the model so it can generate answers grounded in your specific context.</p><p>If you are PMing an enterprise AI product and you cannot explain how RAG works, how chunking affects retrieval quality, or what a vector database does, you cannot debug the most common failure mode: the system returning wrong or irrelevant answers.</p><h3><strong>Agents</strong></h3><p>These are AI systems that do not just respond. They act. They plan a multi-step workflow, use external tools, and execute tasks autonomously. The PM challenge is different here. You need to design guardrails, failure states, and human-in-the-loop checkpoints for a system that makes its own decisions.</p><h4><strong>Now, the most important skill of all three: evals.</strong></h4><p>Evals are how you measure whether your AI system is good.</p><p>This sounds simple. It is the hardest unsolved problem in AI product management. You cannot use traditional metrics. Pass/fail does not work when the output is a paragraph of text. You need deterministic evals for things you can measure objectively. You need probabilistic evals where you use one AI model to judge another.</p><p>The PMs who understand evals ship with confidence. They set measurable quality bars. They can defend their decisions to leadership with data.</p><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">We have covered Advanced Evals here</a></p><h2><strong>Weeks 12 and 13. Interview Preparation &amp; Portfolio</strong></h2><p>You can know all of the above. If you cannot communicate it under pressure in 45 minutes, none of it counts.</p><p>AI PM interviews do not ask you to design an alarm clock for the blind. They ask questions like these:</p><ol><li><p>How would you measure the success of GPT 5.0?</p></li><li><p>Design a reliability framework for an AI shopping assistant.</p></li><li><p>ChatGPT&#8217;s regeneration rate has increased. How would you investigate?</p></li><li><p>How would you price Gemini?</p></li><li><p>Design a RAG system for TikTok content moderation.</p></li><li><p>Imagine Google made its model free, and it is better than paid GPT. You are Sam Altman. What do you do?</p></li><li><p><strong><a href="https://topmate.io/technomanagers/new/fK374qFpvL">We have 20 such Real AI PM Interview Questions here</a></strong></p></li></ol><p>If you have never practised these questions, you will fumble.</p><p>Not because you do not know the concepts. Because you have not built the muscle of structuring an AI PM answer under time pressure.</p><h4><strong>The structure matters.</strong></h4><ol><li><p>Start by clarifying the AI system architecture.</p></li><li><p>Define success metrics specific to AI products.</p></li><li><p>Address trade-offs unique to probabilistic systems. Show cost-per-query awareness.</p></li><li><p>Show eval thinking. Demonstrate that you can move between product sense and technical depth in the same answer.</p></li></ol><p>Week 12 is practice. Answer questions out loud. Record yourself. Listen back. Find the moments when you hedged, when you went vague, when you lost the technical thread.</p><h3><strong>Week 13 is portfolio.</strong></h3><p>Document the prototype you built in Week 8.</p><ol><li><p>Write up two case study analyses from Week 5.</p></li><li><p>Create a one-page eval framework for an AI feature.</p></li><li><p>This is your proof of work. It is the difference between &#8220;I learned about AI&#8221; and &#8220;I built with AI.&#8221;</p></li></ol><p>This plan will make you absolutely beast after 12&#8211;13 weeks. 95% of PMs cannot do these things right now. The ones who can are not smarter. They just did the work in the right order. Most of this plan maps directly to what I teach. <strong>If you want to skip the self-study phase??</strong></p><blockquote><p>Check our highest-rated AI PM course (Including AI PM Interview Preparation )&#183; 4.9/5 &#183; 600+ enrollments<strong> </strong>&#183; <strong>Use NYE26 for 60% off &#8594; <a href="https://topmate.io/technomanagers/new/fK374qFpvL">See testimonials and course details</a></strong></p></blockquote><h2><strong>About Author</strong></h2><p><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. For more, check out my <a href="https://topmate.io/technomanagers">Live Webinars</a>, <a href="https://topmate.io/technomanagers/1861184">AI Product Management Course</a>, <a href="https://topmate.io/technomanagers/1470531">PM Interview Mastery Course</a>, <a href="https://topmate.io/technomanagers/1472775">Cracking Strategy</a>, and <a href="https://topmate.io/technomanagers">other Resources</a></p>]]></content:encoded></item><item><title><![CDATA[Advanced Evals - Traces in AI Evals]]></title><description><![CDATA[How to Debug AI Systems That Think in Steps]]></description><link>https://www.technomanagers.com/p/advanced-evals-traces-in-ai-evals</link><guid isPermaLink="false">https://www.technomanagers.com/p/advanced-evals-traces-in-ai-evals</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Tue, 14 Apr 2026 20:28:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3928af50-5666-48dd-a427-0ace77ca3dab_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You are a product manager at Amazon.</p><p>You just shipped Rufus. The AI shopping assistant that lives inside the Amazon app.</p><p>A user types: I am looking for running shoes for flat feet under 5000 rupees with good cushioning.</p><p>Your system does not just call an LLM and return a response. It runs a chain of operations.</p><ol><li><p>First, it classifies the user&#8217;s intent. Is this a product search? A comparison request? A return query?</p></li><li><p>Then, it extracts structured attributes from the query. Category: running shoes. Foot type: flat feet. Budget: under 5000. Feature: cushioning.</p></li><li><p>Then, it calls the product search API with those attributes and retrieves 20 candidate products.</p></li><li><p>Then, it applies a reranking model to sort those 20 products by relevance to the original query.</p></li><li><p>Then, it feeds the top 5 products and the original query to an LLM, which generates a conversational response with recommendations.</p></li><li><p>Finally, it applies a safety filter to check for hallucinated claims. Did the LLM say a shoe has orthopaedic certification when the product listing never mentioned it?</p></li></ol><p>Six places where something can go wrong.</p><p>The user sees the final response. It recommends three shoes. One of them is a basketball shoe. The cushioning claim on another is fabricated. The third recommendation is fine, but it costs 7200 rupees, which is above the stated budget.</p><p>Your VP asks what happened.</p><p>You look at the final output. It looks broken. But you have no idea which step broke it.</p><p>&#8212;&gt; Was it the intent classifier? <br>&#8212;&gt; The attribute extractor? <br>&#8212;&gt; The search API? <br>&#8212;&gt; The reranker? <br>&#8212;&gt; The LLM? The safety filter?</p><p>This is where traces come in.</p><h2>Why Traditional Evals Cannot Debug Multi-Step AI Systems</h2><p>In the previous article, <a href="https://www.technomanagers.com/p/advanced-evals-evals-for-rag">we covered RAG evals. Precision, Recall, MRR</a>. Those metrics evaluate one specific component: the retrieval layer. They tell you whether your system pulled the right documents.</p><p>But modern AI systems are not single-component systems. They are pipelines. Chains. Agents. Multiple models calling multiple tools in sequence, where the output of one step becomes the input of the next.</p><blockquote><p>Traditional evals look at the final output and ask: Was this answer good?</p></blockquote><p>Traces solve this problem. A trace is a complete record of everything your AI system did to produce a single response. Every step. Every input. Every output. Every decision in that order.</p><p>If the final answer is wrong, the trace tells you exactly where the pipeline broke.</p><h2>What Is a Trace?</h2><p>A trace is borrowed from distributed systems. In traditional software engineering, when a user requests a web application, that request might travel through an API gateway, a load balancer, a backend service, a database, and a cache. A distributed trace records each hop, so engineers can see the full journey of a single request.</p><p>AI traces do the same thing, but for AI pipelines.</p><p>A trace represents the full lifecycle of a single user interaction with your AI system. From the moment the user sends a query to the moment the system returns a response.</p><p>A trace is made up of spans.</p><p>A span is one unit of work inside the trace. One step. One operation. One model call. One API request. One tool invocation.</p><h4>Every span records four things.</h4><ol><li><p>What went in. The input to that step.</p></li><li><p>What came out. The output of that step.</p></li><li><p>How long did it took? The latency.</p></li><li><p>What type of operation it was. An LLM call, a retrieval step, a tool call, a function execution.</p></li></ol><p>Spans are nested. A parent span can contain child spans. This creates a tree structure that shows exactly how your system executed.</p><p>This is the anatomy of a trace. A tree of spans, each recording the inputs, outputs, and timing of a single step.</p><h2>Walking Through a Real Trace</h2><p>Let us go back to Rufus. The user asked: <br>I am looking for running shoes for flat feet under 5000 rupees with good cushioning.</p><p>Here is the trace your system recorded. Six spans, in order.</p><h3>Span 1: Intent Classifier</h3><blockquote><p>Input: I am looking for running shoes for flat feet under 5000 rupees with good cushioning.<br>Output: intent = product_search<br>Latency: 45ms <br>Model: Internal classifier v3</p></blockquote><p>This span worked correctly. The intent is product search. No issues here.</p><h3>Span 2: Attribute Extractor</h3><blockquote><p>Input: I am looking for running shoes for flat feet under 5000 rupees with good cushioning. <br>Output: {category: &#8220;running_shoes&#8221;, foot_type: &#8220;flat_feet&#8221;, max_price: 5000, feature: &#8220;cushioning&#8221;} <br>Latency: 120ms <br>Model: GPT-4o mini</p></blockquote><p>This span also worked correctly. All four attributes were extracted accurately from the query.</p><h3>Span 3: Product Search API</h3><blockquote><p>Input: {category: &#8220;running_shoes&#8221;, foot_type: &#8220;flat_feet&#8221;, max_price: 5000, feature: &#8220;cushioning&#8221;} <br>Output: 20 products returned. Product IDs: [A1, A2, A3, ... A20] <br>Latency: 230ms</p></blockquote><p>Here is the first problem. When you inspect the 20 products returned, you find that product A7 is a basketball shoe. The search API matched on cushioning but ignored the running_shoes category constraint. The API treated the category as a soft filter instead of a hard filter.</p><p>You also find that product A14 costs 7200 rupees. The max_price filter did not work as a strict cutoff.</p><p>Two bugs. Both in the search API span. Neither is visible in the final output without the trace.</p><h3>Span 4: Reranker</h3><blockquote><p>Input: 20 products from Span 3, original query. <br>Output: Top 5 ranked products: [A3, A7, A12, A14, A1]. <br>Latency: 180ms <br>Model: Cross-encoder reranker v2</p></blockquote><p>The reranker promoted A7 (the basketball shoe) to position 2 and A14 (the overpriced shoe) to position 4. The reranker matched on cushioning and boosted both products because they had strong cushioning scores.</p><p>The reranker did its job given the inputs it received. But those inputs were already contaminated by the search API.</p><p>This is a cascading failure. The search API lets in bad products. The reranker, operating on bad inputs, made the problem worse by promoting them.</p><h3>Span 5: Response Generator (LLM)</h3><blockquote><p>Input: Top 5 products + original query <br>Output: Based on your requirements, here are three great options for flat feet with excellent cushioning: 1. Nike Revolution 6 (Rs 3,499) with orthopaedic-grade cushioning technology... 2. Adidas CourtSmash (Rs 4,299) with premium arch support... 3. ASICS Gel-Kayano (Rs 7,199) with superior gel cushioning...<br>Latency: 1,200ms <br>Model: Claude Sonnet Tokens: 340 input, 180 output</p></blockquote><p>Multiple problems surfaced here. </p><ol><li><p>The LLM included A14 (ASICS at Rs 7,199) despite the user asking for under 5000.</p></li><li><p>The LLM fabricated orthopaedic-grade cushioning technology for the Nike shoe.</p></li><li><p>That phrase does not exist in the product listing. </p></li><li><p>And the LLM recommended the Adidas CourtSmash, which is the basketball shoe (A7) that the search API should have filtered out.</p></li></ol><h3>Span 6: Safety Filter</h3><blockquote><p>Input: Generated response. <br>Output: Response passed. No safety violations detected. <br>Latency: 85ms</p></blockquote><p>The safety filter checked for toxicity, PII, and explicit content. It did not check for factual accuracy against product listings. It did not catch the hallucinated orthopaedic-grade claim. It did not catch the budget violation.</p><p>The safety filter passed a response that contained two factual errors.</p><h2>What the Trace Reveals</h2><p>Without the trace, all you know is that the final answer was bad. With the trace, you know exactly what happened.</p><ol><li><p>The search API had two bugs. The category filter was soft instead of hard. The price filter allowed products above the stated maximum.</p></li><li><p>The reranker amplified the problem. It promoted bad products because it optimised for feature match without respecting hard constraints.</p></li><li><p>The LLM hallucinated a product claim. It added orthopaedic-grade cushioning technology, which does not exist in any source data.</p></li><li><p>The LLM ignored a constraint. It recommended a product above the user&#8217;s budget.</p></li><li><p>The safety filter was incomplete. It checked for toxicity but not for factual grounding or constraint adherence.</p></li></ol><p><em>Five distinct failure points. Three different components. Two cascading failures. One root cause (the search API) propagated through the entire pipeline.</em></p><p>You cannot find any of this by evaluating only the final output.</p><h2>Span-Level Evals: Evaluating Each Step Independently</h2><p>This is where traces and evals converge.</p><p>Traditional evals evaluate the system end-to-end. You compare the final output against a ground truth. That tells you whether the system worked, but not where it failed.</p><p>Span-level evals evaluate each span independently. You attach an evaluation metric to each span in the trace. Each step gets its own scorecard.</p><p>Let us apply this to our Rufus trace.</p><h3>Eval for Span 1 (Intent Classifier)</h3><p>Metric: Classification accuracy. <br>Ground truth: product_search<br>System output: product_search<br>Score: 1.0. Correct.</p><h3>Eval for Span 2 (Attribute Extractor)</h3><p>Metric: Attribute extraction F1. <br>Ground truth: {category: &#8220;running_shoes&#8221;, foot_type: &#8220;flat_feet&#8221;, max_price: 5000, feature: &#8220;cushioning&#8221;} <br>System output: Same. <br>Score: 1.0. All attributes correctly extracted.</p><h3>Eval for Span 3 (Search API)</h3><p>Metric 1: Category precision. What fraction of returned products match the requested category? 18 out of 20 products are running shoes. 2 are not. Score: 0.90.</p><p>Metric 2: Price constraint adherence. What fraction of returned products are under the stated max price? 17 out of 20 are under 5000. 3 are above. Score: 0.85.</p><p>Both scores reveal a leaky filter. Neither score would surface from an end-to-end eval.</p><h3>Eval for Span 4 (Reranker)</h3><p>Metric: NDCG (Normalised Discounted Cumulative Gain). Did the reranker place the most relevant products at the top?</p><p>If we define relevance as products that match ALL stated criteria (running shoes, flat feet, under 5000, good cushioning), then positions 2 and 4 in the top 5 contain products that violate at least one constraint.</p><p>NDCG@5: 0.72.</p><p>The reranker is optimising for partial relevance. It matches on some attributes while ignoring others.</p><h3>Eval for Span 5 (LLM Response)</h3><p>Metric 1: Faithfulness. Does every claim in the response have a source in the input products? The orthopaedic-grade cushioning technology claim has no source. Faithfulness score: 0.67.</p><p>Metric 2: Constraint adherence. Does the response respect all user-stated constraints? One product exceeds the budget. <br>Score: 0.67 (2 out of 3 recommendations within budget).</p><h3>Eval for Span 6 (Safety Filter)</h3><p>Metric: Hallucination detection rate. What fraction of factually unsupported claims were caught? The safety filter caught 0 out of 1 hallucinated claims. Score: 0.0 for factual grounding.</p><p>Now look at what you have.</p><p>A full diagnostic report. Each component was scored independently. You know that the intent classifier and attribute extractor are working perfectly. You know the search API has a filter leakage problem. You know the reranker needs constraint-aware scoring. You know the LLM has a faithfulness problem. You know the safety filter has a coverage gap.</p><p>This is an eval report built on traces. You cannot produce this without tracing your system.</p><h2>The Trace-to-Eval Pipeline</h2><p>Traces do not just help you debug individual failures. They create a flywheel for continuous improvement.</p><p>Here is how the pipeline works.</p><ol><li><p>Step 1: Your system logs traces from production. Every user query generates a trace with all its spans.</p></li><li><p>Step 2: You sample traces. Not every trace needs evaluation. You pick a subset. Maybe 1 to 5 percent of production traffic. Maybe all traces where the user gave a thumbs down. Maybe all traces where the response latency exceeded a threshold.</p></li><li><p>Step 3: You run automated evals on the sampled traces. LLM-as-a-judge scores each span for faithfulness, relevance, constraint adherence, whatever metrics matter for your product. This is called online evaluation.</p></li><li><p>Step 4: Traces that score poorly get routed to a human review queue. Domain experts look at the trace, examine each span, and annotate where the system failed. These annotated traces become your golden dataset.</p></li><li><p>Step 5: You use the golden dataset for offline evaluation. Before shipping any change to any component, you run the new version against your golden dataset and compare span-level scores.</p></li><li><p>Step 6: The improved system goes to production. It generates better traces. Those traces get sampled and evaluated. The cycle repeats.</p></li></ol><p>This is the trace-eval flywheel. Production traces become eval datasets. Eval datasets drive improvements. Improvements generate better traces. The system gets better every cycle.</p><p>Without traces, this flywheel does not exist. You cannot build a golden dataset if you do not know what each component did at each step.</p><h2>End-to-End Evals vs Span-Level Evals</h2><p>There is a common mistake teams make after they discover span-level evals. They stop running end-to-end evals entirely.</p><p>This is wrong. You need both. Here is why.</p><p>Span-level evals catch component failures. They tell you which step broke. But they cannot catch emergent failures. Failures that only appear when components interact.</p><p>Consider this scenario. The intent classifier outputs &#8220;product_search&#8221; correctly. The attribute extractor outputs all four attributes correctly. The search API returns 20 relevant products. The reranker ranks them well. The LLM generates a fluent response. Every span passes its individual eval.</p><p>But the final response is still bad. The LLM picked three products that are all from the same brand. The user sees no variety. The response feels like a sponsored advertisement.</p><p>No individual span failed. The failure is emergent. It exists only in the interaction between the reranker (which promoted similar products) and the LLM (which did not add a diversity constraint).</p><p>End-to-end evals catch this. They evaluate the final output as a whole. Diversity, user satisfaction, and task completion.</p><h4>The framework is simple.</h4><div class="pullquote"><p>Use span-level evals to catch component failures. Where did the pipeline break?</p><p>Use end-to-end evals to catch emergent failures. Does the full pipeline produce good outcomes even when every component looks fine individually?</p><p>Use traces to connect the two. When an end-to-end eval catches a failure, walk the trace to find the root cause.</p></div><p>If you want to go deeper on Advanced Evals (Cohen&#8217;s Kappa, Matthew&#8217;s Correlation Coefficient), Evals for Agentic Architecture, AI Product Sense, AI Strategy, AI Pricing, AI Prototyping, Advanced Prompting, ML Systems, etc., check out my AI PM course (40+ Videos and 25+ Case Studies) [Certification Included]</p><p>Check our highest-rated AI PM course (Including AI PM Interview Preparation) &#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a>, <a href="https://topmate.io/technomanagers">AI PM Resources</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[Advanced Evals - Evals for RAG]]></title><description><![CDATA[A worked example of Precision@K, Recall@K, and MRR using Google AI Overviews.]]></description><link>https://www.technomanagers.com/p/advanced-evals-evals-for-rag</link><guid isPermaLink="false">https://www.technomanagers.com/p/advanced-evals-evals-for-rag</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Mon, 13 Apr 2026 21:11:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c7c6c965-d99a-477d-9d85-25f4060ea6f4_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You are a product manager at Google. </p><p>You just shipped AI Overviews. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>The feature that puts an AI-generated answer right at the top of search results.</p><p>A user types: &#8220;Why does my iPhone battery drain fast after the iOS 26 update?&#8221;</p><p>Your system does two things. </p><ol><li><p>First, it retrieves five web pages from Google&#8217;s index that it thinks are relevant.</p></li><li><p>Then, it feeds those pages to Gemini and generates a summary answer.</p></li></ol><p>The answer looks clean. The formatting is right. Gemini&#8217;s language is fluent. Your VP sees it in a demo and says ship it.</p><p>But here is the question nobody in the room asked.</p><p>Were those five retrieved pages actually the right ones?</p><blockquote><p>Because if your retrieval pulled garbage, Gemini just summarised garbage. </p></blockquote><p>This is the problem every team building RAG systems runs into. And almost nobody evaluates it correctly.</p><h2>Why Evaluating RAG Is Different From Evaluating LLMs</h2><p>Traditional LLM evals test whether the model&#8217;s output is good. Did it answer correctly? Was the tone right? Did it hallucinate?</p><p><em>RAG evals test something upstream. They test whether the retrieval system fed the right inputs to the model in the first place.</em></p><p>A RAG pipeline has two components. </p><ol><li><p>The retrieval layer that selects documents. </p></li><li><p>And the generation layer that synthesises an answer from those documents. </p></li></ol><p>These are two separate systems. They fail in different ways. They need to be evaluated separately.</p><p>Most teams skip the retrieval evaluation entirely. They look at the final generated answer and if it is good, they assume the whole pipeline works.</p><p>That is a mistake. Because sometimes the model gets lucky. It generates a reasonable answer even from mediocre sources. And sometimes the retrieval is perfect, but the model fumbles the generation.</p><p>RAG evals separate these two failure modes. They tell you exactly where the pipeline broke.</p><p>And the retrieval layer? That is your job as a PM to get right. Because retrieval quality is a product decision. </p><p>&#8212;&gt; How many documents to retrieve? </p><p>&#8212;&gt; Which embedding model to use. </p><p>&#8212;&gt; What similarity threshold to set. </p><p><strong>These are all choices that show up in your PRD, not in a prompt.</strong></p><h2>The RAG Evaluation</h2><p>Let us go back to Google. You are evaluating AI Overviews for the query: &#8220;Why does my iPhone battery drain fast after iOS 26 update.&#8221;</p><p>Your retrieval system pulls five documents. Here is what it returned, in the exact order it ranked them:</p><ol><li><p>Position 1: Apple Support page on iPhone battery health settings. </p></li><li><p>Position 2: A CNET article titled &#8220;Best Android Phones With Long Battery Life in 2025.&#8221; </p></li><li><p>Position 3: A Reddit thread from r/iPhone where users share iOS 26 battery drain fixes. </p></li><li><p>Position 4: A MacRumors article covering iOS 26 release notes and known battery bugs. </p></li><li><p>Position 5: An Amazon product listing for an Anker battery case.</p></li></ol><p>Now, you need a ground truth. You need to know, which documents in your entire corpus were actually relevant to this query.</p><p>Your human evaluators (or your golden dataset) say there are exactly four relevant documents in the whole index for this query:</p><ol><li><p>Relevant Doc A: The Apple Support page on battery health settings. </p></li><li><p>Relevant Doc B: The Reddit thread with iOS 26 battery drain fixes. </p></li><li><p>Relevant Doc C: The MacRumors article on iOS 26 release notes and battery bugs.</p></li><li><p>Relevant Doc D: An Apple Developer Forum post about background app refresh causing battery drain in iOS 26.</p></li></ol><p>So here is the picture. Your system retrieved five documents. Three of them are relevant (positions 1, 3, and 4). Two are irrelevant (positions 2 and 5). And one relevant document (the Developer Forum post) was not retrieved at all.</p><p>Let us now measure exactly how good or bad this retrieval was.</p><h2>Precision@K in RAG: Are You Retrieving Junk?</h2><p>Precision answers a simple question. Out of everything you retrieved, how much of it was actually useful?</p><p>The formula is:</p><div class="pullquote"><p>Precision@K = (Number of relevant documents in the top K results) / K</p></div><p>Let us calculate it at different values of K.</p><h4>Precision@1.</h4><p>You look at only the top result. </p><p>Position 1 is the Apple Support page. That is relevant.</p><blockquote><p>Precision@1 = 1/1 = 1.0</p></blockquote><p>Perfect. Your top result is a hit.</p><h4>Precision@3.</h4><p>You look at the top three results. </p><p>Position 1: Apple Support page. &#8212; Relevant. <br>Position 2: CNET Android article. &#8212; Not relevant. <br>Position 3: Reddit iOS 26 thread. &#8212; Relevant.</p><blockquote><p>Precision@3 = 2/3 = 0.67</p></blockquote><p>Two out of three were useful. That CNET Android article diluted the quality.</p><h4>Precision@5.</h4><p>You look at all five results. </p><p>Position 1: Relevant. <br>Position 2: Not relevant. <br>Position 3: Relevant. <br>Position 4: Relevant. <br>Position 5: Not relevant.</p><blockquote><p>Precision@5 = 3/5 = 0.60</p></blockquote><p>Three out of five. 60%. That means 40% of what you fed to Gemini was noise.</p><p>Here is what this metric tells you as a PM.</p><p>A precision of 0.60 at K=5 means your context window is 40% garbage. Gemini has to work harder to ignore the Android article and the Anker battery case listing. Every irrelevant document increases the chance of a confused, diluted, or hallucinated answer.</p><p>If your precision is dropping, you need to look at your embedding model. Your similarity threshold is too loose. You are retrieving documents that are only tangentially related to the query.</p><p><em>Precision is a purity metric. It tells you whether your retrieval has a noise problem.</em></p><h2>Recall@K in RAG: Are You Missing Important Documents?</h2><p>Recall asks the opposite question. Out of everything that should have been retrieved, how much did you actually find?</p><p>The formula is:</p><div class="pullquote"><p>Recall@K = (Number of relevant documents in the top K results) / (Total number of relevant documents in the corpus)</p></div><p>We said there are four relevant documents total. Let us calculate.</p><h4>Recall@1</h4><p>You retrieved one document. It is relevant.</p><p>Recall@1 = 1/4 = 0.25</p><p>You found one out of four relevant documents, 25%. You are missing 75% of the useful information.</p><h4>Recall@3</h4><p>The top three results contain two relevant documents (positions 1 and 3).</p><p>Recall@3 = 2/4 = 0.50</p><p>You have found half the relevant information. Better. But the user is still missing context about the iOS 26 release notes and the developer forum post.</p><h4>Recall@5</h4><p>All five results contain three relevant documents.</p><p>Recall@5 = 3/4 = 0.75</p><p>75%, You captured most of the relevant information. But that fourth document, the Developer Forum post about background app refresh, never made it in.</p><p>And that missing document? It might have been the most important one. It contains the actual technical fix. </p><p>A user reading the AI Overview gets generic advice on battery health settings but misses the specific step to disable background app refresh in iOS 26. That is a coverage gap. And it is invisible if you only look at Precision.</p><p>Here is what Recall tells you as a PM.</p><blockquote><p>Low recall means your users are getting incomplete answers. They are not seeing important perspectives. </p></blockquote><p>In a search product, low recall is how you lose trust. The user tries your AI answer; it does not solve their problem. They scroll past it to the blue links, and eventually, they stop reading AI Overviews entirely.</p><p>If your recall is low, you need to retrieve more documents (increase K). Or you need a better embedding model that captures semantic similarity more broadly.</p><p>But notice the tension. Increasing K improves recall but can hurt precision. </p><p>You pull in more documents, and some of them will be junk. </p><p><em>This is the fundamental tradeoff you manage as a PM. And it is why you need both metrics, not just one.</em></p><h2>The Precision-Recall Tradeoff in RAG Systems</h2><p>Let us put the numbers side by side.</p><p>At K=1: Precision is 1.00, Recall is 0.25. <br>At K=3: Precision is 0.67, Recall is 0.50. <br>At K=5: Precision is 0.60, Recall is 0.75.</p><p>See the pattern? As K increases, precision drops and recall rises. You are pulling in more documents, which means you find more relevant ones (recall goes up), but you also let in more noise (precision goes down).</p><p>This is not a math problem. This is a product problem.</p><div class="callout-block" data-callout="true"><p>If you are building a medical information feature, you want high recall. Missing a relevant safety warning is unacceptable. You tolerate some noise in exchange for completeness.</p></div><div class="callout-block" data-callout="true"><p>If you are building a customer support chatbot where context window tokens are expensive and latency matters, you want high precision. Every irrelevant document wastes tokens and slows response time.</p></div><div class="pullquote"><p>If you are building AI Overviews at Google, you need both to be high. A wrong source embarrasses you publicly. A missing source makes users lose trust. Your job is to find the K that maximises both, and to invest in a retrieval model that pushes the tradeoff curve outward.</p></div><p>This is a classic PM decision. It lives in your PRD. Not in a prompt engineering doc.</p><h2>Mean Reciprocal Rank (MRR): How Fast Does the User Find What They Need?</h2><p>Precision and Recall measure quantity. How many relevant documents did you retrieve versus how many exist?</p><p>MRR measures something different. It measures speed. How quickly does the first relevant document appear in your ranked results?</p><p>MRR stands for Mean Reciprocal Rank. Let us break it down from first principles.</p><p>First, Reciprocal Rank.</p><div class="pullquote"><p>For a single query, the Reciprocal Rank is 1 divided by the position of the first relevant document.</p></div><p>Go back to our query. &#8220;Why does my iPhone battery drain fast after iOS 26 update.&#8221;</p><p>The first relevant document is at position 1 (the Apple Support page).</p><p>Reciprocal Rank = 1/1 = 1.0</p><p>Perfect. The user&#8217;s first result was relevant. No scrolling needed.</p><p>But MRR is a system-level metric. It averages the Reciprocal Rank across multiple queries. Because one query hitting position 1 does not mean your system is good. You need to see the pattern.</p><p>Let us say you are evaluating AI Overviews across three queries.</p><p>Query 1: &#8220;Why does my iPhone battery drain fast after iOS 26 update.&#8221; Your system retrieves five documents. The first relevant one is at position 1. Reciprocal Rank = 1/1 = 1.0</p><p>Query 2: &#8220;How to enable dark mode on MacBook Air.&#8221; Your system retrieves five documents. The results are: a Windows dark mode guide at position 1, an unrelated MacBook keyboard shortcut article at position 2, and an Apple Support page on macOS dark mode settings at position 3. The first relevant document is at position 3. Reciprocal Rank = 1/3 = 0.33</p><p>Query 3: &#8220;Is Apple Vision Pro compatible with prescription lenses?&#8221; Your system retrieves five documents. Position 1 is a generic VR headset comparison. Position 2 is Apple&#8217;s official Vision Pro page, mentioning Zeiss optical inserts. Relevant. Reciprocal Rank = 1/2 = 0.50</p><p>Now you calculate MRR:</p><p>MRR = (1.0 + 0.33 + 0.50) / 3 = 1.83 / 3 = 0.61</p><p>Your MRR is 0.61.</p><p>What does this mean?</p><p>An MRR of 1.0 means every single query gets its first relevant document at position 1.</p><p>An MRR of 0.5 means, on average, the first relevant document is around position 2.</p><p>Your score of 0.61 says users are typically finding a relevant result between positions 1 and 2.</p><h3>Here is why MRR matters as a product metric.</h3><p>In a RAG system, the order of retrieved documents affects the generated answer. Most LLMs pay more attention to the documents that appear first in the context. </p><p>This is called positional bias. </p><p>If your first relevant document is buried at position 3 and positions 1 and 2 are noise, the model might give more weight to the noise.</p><p>In a search product, position matters even more directly. Users skim from top to bottom. If the first result is irrelevant, many users bounce. Every position of delay costs you engagement.</p><p>MRR captures this. It rewards systems that put relevant results first. Not just systems that retrieve relevant results somewhere in the list.</p><h2>Precision@K, Recall@K, and MRR Together: A Complete RAG Evaluation</h2><p>Each metric tells you something different about your retrieval system.</p><p>Precision@K tells you: Are you retrieving junk? Is your context window polluted?</p><p>Recall@K tells you: Are you missing important documents? Is your coverage complete?</p><p>MRR tells you: Are the good results ranked at the top? Is your order right?</p><h4>You need all three. Here is why.</h4><ol><li><p><em>A system can have high precision and low recall. </em><br>It retrieves only two documents, both relevant. Great purity. But it missed eight other relevant documents. The user gets a narrow, incomplete answer.</p></li><li><p><em>A system can have high recall and low precision. </em><br>It retrieves fifty documents and finds all the relevant ones. Great coverage. But it also pulled in forty irrelevant documents that confuse the model and waste tokens.</p></li><li><p><em>A system can have good precision and recall but bad MRR. </em><br>It retrieves five documents; four are relevant. But the one irrelevant document sits at position 1. The model anchors on it. The answer starts wrong.</p></li></ol><p>The PM&#8217;s job is to optimise all three simultaneously. That means choosing the right K, selecting the right embedding model, tuning the similarity threshold, and potentially reranking results after initial retrieval.</p><h2>Why Most RAG Teams Skip Retrieval Evaluation</h2><p>Here is what I see happen repeatedly.</p><p>A team builds a RAG pipeline. They use an off-the-shelf embedding model. They set K to 5 because someone saw it in a tutorial. They evaluate only the final generated answer. The answers look good in a demo. They ship.</p><p>Three months later, users complain. The AI answers are kind of right, but missing the point.</p><p>The team starts debugging the LLM. They try better prompts. They switch models. They add guardrails. Nothing helps consistently.</p><blockquote><p><em>The problem was never the LLM. The problem was the retrieval. Nobody measured Precision. Nobody measured Recall. Nobody checked MRR. Nobody even built a golden dataset of relevant documents for their queries.</em></p></blockquote><p>The retrieval layer determines the quality ceiling of your entire RAG system. If retrieval is broken, no amount of prompt engineering or model upgrades will fix the output consistently.</p><div class="pullquote"><p>Evaluate the retrieval first. Fix it first. Then evaluate the generation.</p></div><p>If you want to go deeper on Advanced Evals ( Cohen&#8217;s Kappa, Mathew&#8217;s Correlation Coefficient (MCC) ), Evals for Agentic Architecture, AI Product Sense, AI Strategy, AI Pricing, AI Prototyping, Advanced Prompting, ML Systems, etc., check out my AI PM course (40+ Videos and 25+ Case Studies ) <strong>[Certification Included]</strong></p><p>Check our <strong>highest-rated AI PM course (Including AI PM Interview Preparation )&#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a>, <a href="https://topmate.io/technomanagers">AI PM Resources</a></strong></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Will AI Create More Product Managers?]]></title><description><![CDATA[Everyone in tech is asking the same question]]></description><link>https://www.technomanagers.com/p/will-ai-create-more-product-managers</link><guid isPermaLink="false">https://www.technomanagers.com/p/will-ai-create-more-product-managers</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Wed, 08 Apr 2026 19:46:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/63d39198-acaa-41a7-bd3c-1ae1d7bd173b_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before reading this, you can also read the following articles on Technomanagers</p><ol><li><p><a href="https://www.technomanagers.com/p/nvidia-strategy-2026">NVIDIA AI Strategy</a></p></li><li><p><a href="https://www.technomanagers.com/p/memory-in-ai-part-1">Memory in AI</a></p></li><li><p><a href="https://www.technomanagers.com/p/spotifys-ai-strategy">Spotify&#8217;s AI Strategy</a></p></li></ol><p>Everyone in tech is asking the same question. <strong>Will AI replace product managers?</strong></p><p>They are making a 160-year-old mistake. By the end of this article, you will see why the answer is the opposite of what they expect.</p><p>But first. Coal.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>What Is the Jevons Paradox?</h2><p>In 1865, an economist named William Stanley Jevons noticed something strange. James Watt had made the steam engine more efficient. Everyone expected coal consumption to fall.</p><p>Coal consumption exploded.</p><p>When each unit of coal did more work, the cost of useful work dropped. When the cost dropped, people found more work to do. Factories that could never afford steam power suddenly could.</p><blockquote><p>Jevons called it a paradox. Make something cheaper per unit and you expect less total usage. That is almost never what happens.</p></blockquote><p>Cars got fuel-efficient. People drove more. </p><p>LEDs used less electricity. People installed ten times as many. </p><p>AWS made servers cheap. Companies spun up thousands of microservices where they once ran five.</p><p><strong>Efficiency does not eliminate demand. It creates it.</strong></p><p>This paradox is about to hit product management. But to see how we need to answer a question most PMs have never thought clearly about.</p><h2>What Does a Product Manager Actually Do?</h2><p>Not the job description version. The first principles version.</p><p>A PM does three things.</p><ol><li><p>Uncertainty reduction. Talking to users. Analysing data. Running experiments. All of it serves one purpose. Figuring out what to build and for whom.</p></li><li><p>Cross-functional coordination. Keeping engineering, design, data science, and marketing aligned on the same problem.</p></li><li><p>Tradeoff arbitration. Time versus scope. Revenue versus user experience. Short-term versus long-term. The PM makes the call and owns the outcome.</p></li></ol><p>Which of these three does AI make cheaper?</p><p>All three. But not equally.</p><p>And the unevenness is where the future of this profession gets decided.</p><h2>How AI Is Changing Product Management Work</h2><p>Uncertainty reduction just collapsed in cost. AI synthesises 50 user interview transcripts in two minutes. It scans competitors, generates hypotheses, and drafts experiment designs. Cost per unit down 80% in 18 months.</p><p>Coordination got somewhat cheaper. AI drafts PRDs in minutes. Summarises meetings. Translates technical requirements into business language. Maybe 40% cheaper.</p><blockquote><p>Tradeoff arbitration did not get cheaper at all.</p></blockquote><p>AI can present options and model scenarios. But the decision where you weigh strategy against user needs against tech debt against team capacity and say &#8220;we are doing this and not that&#8221; remains human.</p><p>Two of three PM functions got dramatically cheaper. One stayed the same. You already know what Jevons would predict.</p><p>The specifics are wilder than you think.</p><h2>Why AI Will Increase Demand for Product Managers?</h2><p>Most people stop at step one. Existing PMs get more productive. One PM covers what three did. Fewer PMs needed.</p><p>That is the McKinsey argument. The LinkedIn influencer argument. It is step one of four. And the only step that reduces headcount.</p><p><strong>Step two. Latent demand unlocks.</strong></p><p>Every large company has problems that never got product thinking because it was too expensive. Shopify has over 400 internal tools. Before 2024, fewer than 30 had a dedicated PM. When an AI-augmented PM covers three times the surface area, those neglected tools suddenly deserve attention. Shopify added 15 internal-product PM roles in early 2025.</p><p><strong>Step three. New AI product roles emerge.</strong></p><p>Every AI feature needs a PM. Every agent workflow needs someone to define boundaries, failure modes, and user experience. A lot of companies did not have a PM for AI-driven personalisation in 2020. Now there is an entire team. Multiply that across every e-commerce, fintech, and SaaS company.</p><p><strong>Step four. Non-tech industries hire PMs for the first time.</strong></p><p>AI makes building software cheap enough that hospitals, banks, and governments now build their own products. </p><p>Step one reduces PM headcount by 30%. Steps two through four increase it by 200 to 300%.</p><p>Jevons was right. Again.</p><p>This is also why learning to work with AI as a PM is no longer optional. The PMs getting hired in steps two through four are not traditional PMs. They understand how AI systems work and how to build products around them. </p><h2>Will AI Agents Replace Product Managers Completely?</h2><p>The serious counterargument. AI agents will handle tradeoff decisions, too. PMs become redundant.</p><p>Three problems with this.</p><ol><li><p>Processing is not judgment. Spotify&#8217;s AI knows podcast listeners churn%. That is a pattern. Whether to invest in podcasts versus audiobooks versus live audio depends on positioning against Apple, licensing economics, and creator dynamics. Data surfaces patterns. Judgment decides what to do with them.</p></li><li><p>Product decisions are not optimisation problems. Feature A serves power users but alienates new ones. Feature B grows the funnel but adds 15% support costs. Feature C needs a migration that slows everything for two quarters. No formula resolves this.</p></li><li><p>Who sets the goal in the first place? AI optimises toward objectives. Someone decides what those objectives are. Which metrics matter? Which users to prioritise? Which problems to solve? That is the core of PM work. It does not get automated. It gets more valuable.</p></li></ol><p>But here is the part that should worry you if you are a certain type of PM.</p><h2>The Future of Product Management: Three Tiers</h2><p>The market is splitting. The value distribution is brutal.</p><blockquote><p><strong>Tier one - The Compression Zone.</strong></p></blockquote><p>Execution-heavy work. PRDs, dashboards, tickets, standups. AI compresses this by 70 to 80%. If most of your week looks like this, your leverage is deflating every quarter. Not your job. Your leverage.</p><blockquote><p><strong>Tier two - The Leverage Layer.</strong></p></blockquote><p>Systems-level work. Experiment design, metrics frameworks, and feedback loops. AI augments this but does not replace it. PMs here use AI to multiply their output. Their value goes up with AI.</p><blockquote><p><strong>Tier three - The Taste Premium.</strong></p></blockquote><p>The PM who sees what others miss. Who kills the feature that looks great on a spreadsheet but feels wrong? Who sets the vision that aligns everything else.</p><p>The Taste Premium does not get cheaper. It gets scarcer. When supply drops, and demand explodes, the price goes up.</p><p>Spreadsheets arrived, and people predicted the end of accountants. </p><p>Canva arrived, and people predicted the end of designers. </p><p>Design headcount exploded. But the premium for world-class brand work went up.</p><p>Democratisation of basic work expands the market. It also concentrates value at the top.</p><h2>How Product Managers Can Prepare for the AI Era?</h2><p>One question decides your next five years.</p><p>Are you building skills that get cheaper when AI improves or skills that get more valuable?</p><p>If you spend your time on uncertainty reduction and coordination, AI is compressing your value. The market will pay less because AI does a version of it for near zero.</p><p>If you spend your time on tradeoff arbitration and taste, the market for you is about to expand. Every new AI-augmented PM and every new product surface needs someone at the top making the calls.</p><p>Moving from the Compression Zone to the Taste Premium does not happen by accident. It requires understanding how AI systems work, how to build products around them, and how to develop the judgment that AI cannot replicate.</p><p>Jevons figured this out in 1865. Coal did not disappear. It powered an industrial revolution.</p><p>Product management is not disappearing. It is becoming how every company builds.</p><p>The question is which tier you will be in when it happens.</p><p>We created a course ( 40+ Videos and 25+ Case Studies )  for PMs who want to build in the right direction. How to think about AI as a PM. How to design AI-first products. How to build the judgment layer that AI cannot replace, AI Deepdive, AI Evals and AI Interview Preparation</p><p>Check our <strong>highest-rated AI PM course (Including AI PM Interview Preparation )&#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><p>Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.technomanagers.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How Session-Based RNNs Predict Your Next Swipe in TikTok?]]></title><description><![CDATA[TikTok&#8217;s Rabbit Hole?]]></description><link>https://www.technomanagers.com/p/how-session-based-rnns-predict-your</link><guid isPermaLink="false">https://www.technomanagers.com/p/how-session-based-rnns-predict-your</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Fri, 03 Apr 2026 11:59:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0mx3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a comfortable lie in Product Management.</p><p>If you have enough historical data on a user, you know exactly what they want. You build your collaborative filtering models. You map out their lifetime preferences. You assume your algorithm is bulletproof.</p><p>Then you look at TikTok.</p><p>And you realise historical data is often a trap.</p><p>If your AI relies on what a user did yesterday, it fails to understand what they crave right now. In platforms where intent shifts by the minute, historical profiling is dead. You need to predict the immediate future based on the immediate past.</p><p>This is the first principle breakdown of how to build the Rabbit Hole effect. We will move from traditional recommendation engines to Session-Based Recommendations using Recurrent Neural Networks.</p><p>If you are preparing for AI PM interviews, this is one of the most important system design concepts you can learn. We teach this and many more real interview scenarios in our course.</p><h2>What is TikTok, Really?</h2><p>From a product architecture standpoint, TikTok is not a social network. It is an AI-driven bipartite matching engine.</p><p>It does not care who your friends are. It does not care what you followed last month. It cares about one thing. Matching an infinite supply of highly fragmented content with highly volatile human attention.</p><p>The moment you open the app, you are a blank slate. Not because TikTok does not have your data. But your data from yesterday is almost useless for predicting what you want in the next 30 seconds.</p><p>This is already a fundamentally different product philosophy from Instagram or YouTube. Those platforms are built on the social graph. TikTok is built on the interest graph. And the interest graph is rebuilt from scratch every single session.</p><h2>The Strategic Bet: Kill the Social Graph</h2><p>This is the part most PMs miss entirely.</p><p>TikTok did not just build a better recommendation engine. It made a strategic decision to remove the social graph as the primary distribution mechanism.</p><p>On Instagram, your content reaches your followers first. Then the algorithm decides whether to push it further. On YouTube, subscribers see your videos first. Then the algorithm takes over.</p><p>On TikTok, follower count is almost irrelevant for distribution. The algorithm decides who sees what, independent of social connections. A creator with 200 followers can get 10 million views on a single video if the algorithm detects high engagement in the first few hundred impressions.</p><p>Why does this matter strategically?</p><p>Because it means TikTok does not need network effects to retain users. Traditional social platforms are sticky because your friends are there. You cannot leave Instagram because your social circle is on Instagram. That is a network effect moat.</p><p>TikTok replaced network effects with algorithmic effects. You do not stay on TikTok because your friends are there. You stay because the algorithm understands you better than any other platform. The algorithm itself is the moat.</p><p>This is why TikTok&#8217;s valuation swings wildly depending on whether the recommendation algorithm is included in the deal. Reports from the US sale negotiations showed that TikTok, without its algorithm, could be worth as little as 40 billion dollars. TikTok with its algorithm is worth closer to 200 billion dollars.</p><p>The algorithm is not a feature. It is the entire business.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JhP0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JhP0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JhP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:420556,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.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_!JhP0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!JhP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8be1ab7-f765-40da-9ae5-c467afcd70f3_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The User Behaviour Problem</h2><p>On traditional platforms like Netflix or Amazon, a user&#8217;s session is slow. They search. They read reviews. They watch a two-hour movie. You have time to understand them.</p><p>On TikTok, user behaviour is chaotic.</p><p>Users do not explicitly tell you what they like. They signal it through micro-actions. A two-second linger. A rapid swipe. A share. Finishing a 15-second loop twice. These are all implicit signals.</p><p>A user might open the app wanting comedy. Three swipes later, they see a video about fixing a sink. Suddenly, their intent shifts entirely to DIY home repair.</p><p>And here is the hardest part. Even if a user is logged in, every time they open the app, their current emotional state is essentially a cold start. They might have had a bad day. They might be bored. They might be curious about something they have never explored before.</p><p>Historical profiles cannot capture this. Only the current session can.</p><h2>The Problem Statement</h2><p>How do we accurately predict and serve the next piece of content to a user when their current intent is unknown, rapidly changing, and largely divorced from their long-term preferences?</p><p>If the system relies on long-term data, it will continue to show comedy even after the user has mentally shifted to DIY. The algorithm will feel clunky. Out of touch.</p><p>This is not a theoretical problem. This directly hits the business.</p><h2>The Metrics Framework: Three Layers</h2><p>Before we solve it, we must measure the pain. And we need to measure it at three distinct layers. Most PMs only think about one layer. That is a mistake.</p><h4>Layer 1: Session Health Metrics (Does the user stay?)</h4><p>Time to First Abandonment tells you how many videos a user swipes through before killing the session. If this number is high, the algorithm is slow to adapt. Think of it as the &#8220;cold start tax.&#8221; How many bad recommendations does the user tolerate before leaving?</p><p>Session Watch Time is the total minutes spent in a continuous app session. TikTok&#8217;s average is 95 minutes per day across multiple sessions. If a single session averages less than 8 to 10 minutes, the recommendation engine is leaking users.</p><p>Swipe-to-Completion Ratio is the ratio of videos skipped within three seconds versus videos watched to 80%  or more completion. A bad ratio means the system is serving the wrong content. A healthy For You feed should have a completion ratio above 40%  within the first 10 videos of a session.</p><h4>Layer 2: Engagement Depth Metrics (Does the user care?)</h4><p>Not all engagement is equal. TikTok&#8217;s algorithm weights signals differently because some signals are more honest than others.</p><p>Watch Time Percentage is the strongest signal. A user who watches 95 per cent of a 60-second video has expressed genuine interest. They did not tap a button. They gave you their attention. Attention is the most expensive thing a human can give.</p><p>Replay Rate tracks how many users watch a video more than once. This is a signal that the content was not just good but worth revisiting. Replays are weighted heavily because they are almost impossible to fake.</p><p>Share Rate is even more telling. A user who shares a video is doing free distribution work for TikTok. They are putting their social capital on the line by recommending content to their friends. This is the highest intent signal after a purchase.</p><p>Save Rate means the user wants to come back to this content later. This is a forward-looking intent signal that most platforms underweight.</p><p>Comment Sentiment is trickier. A comment can be positive, negative, or neutral. Raw comment counts are misleading. TikTok&#8217;s system analyses whether comments indicate genuine engagement or hate-watching. Both drive views, but only positive engagement drives long-term session health.</p><h4>Layer 3: Business Impact Metrics (Does the algorithm make money?)</h4><p>Revenue Per Session connects recommendation quality directly to dollars. If the algorithm serves better content, users stay longer, see more ads, and revenue per session increases.</p><p>Ad Completion Rate measures whether users watch the ads placed between videos. If the surrounding content is relevant and engaging, users are in a positive attention state and more likely to watch an ad through. If the content is poor, users are already in &#8220;skip mode&#8221; and will reflexively skip the ad too.</p><p>DAU Retention at Day 1, Day 7, and Day 30 tells you whether the recommendation quality is good enough to bring users back. A single great session means nothing if the user does not return tomorrow. This is the ultimate test.</p><p>Most PMs stop at Layer 1. The best AI PMs connect all three layers into a single causal chain. Better recommendations lead to better session health, which leads to deeper engagement, which leads to higher ad revenue and retention.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NTxz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NTxz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NTxz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1355215,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.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_!NTxz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!NTxz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febf69425-1097-409c-b381-a23f7f9b3c33_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why Traditional Recommendation Methods Fail Here</h2><p>Most PMs are familiar with Matrix Factorisation, also called Collaborative Filtering.</p><p>It works like this. Users who liked video A also liked video B. So if you liked A, the system recommends B.</p><p>This approach has powered Amazon and Netflix for years. But it fails catastrophically on TikTok.</p><p>The reason is simple. It ignores the sequence of actions.</p><p>If you watch Video A, then Video B, then Video C, the order in which you watched them contains massive contextual clues about your shifting intent. Matrix Factorisation treats them as a disorganised bucket of likes. It does not know that C came after B. It does not know that the transition from A to B was a signal.</p><p>Sequence matters. And for sequence, you need a fundamentally different architecture.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!akyH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!akyH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!akyH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!akyH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!akyH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!akyH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1688185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.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_!akyH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!akyH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!akyH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!akyH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ad67b7-998c-4b8c-be20-473de914e5ac_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why RNN is the Way Forward</h2><p>This is where the paradigm shift happens.</p><p>Recurrent Neural Networks, specifically architectures like GRU4Rec (Gated Recurrent Units for Recommendations), are designed exclusively for sequential data.</p><p>Think of it this way. An RNN treats a user&#8217;s session like a sentence. If you read the words &#8220;I want to eat an...&#8221; your brain predicts &#8220;apple.&#8221; An RNN does the same thing with user actions. It looks at the strict chronological sequence of the last 10 swipes and uses that sequential memory to predict the 11th.</p><p>This is fundamentally different from collaborative filtering. The RNN does not ask &#8220;what did users like you enjoy?&#8221; It asks &#8220;given the exact order of what you just did, what should come next?&#8221;</p><h2>The PM Requirements Before Any Code is Written</h2><p>Before the ML engineers write a single line of code, the AI PM must define the constraints. If you fail here, the model will be a theoretical success and a production disaster.</p><p>There are three critical requirements.</p><ol><li><p>First is latency. The model must run online inference. When a user swipes, the RNN must update its state and fetch the next video in under 50 milliseconds. If inference takes 200ms, the user sees a loading spinner. On TikTok, a loading spinner is death.</p></li><li><p>Second is defining a session. Is a session defined by 30 minutes of inactivity? Or is it defined by a hard app close? This seems like a small decision but it fundamentally changes how the model trains. Usually, a 30-minute inactivity threshold works best.</p></li><li><p>Third is signal weighting. The PM must define what inputs matter and how much they matter. A like is an explicit signal. A video completion is an implicit signal. The model must ingest both. But watch-time percentage should be weighted highest because it is the most honest signal. People lie with likes. They do not pay attention.</p></li></ol><p>These are PM decisions, not engineering decisions. If you get them wrong, no amount of model tuning will save you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0mx3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0mx3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0mx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1502368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.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_!0mx3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!0mx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95409d99-6371-4001-80ea-6a571f5900b7_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How the RNN Actually Works Under the Hood</h2><p>Let us look inside the GRU, the engine of the RNN session model.</p><p>When a user interacts with a video, that video is converted into an embedding vector. Think of the embedding as a numerical fingerprint that captures everything about that video in a compact format.</p><p>The core magic of the GRU is its Hidden State. This hidden state acts as the memory of the current session up to the current point in time.</p><p>As the user swipes to a new video, the GRU updates its memory. It uses two internal mechanisms.</p><p>The Update Gate decides how much of the past session to remember. If the user&#8217;s recent behaviour is consistent, the gate stays mostly open, preserving the session memory.</p><p>The Reset Gate decides how much of the past to forget because the user&#8217;s intent has shifted. If the user suddenly jumped from comedy to cooking, the reset gate activates and says &#8220;Forget the comedy context, something new is happening.&#8221;</p><p>The formula for the memory update looks like this.</p><blockquote><p><em>New Memory = (1 - Update Gate) X Old Memory + Update Gate X Candidate Memory</em></p></blockquote><p>In plain language, the model blends the old session memory with the new signal based on how much the user&#8217;s intent has shifted. This blending happens after every single swipe. The memory is always fresh.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1R-c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1R-c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1R-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1437108,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.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_!1R-c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!1R-c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29464ab4-137a-4b20-b597-94a0795b53a9_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How the Model is Trained</h2><p>You cannot train this like a normal classification problem. The video catalogue has millions of items. You cannot ask the model to predict the exact video.</p><p>Instead, we use a technique called Bayesian Personalised Ranking or BPR.</p><p>The idea is simple but powerful. Instead of predicting the exact next video, you train the model to rank the actual next video the user watched higher than a randomly sampled video the user did not watch.</p><p>You take the video that the user actually watched next. You call it the positive item. You randomly sample a video the user did not watch. You call it the negative item. Then you train the model so that the score for the positive item is always higher than the score for the negative item.</p><p>Over millions of such comparisons, the model learns what sequences of behaviour lead to what kinds of content. It learns the grammar of user intent.</p><h2>Measuring Model Success: Offline and Online</h2><p>You need two completely different sets of metrics here. One for the engineers during training. One for the business during A/B testing.</p><p>For offline ML metrics, you track Recall at K. Out of the top 20 videos the RNN predicted, was the actual next video the user watched in that list? If yes, the model is doing its job.</p><p>You also track Mean Reciprocal Rank. It is not enough to be in the top 20. Was it ranked number 1 or number 19? MRR heavily penalises the model if the correct prediction is buried at the bottom of the list.</p><p>For online product metrics, you track Next-Click CTR. Does the user actually watch the immediately next video served by the RNN? You also track Session Length Extension. Does the RNN variant increase the average session length compared to the control group?</p><p>If Recall at 20 is high but Session Length is flat, your model is technically accurate but not creating the Rabbit Hole effect. Both metrics must move together. This is where AI PMs earn their salary. Bridging the gap between what the ML team optimises and what the business actually needs.</p><h2>The Three Pitfalls That Will Destroy Your Product</h2><p>If you implement this blindly, you will destroy your user experience. There are three pitfalls every AI PM must guard against.</p><ol><li><p>The first is the Echo Chamber problem. RNNs are almost too good at detecting immediate intent. If a user pauses on a sad video for two seconds too long, the RNN might plunge them into a depressive rabbit hole, serving nothing but sad content for the rest of the session. The solution is to inject random exploration videos using multi-armed bandits. You intentionally break the sequence to test for new intents. This is a PM decision, not a model decision. TikTok&#8217;s own algorithm does this. It deliberately injects novelty and diversity into the feed to prevent monotony and to protect users from harmful content spirals.</p></li><li><p>The second is Catastrophic Forgetting. Standard RNNs heavily weight the most recent clicks and forget the beginning of the session. If a session is 100 swipes long, the intent from swipe 10 might still be relevant. But the GRU might have forgotten it entirely. This is why some teams use attention mechanisms on top of GRUs, allowing the model to look back at any point in the session, not just the most recent swipes.</p></li><li><p>The third is Cold Start on New Items. The RNN is great at handling new users because it builds understanding from the very first swipe. But it struggles with brand-new videos that have no embeddings yet. You still need content-based filtering to push new creator videos into the system until they accumulate enough interaction data. TikTok solves this through a tiered distribution system. Every new video is first shown to a small, highly targeted test group. If engagement is strong within that group, the video gets pushed to a larger audience. This is how a creator with 200 followers can wake up with 10 million views.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zOiJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zOiJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zOiJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:550890,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.technomanagers.com/i/193059535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.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_!zOiJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!zOiJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d877533-a619-4307-9b48-b9c753bf52e6_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI Product Management is not about throwing LLMs at every problem. It is about understanding the structural reality of your user data and connecting it to the business's strategic goals.</p><p>If this article changed how you think about recommendation systems and product strategy, you will find much more depth in our AI PM course. We cover system design for recommendations, RAG architectures, AI metrics, agentic systems, and real interview questions from top companies.</p><p>Check our <strong>highest-rated AI PM course (Including AI PM Interview Preparation )&#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong></p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p><p>Technomanagers is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p>]]></content:encoded></item><item><title><![CDATA[50 AI PM Job Descriptions. 3 Skills They All Want.]]></title><description><![CDATA[Crack AI PM Roles]]></description><link>https://www.technomanagers.com/p/i-reviewed-50-ai-pm-job-descriptions</link><guid isPermaLink="false">https://www.technomanagers.com/p/i-reviewed-50-ai-pm-job-descriptions</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Thu, 02 Apr 2026 16:28:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/06b99347-61dd-420d-aafe-d5b991e98a44_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a pattern in how PMs prepare for AI product roles.</p><p>They read about LLMs. They learn to write better prompts.  </p><p>They update their resume with words like &#8220;generative AI&#8221; and &#8220;responsible AI.&#8221; They think they are ready.</p><p>The job descriptions say otherwise.</p><p>I spent three weeks reading 50 AI PM job postings. Google, Meta, OpenAI, Eightfold, and a few high-growth AI-native startups.</p><p>I was looking for one thing: what skills are companies actually asking for versus what PMs are actually building.</p><p>The gap is larger than I expected.</p><h2><strong>What Everyone Is Preparing For</strong></h2><p>The standard AI PM preparation list looks like this.</p><p>&#8594; Learn how LLMs work at a high level. Understand transformers.<br>&#8594; Read about RAG and fine-tuning.<br>&#8594; Practice writing product strategy documents that mention AI.<br>&#8594; Build a portfolio project, preferably a chatbot.</p><p>This is not wrong. These things appear in JDs.</p><p>But they appear the same way &#8220;strong communication skills&#8221; appear in a generic PM role. As table stakes.</p><p>As filters that remove clearly unqualified candidates, not signals that separate good candidates from great ones.</p><p>The companies I looked at are past the point where &#8220;I understand what an LLM is&#8221; is a differentiator. They are hiring for people who have operated at the intersection of AI and product. Operated, not studied.</p><p>Three skills kept appearing across JDs in a way that most candidates are not building.</p><h2><strong>Skill 1: Evals</strong></h2><p>This is the biggest gap I found.</p><p>The OpenAI CPO, at Lenny&#8217;s Podcast conference in 2025, said something that should have become required reading for every PM preparing for an AI role. He said, &#8220;The most important thing a product manager can learn to do is write evals.&#8221;</p><p>Most PMs I speak to do not know what an eval is. They think it means user testing. It does not.</p><p>An eval is a structured test suite for an AI system. You define a set of inputs, the expected output or behaviour, and a scoring method. You run the system against those inputs. You measure how often it performs correctly. When the model changes, when you change the prompt, when you change the data, you run the evals again. You see what broke.</p><p>In traditional software, a bug is a bug. The system does the wrong thing, and you fix it.</p><p>In LLM-based products, the system does the wrong thing in some cases, the right thing in others, and something ambiguous in a third set. Without evals, you have no way to know which category a new change falls into. You are shipping blind.</p><blockquote><p><em>A sample question can be something like this:</em></p></blockquote><ol><li><p>How would you measure the reliability of Rufus, the e-commerce AI Assistant?</p></li><li><p>How would you measure the success of MultiAgentic Workflow?</p></li></ol><p>Every time you change anything about the system, you run the evals again. If the score drops, you do not ship.</p><blockquote><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">This might help you to prepare in detail about Evals</a></p></blockquote><h2><strong>Skill 2: Model Selection Logic</strong></h2><p>The second skill is the ability to choose between AI approaches, not just use them.</p><p>A year ago, &#8220;AI feature&#8221; meant &#8220;integrate GPT-4 via API and ship.&#8221; That is no longer a differentiated product decision.</p><p>Today, hiring managers want PMs who can reason through the following question: for this specific problem, what is the right approach and why?</p><p>The options a PM now needs to reason through include prompt engineering alone, RAG with a vector database, fine-tuning a smaller model, training a purpose-built model from scratch, or using a rule-based system instead of AI entirely. Each option has a different cost structure, latency profile, accuracy ceiling, maintenance burden, and failure mode.</p><blockquote><p><em>A PM who cannot reason through this tradeoff is not a PM for an AI product. They are a PM who happens to have AI on their roadmap.</em></p></blockquote><p>Let me make this concrete. Say you are building a feature that answers customer queries about an e-commerce return policy. Your choices are:</p><p>Prompt engineering: fast to build, but the model will hallucinate policies that do not exist in your documentation. You have no grounding.</p><p>RAG: You retrieve the relevant policy sections and inject them into the prompt context. The model can now answer accurately against your actual policy. Build time is higher, but accuracy is significantly better.</p><p>Fine-tuning: you train a smaller model specifically on your policy data and support conversations. Latency is lower, cost per query is lower, but you now have a maintenance responsibility. When your policy changes, you need to retrain.</p><p>Rule-based: for simple, high-volume queries like &#8220;what is your return window,&#8221; a rule-based system has zero hallucination risk and near-zero latency. AI adds no value here.</p><blockquote><p><a href="https://topmate.io/technomanagers/new/fK374qFpvL">Real AI PM Interview Questions (with Detailed Solutions)</a></p></blockquote><h2><strong>Skill 3: Failure Mode Thinking</strong></h2><p>Traditional products fail in predictable ways. If a button does not work, it does not work. You find it in QA. You fix it. It works.</p><p>AI products fail in ways that are probabilistic, context-dependent, and sometimes invisible until they are very visible.</p><p>The failure modes that appear repeatedly in AI PM JDs are: hallucination (the model generates confident false information), latency degradation under load, context window limits causing incomplete reasoning, prompt injection attacks in user-facing LLM features, and confidence calibration problems where the model is wrong but sounds right.</p><p>PMs who can map failure modes before a feature ships are rare.</p><p>Most teams discover failure modes after launch because they were not built into the product definition.</p><p>Hiring managers know this and look for candidates who proactively think about what can go wrong.</p><p>In an interview, this shows up as questions like: &#8220;How would you define done for an AI feature?&#8221; or &#8220;Walk me through how you would monitor this after launch.&#8221;</p><p>A PM who only talks about launch metrics and A/B tests is signalling that they have not thought about probabilistic failure.</p><p>A PM who talks about confidence thresholds, fallback logic, latency monitoring, and a human-in-the-loop escalation path for low-confidence outputs is signalling operational maturity.</p><p><strong>What This Means for Your Preparation</strong></p><p>The JDs are not asking for people who know about AI. There are thousands of those.</p><p>They are asking for people who have operated AI products. Who have thought through eval design, made model selection decisions, and mapped failure modes before launch. These are skills you build by doing, not by reading.</p><blockquote><p><em>If you are preparing for an AI PM role right now, I would stop spending time on LLM theory and start spending time on the three skills above.</em></p></blockquote><p>That work is what separates candidates who know AI from candidates who have worked with AI. The JDs are very clear about which one they want.</p><p><em>AI Product Management is the future; you can keep ignoring it, but this will become the baseline in 8 to 14 Months.</em></p><p>You should take action to kill the anxiety &#8212; Start today only. Learn about AI Product Management, starting from the basics to Advanced with the Flagship AI PM Course.</p><blockquote><p>You can also check out our <strong>highest-rated AI PM course ( Including AI PM Interview Preparation )&#183; 4.9/5 &#183; 600+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong></p></blockquote><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. <strong><a href="https://topmate.io/technomanagers">Weekly Live Webinars/MasterClass ( Here )</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA[Spec-Driven Development for Product Managers]]></title><description><![CDATA[Explained with Real Example of Google Maps]]></description><link>https://www.technomanagers.com/p/spec-driven-development-for-product</link><guid isPermaLink="false">https://www.technomanagers.com/p/spec-driven-development-for-product</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Sun, 29 Mar 2026 18:06:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9485ad9d-cef7-4958-8d0b-de91660a5335_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You are a Senior Product Manager at Google Maps. </p><p>Your VP walks into your Monday standup and says three words: &#8220;Build Ask Maps.&#8221;</p><p>What is &#8220;Ask Maps&#8221;: Users can type or speak a natural language query directly into Maps and get intelligent, context-aware answers. &#8220;Find me a rooftop restaurant near Koramangala that&#8217;s open after 10 PM and has good reviews for cocktails.&#8221; No filters. No manual search. Just ask.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uq6v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uq6v!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 424w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 848w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 1272w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uq6v!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif" width="1000" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ask Maps in action&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ask Maps in action" title="Ask Maps in action" srcset="https://substackcdn.com/image/fetch/$s_!Uq6v!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 424w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 848w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 1272w, https://substackcdn.com/image/fetch/$s_!Uq6v!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd828c6fd-2d12-417e-841f-fb8879b8d9df_1000x562.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everyone in the room is excited. The engineers want to start prototyping immediately. Someone has already opened Cursor.</p><blockquote><p>And this is exactly where most AI-era product development goes wrong.</p></blockquote><p>Because what happens next is what the industry has started calling &#8220;vibe coding.&#8221; Someone fires a prompt into an AI coding tool. </p><p>The tool generates a working prototype in 20 minutes. Everyone is impressed. The demo looks great. </p><p><em>Three sprints later, the codebase is a mess, the AI feature behaves inconsistently across edge cases, and no one can explain why it sometimes returns results in Tamil Nadu when the user is searching in Telangana.</em></p><p>Spec-driven development is the structured alternative. </p><p>And in this article, I want to walk you through exactly what it looks like: not in abstract terms, but through the Ask Maps feature, end to end.</p><p>Before we go deep into Spec Driven Development, you can find out our articles on the following</p><ol><li><p><a href="https://www.technomanagers.com/p/uber-autonomous-vehicle-strategy">Uber&#8217;s AI Strategy</a></p></li><li><p><a href="https://www.technomanagers.com/p/memory-in-ai-part-1">Memory in AI</a></p></li><li><p><a href="https://www.technomanagers.com/p/spotifys-ai-strategy">Spotify&#8217;s AI Strategy</a></p></li></ol><h2>What Spec-Driven Development Actually Is?</h2><p>Spec-driven development (SDD) is a methodology where you write a formal, machine-readable specification before any code is generated. </p><p>This specification defines the behaviour, constraints, success criteria, and edge cases for a feature. The AI coding agent then generates code that must satisfy the spec. If the generated code does not meet the spec, the build fails automatically.</p><p>This is different from how most teams use AI tools today.</p><p>In the traditional AI-assisted workflow, a developer writes a prompt, the AI generates code, the developer reviews it, finds gaps, re-prompts, and this cycle repeats until something &#8220;feels right.&#8221; </p><p>There is no contract. There is no explicit definition of what the feature must and must not do. The AI guesses. The developer hopes. Technical debt accumulates silently.</p><p>SDD flips this. You start with the contract. You define what Ask Maps must do before you decide how it should be built. The code is a downstream artefact of the spec, not a starting point.</p><p>Three levels of SDD exist: spec-first (the spec guides the AI workflow), spec-anchored (the spec is continuously updated as the feature evolves), and spec-as-source (only the spec is ever edited by humans, never the code directly). For most product teams, spec-first or spec-anchored is the practical operating mode.</p><p>Now, let us apply this to Ask Maps, step by step.</p><h2>Phase 1: Strategic Alignment Before Writing Anything</h2><p>Most PMs think the spec is the first output of the discovery process. It is not. The first output is alignment with what you are actually building.</p><p>Before anyone writes a spec for Ask Maps, the product team needs to resolve a set of foundational questions. These are not design questions. These are strategy questions.</p><h4><strong>What is the primary job to be done?</strong></h4><p>Ask Maps could solve multiple problems. It could be a discovery tool (help users find places they did not know existed). It could be a planning tool (help users build a full day itinerary). It could be a real-time assistant (give live, context-aware answers based on current traffic, weather, and availability). </p><p>These are three different features. They share a surface but diverge completely in their backend requirements, data dependencies, and success metrics.</p><p>At Google Maps, this decision has massive downstream consequences. A discovery-focused Ask Maps integrates deeply with Google&#8217;s restaurant and business index. A planning tool needs multi-stop optimisation logic. A real-time assistant needs live data pipelines for weather, traffic, and business hours APIs.</p><p>The team needs to pick one primary job. Everything else is scope creep.</p><h4><strong>What is the explicit scope boundary?</strong></h4><p>What will Ask Maps not do? This is equally important as what it will do. Will it handle transactional requests (&#8221;book a table at this restaurant&#8221;)? Or is it purely informational? Will it work offline? Will it support voice input at launch? What languages will it support on day one?</p><p>Scope boundaries are not limitations. They are the spec&#8217;s load-bearing walls.</p><h4><strong>What are the success metrics?</strong></h4><p>Before a single line of spec is written, the team defines what success looks like. For Ask Maps, this might be: query satisfaction rate above 80% (user rates the answer as helpful), mean response latency under 2 seconds, and a 15% increase in session length compared to the current Maps search flow.</p><p>These numbers are not arbitrary. They will directly inform the non-functional requirements in the spec later.</p><h4><strong>Practical SDD tool behaviour at this stage:</strong></h4><p>In tools like Agent OS, this phase is handled by a &#8220;spec researcher&#8221; sub-agent. It ingests your product brief and roadmap, then surfaces clarifying questions with suggested default answers. </p><p>The PM does not write long paragraphs in response. They respond with &#8220;yes&#8221; or minor corrections. The agent synthesises the answers into a structured requirements brief.</p><p>For Ask Maps, the output of this phase is something like:</p><ul><li><p>Primary job: Place discovery through natural language</p></li><li><p>Scope: Informational only, no transactions, English-first</p></li><li><p>Input modes: Text and voice</p></li><li><p>Success metric: Query satisfaction above 80%, P99 latency under 2 seconds</p></li><li><p>Out of scope for v1: Itinerary building, multi-stop optimisation, transactional bookings</p></li></ul><p>This is not the spec. This is the raw material for the spec.</p><h2>Phase 2: Writing the Ask Maps Specification</h2><p>Now the spec is written. And this is where SDD requires discipline, because the instinct is to write a technical spec. SDD requires a behavioural spec.</p><p>A behavioural spec defines what the system must do and how it must behave from the user&#8217;s perspective and from a system contract perspective. It does not prescribe the implementation.</p><p>Here is what the Ask Maps spec looks like:</p><h4><strong>Feature: Ask Maps</strong> <strong>Version:</strong> 1.0 <strong>Owner:</strong> [PM Name] <strong>Last updated:</strong> [Date]</h4><p><strong>Goal:</strong> Enable Google Maps users to discover places and get location-aware answers through natural language queries, without using traditional filter-based search.</p><h4><strong>User Stories:</strong></h4><ol><li><p>As a Maps user, I want to ask a natural language question about places near me, so that I can discover options I would not find through manual filters.</p></li><li><p>As a Maps user, I want to ask follow-up questions in the same session without re-entering my original context, so that I can refine my search conversationally.</p></li><li><p>As a Maps user, I want Ask Maps to consider my current location, time of day, and day of week automatically, so that I get contextually relevant answers without explicitly stating these.</p></li></ol><h4><strong>Functional Requirements:</strong></h4><ol><li><p>FR-01: The system must accept natural language queries of up to 500 characters via text input. </p></li><li><p>FR-02: The system must accept voice input and convert it to text before processing. </p></li><li><p>FR-03: The system must use the user&#8217;s current GPS-confirmed location as the default geographic context for all queries. </p></li><li><p>FR-04: The system must return a minimum of 3 and a maximum of 10 place results per query. </p></li><li><p>FR-05: Each result must include: place name, distance from user, rating, a one-line AI-generated reason for the recommendation, and a direct CTA to navigate.</p></li><li><p>FR-06: The system must support follow-up queries within the same session, preserving the context of the initial query. </p></li><li><p>FR-07: If the system cannot find relevant results with confidence above 0.75, it must surface a &#8220;limited results&#8221; state rather than hallucinating low-quality matches.</p></li></ol><h4><strong>Non-Functional Requirements:</strong></h4><ol><li><p>NFR-01: P50 response latency must be under 1 second. P99 must be under 2 seconds. </p></li><li><p>NFR-02: The system must handle a minimum of 10,000 concurrent queries. </p></li><li><p>NFR-03: The AI recommendation layer must not surface results from businesses that have a Google rating below 3.5 unless explicitly asked by the user. </p></li><li><p>NFR-04: The system must not store the user&#8217;s query text beyond the active session without explicit consent.</p></li></ol><h4><strong>Edge Cases and Failure Modes:</strong></h4><ol><li><p>EC-01: User is in a location with no GPS signal. The system must prompt the user to manually enter a location rather than defaulting to a stale cached location. </p></li><li><p>EC-02: User queries a category with no matches within a 10km radius. The system must expand the radius to 25km and inform the user of this expansion. </p></li><li><p>EC-03: Query contains a language other than English. V1 must return a graceful &#8220;English only&#8221; message. V2 will address multi-language support. </p></li><li><p>EC-04: Query is ambiguous (for example, &#8220;good food near me&#8221;). The system must ask one clarifying question before returning results, not make an assumption.</p></li></ol><h4><strong>Out of Scope:</strong></h4><ul><li><p>Transactional bookings (restaurant reservations, ride bookings)</p></li><li><p>Multi-stop itinerary planning</p></li><li><p>Queries not related to physical places (for example, &#8220;what is the capital of France&#8221;)</p></li></ul><div><hr></div><p>Notice what this spec does not contain: no database schema, no API structure, no infrastructure decisions. Those are implementation choices. The spec is silent on them intentionally. The AI coding agent gets to make those decisions within the constraints of the spec. The spec defines what must be true. The implementation decides how.</p><h2>Phase 3: The Design Document</h2><p>The spec is human-readable. The design document is agent-readable.</p><p>Once the spec is approved (and this approval step is non-negotiable in SDD, the PM and engineering lead both sign off before any code is generated), the AI agent translates the spec into a structured design document.</p><p>This document contains:</p><h4><strong>API Contract (from FR-01, FR-02, FR-04):</strong></h4><p>The Ask Maps endpoint accepts POST requests.</p><p>Input schema:</p><ul><li><p>query (string, required, max 500 characters): The natural language query </p></li><li><p>location (object, required): Contains lat (float) and lng (float) from GPS </p></li><li><p>session_id (string, optional): For follow-up query context preservation (FR-06) </p></li><li><p>input_mode (enum: &#8220;text&#8221; | &#8220;voice&#8221;, required)</p></li></ul><p>Output schema:</p><ul><li><p>results (array, min 3, max 10): Each object contains place_id, name, distance_km, rating, ai_reason, navigate_url </p></li><li><p>state (enum: &#8220;success&#8221; | &#8220;limited_results&#8221; | &#8220;clarification_needed&#8221; | &#8220;error&#8221;)</p></li><li><p>clarification_question (string, nullable): Populated only when state is &#8220;clarification_needed&#8221;</p></li></ul><h4><strong>Confidence Gate (from FR-07):</strong></h4><p>The AI recommendation layer must include a confidence score per result. Results with confidence below 0.75 are excluded from the final output array. If this exclusion brings the total results below 3, the system sets the state to &#8220;limited_results&#8221; and returns whatever results passed the threshold.</p><h4><strong>Radius Expansion Logic (from EC-02):</strong></h4><p>Initial query radius: 10km. If the results count is below 3 after confidence filtering, expand to 25km. Append a <code>radius_expanded: true</code> boolean to the response object. The UI layer uses this flag to surface the &#8220;We expanded your search area&#8221; message.</p><h4><strong>Security Constraints (from NFR-04):</strong></h4><p>Query text must not be written to any persistent store. Session data lives in ephemeral cache only, with a TTL of 30 minutes.</p><p>This design document becomes the to-do list for the AI coding agent. Each requirement maps to a specific implementation task. Nothing is left to interpretation.</p><h2>Phase 4: Breaking It Into Testable Tasks</h2><p>In SDD, the design document is decomposed into discrete, independently testable implementation units. This is where the workflow starts looking like traditional engineering project management, except that AI agents are executing the tasks, not humans writing the code from scratch.</p><p>For Ask Maps, the task breakdown looks like this:</p><h4><strong>Task Group A: Core API Layer</strong></h4><ul><li><p>A1: Implement the POST /ask-maps endpoint with input validation (FR-01, FR-02)</p></li><li><p>A2: Implement GPS location ingestion and validation. Fail gracefully if coordinates are malformed (EC-01)</p></li><li><p>A3: Implement session management with 30-minute ephemeral TTL (NFR-04, FR-06)</p></li></ul><h4><strong>Task Group B: AI Recommendation Engine</strong></h4><ul><li><p>B1: Integrate with Google Places API for candidate place retrieval</p></li><li><p>B2: Implement confidence scoring model with 0.75 threshold gate (FR-07)</p></li><li><p>B3: Implement radius expansion logic: 10km base, expand to 25km with flag (EC-02)</p></li><li><p>B4: Generate AI-written one-line reasons per result using the LLM layer</p></li></ul><h4><strong>Task Group C: Edge Case Handling</strong></h4><ul><li><p>C1: Implement ambiguity detection. If query is flagged as ambiguous, return clarification question instead of results (EC-04)</p></li><li><p>C2: Implement rating filter: exclude results with Google rating below 3.5 from candidate pool (NFR-03)</p></li><li><p>C3: Implement &#8220;English only&#8221; language detection for V1 (EC-03)</p></li></ul><h4><strong>Task Group D: Non-Functional Requirements</strong></h4><ul><li><p>D1: Load test to confirm P99 latency under 2 seconds at 10,000 concurrent queries (NFR-01, NFR-02)</p></li><li><p>D2: Security audit on query storage to confirm no persistent writes (NFR-04)</p></li></ul><p>Each task has a direct reference back to a specific requirement in the spec. This is the core discipline of SDD. You can always trace any line of code back to a business requirement. If you cannot, that code should not exist.</p><h2>Phase 5: Execution Under Constraints</h2><p>The AI coding agent now generates code. But this is not vibe coding with a spec document sitting nearby. The spec is an active constraint.</p><p>In practice, this means:</p><p>The CI/CD pipeline has automated spec validation checks embedded. </p><p>If the AI agent generates code for the Ask Maps endpoint that does not include the confidence threshold gate, the build fails. Not a code review comment. A hard build failure.</p><p>If the agent generates a response schema that returns results without the ai_reason field, the build fails. Because FR-05 explicitly mandates it.</p><p>If the agent writes query text to a database table (even a logging table), the build fails. Because NFR-04 says it cannot.</p><p>This is what &#8220;executable specification&#8221; means. The spec is not a document someone reads. It is a contract that the system enforces.</p><p>One critical challenge at this phase is what practitioners call context fragmentation. Most AI coding tools understand a single repository. But Google Maps is not a single repository. </p><p>The Ask Maps feature will touch the core Maps search service, the Places API integration layer, the user session service, the UI component library, and the AI/ML serving infrastructure. These live in different codebases, owned by different teams.</p><p>If the AI agent only sees one of these repositories, it will generate code that is locally correct but architecturally inconsistent. It will reinvent session management that already exists in the session service. It will create a new confidence scoring library instead of using the existing ML inference wrapper.</p><blockquote><p>This is why enterprise SDD needs a context engine that maps semantic dependencies across repositories. </p></blockquote><p>For a team without access to enterprise tooling, the practical workaround is explicit cross-repo documentation injected into the AI agent&#8217;s context at task time.</p><h2>Phase 6: Debugging the Spec, Not Just the Code</h2><p>This is the phase most PMs never hear about, and it is arguably the most important.</p><p>In SDD, when the AI generates code that is wrong, you do not fix the code directly. You fix the specification.</p><p>Here is why: AI code generation is non-deterministic. If you fix a bug in the generated code without updating the spec, the next time you regenerate (for a refactor, a new feature, or a regression fix), the AI will reproduce the exact same bug. It is following the spec. The spec said nothing about this case. So the AI guessed.</p><p>Concretely: Imagine the Ask Maps agent generates code that sometimes returns results from a different city when the user is near a city boundary. The radius expansion logic triggered, expanded to 25km, and pulled in results from an adjacent city without informing the user.</p><p>In vibe coding, a developer patches this edge case in the code and moves on.</p><p>In SDD, the PM goes back to the spec, adds a new edge case:</p><p>EC-05: When radius expansion crosses an administrative city boundary, the system must segment results by city and surface a separator in the UI indicating &#8220;Results from [adjacent city]&#8221;.</p><p>The spec is updated. The design document is updated. The CI/CD validation check is updated. The AI agent regenerates the affected module. The fix propagates correctly and permanently.</p><p>This is the compounding benefit of SDD. Every bug you find and fix in the spec makes the entire feature more robust, not just the one line of code that was wrong.</p><h2>Why This Matters for Product Managers Specifically</h2><p>SDD is not just an engineering methodology. It is a PM leverage tool.</p><p>In the traditional development model, the PM writes a PRD, hands it to engineering, and then spends the next three sprints in spec review meetings clarifying requirements that were ambiguous in the document. The PM is a translator, repeatedly.</p><p>In SDD, the spec is the single source of truth that both the PM and the AI agent operate from. When engineering asks, &#8220;Why does the endpoint behave this way?&#8221; the answer is always FR-07 or NFR-03. Not &#8220;I think I mentioned it in the PRD somewhere.&#8221; The spec is precise. The behaviour is traceable.</p><p>For PMs building AI-powered features specifically, this precision is not optional. Research shows AI LLMs generate vulnerable code at rates between 9.8% and 42.1%, and a significant fraction of those vulnerabilities are rated Critical severity. </p><blockquote><p>A PM who cannot articulate the exact constraints their AI feature must operate within is not doing product management. They are doing product wishful thinking.</p></blockquote><p>SDD forces PMs to be specific. That specificity is the PM&#8217;s highest-leverage contribution in an AI-first development environment.</p><h2>The Learning Curve Is Real, But It Pays Off</h2><p>When I first started working through SDD workflows, the upfront planning phase felt slow. Writing behavioural requirements instead of just describing the feature in prose felt overly formal. Defining edge cases before writing a single line of code felt premature.</p><p>Three sprints in, the compounding became obvious. The Ask Maps spec, once written, became the source for the engineering scoping document, the QA test plan, the security review checklist, and the launch readiness criteria. The spec was written once and used six times. Every clarifying question in sprint planning was answerable by pointing to a requirement ID.</p><p>The slow part upfront makes everything downstream faster.</p><h2>Where to Go From Here</h2><p>AI Product Management is the future; you can keep ignoring but this will become the baseline in 8 to 14 Months.</p><p>You should take action to kill the anxiety - Start today only, Learn about AI Product Management, start from basics to Advance with the Flagship AI PM Course.</p><p>You can also check out our <strong>Highest rated AI PM course &#183; 4.9/5 &#183; 500+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong> </p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. For more, check out my <a href="https://topmate.io/technomanagers/1861184">AI Product Management Course</a>, <a href="https://topmate.io/technomanagers/1470531">PM Interview Mastery Course</a>, <a href="https://topmate.io/technomanagers/1472775">Cracking Strategy</a>, and <a href="https://topmate.io/technomanagers">other Resources</a></em></p>]]></content:encoded></item><item><title><![CDATA[Uber Autonomous Vehicle Strategy ]]></title><description><![CDATA[How Uber uses a hybrid network to solve robotaxi unit economics and scale AI mobility]]></description><link>https://www.technomanagers.com/p/uber-autonomous-vehicle-strategy</link><guid isPermaLink="false">https://www.technomanagers.com/p/uber-autonomous-vehicle-strategy</guid><dc:creator><![CDATA[Shailesh Sharma]]></dc:creator><pubDate>Fri, 27 Mar 2026 19:41:13 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f5c6e4c5-24e4-4fb7-a1f0-785174e15062_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Before reading about Uber,  you can read the following articles on Technomanagers</p><ol><li><p><a href="https://www.technomanagers.com/p/nvidia-strategy-2026">NVIDIA AI Strategy</a></p></li><li><p><a href="https://www.technomanagers.com/p/memory-in-ai-part-1">Memory in AI</a></p></li><li><p><a href="https://www.technomanagers.com/p/spotifys-ai-strategy">Spotify&#8217;s AI Strategy</a></p></li></ol><p>Many people think Uber is competing with Waymo and Tesla to build the best self-driving car. </p><p>This is a flawed way to look at the business. </p><p>Uber is not building a car company. </p><p>Uber is building the software layer for physical mobility. </p><p>Let us break down the Uber autonomous vehicle strategy using first principles. </p><h3>The Utilisation Problem</h3><h4>Why does Uber not just buy a massive fleet of self-driving cars and keep all the profit?</h4><p>We need to look at the fundamental unit economics of a transportation marketplace.</p><p>Ride hailing demand fluctuates drastically. A Saturday night has massive demand, while a Tuesday morning has very low demand. </p><p>If a standalone robotaxi company builds enough cars to serve the Saturday night peak, then most of their expensive cars will sit idle on Tuesday morning. </p><p>Idle hardware destroys profitability because you still pay for depreciation and maintenance. </p><p>If they only build enough cars for Tuesday morning, then wait times on Saturday night will be too long, and users will leave the platform.</p><blockquote><p><strong>Uber solves this problem through a hybrid network. </strong></p></blockquote><p>They use self-driving cars to serve the base load. </p><p>The base load is the predictable, continuous demand that happens every hour of the day. Uber then uses human drivers to handle the burst capacity. </p><p>Burst capacity is the sudden spike in demand during bad weather or weekends. By pushing the volatile demand to human drivers, Uber ensures that its partner autonomous vehicles stay constantly utilised. </p><p>High utilisation directly leads to profitability.</p><h3>The Big City Myth</h3><h4>Will autonomous vehicles just take over the major cities?</h4><p>Software scales instantly, but physical infrastructure scales very slowly. </p><p>People assume that cities like San Francisco and Los Angeles generate all the rideshare money. </p><p>The latest Uber financial data shows something completely different. Trips in the top twenty US cities represent only twenty five percent of their overall profits.</p><p>The vast majority of Uber profits come from smaller cities and suburbs. It will take a very long time for autonomous vehicle companies to map every rural road and complex suburban driveway. </p><p>Uber already has human drivers covering these areas. Uber owns the demand in these highly profitable long tail markets while the hardware companies take on the massive capital expense of mapping physical geography.</p><h3>The Aggregator Advantage</h3><h4>If cars can drive themselves, why do hardware companies need the Uber platform at all?</h4><p>When a technology becomes a commodity, the company that aggregates customer demand captures the most value. </p><p>If Waymo dominates one city and another startup dominates a different city, the end consumer will have a terrible experience. </p><p>Users do not want to download five different apps and compare wait times.</p><p>Uber is positioning itself as the universal marketplace for mobility. </p><p>It does not matter if the vehicle has a Google brain or a Tesla brain. The expensive robotaxi needs a rider to generate revenue. Uber has hundreds of millions of active users. By acting as the aggregator, Uber forces hardware companies to plug into its routing algorithm. </p><p>Uber does not need to win the artificial intelligence race. Uber just needs to be the default platform where all the artificial intelligence models come to find their customers.</p><h2>Commanding The Pricing Power</h2><p>Whoever controls the user interface controls the pricing power. </p><p>If a customer opens the Uber app, they do not care who manufactured the car. They just want the cheapest and fastest ride possible.</p><p>This consumer behaviour gives Uber total negotiating control over the hardware companies. Uber can force the different self-driving companies to compete directly against each other on the same screen. </p><p>If one hardware company wants a higher cut of the fare, Uber will simply send the customer a cheaper vehicle from a different hardware maker. This dynamic will force the hardware companies to lower their prices to win the ride, while Uber maintains its high profit margins on every single transaction.</p><p>What do you think, what&#8217;s the future of mobility?</p><blockquote><p><em><strong><a href="https://topmate.io/technomanagers/1472775">For Full Detailed cases Studies and AI &amp; Strategy &#8212; Download this Book ( 5/5 Rated )</a></strong></em></p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://topmate.io/technomanagers/1472775&quot;,&quot;text&quot;:&quot;Download the Book&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://topmate.io/technomanagers/1472775"><span>Download the Book</span></a></p><p>You can also check out our <strong>Highest rated AI PM course &#183; 4.9/5 &#183; 500+ enrollments &#8594; <a href="https://topmate.io/technomanagers/1861184">See testimonials and course details</a></strong> 60% OFF for a limited time &#8212; Code: NYE26</p><h2><strong>About Author</strong></h2><p><em><a href="https://www.linkedin.com/in/shailesh-sharma/">Shailesh Sharma</a>! I help PMs and business leaders excel in Product, Strategy, and AI using First Principles Thinking. For more, check out my <a href="https://topmate.io/technomanagers/1861184">AI Product Management Course</a>, <a href="https://topmate.io/technomanagers/1470531">PM Interview Mastery Course</a>, <a href="https://topmate.io/technomanagers/1472775">Cracking Strategy</a>, and <a href="https://topmate.io/technomanagers">other Resources</a></em></p>]]></content:encoded></item></channel></rss>