<?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[Lewis C. Lin’s Newsletter: Deep Dives]]></title><description><![CDATA[Learn how to think like a world-class product leader in 10-15 minutes per issue.]]></description><link>https://lewislin.substack.com/s/deep-dives</link><image><url>https://substackcdn.com/image/fetch/$s_!Du-h!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Flewislin.substack.com%2Fimg%2Fsubstack.png</url><title>Lewis C. Lin’s Newsletter: Deep Dives</title><link>https://lewislin.substack.com/s/deep-dives</link></image><generator>Substack</generator><lastBuildDate>Sun, 03 May 2026 14:42:56 GMT</lastBuildDate><atom:link href="https://lewislin.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Lewis C. Lin]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[lewislin@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[lewislin@substack.com]]></itunes:email><itunes:name><![CDATA[Lewis C. Lin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Lewis C. Lin]]></itunes:author><googleplay:owner><![CDATA[lewislin@substack.com]]></googleplay:owner><googleplay:email><![CDATA[lewislin@substack.com]]></googleplay:email><googleplay:author><![CDATA[Lewis C. Lin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[M6: Design a Gardening App for Meta]]></title><description><![CDATA[How Meta can leverage the local social graph to turn "failed" backyard gardens into a neighborhood's most valuable dataset]]></description><link>https://lewislin.substack.com/p/m6-design-a-gardening-app-for-meta</link><guid isPermaLink="false">https://lewislin.substack.com/p/m6-design-a-gardening-app-for-meta</guid><pubDate>Fri, 24 Apr 2026 14:30:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!C6nH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C6nH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C6nH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 424w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 848w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 1272w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C6nH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png" width="1002" height="997" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:997,&quot;width&quot;:1002,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2310798,&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://lewislin.substack.com/i/184140553?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.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_!C6nH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 424w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 848w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.png 1272w, https://substackcdn.com/image/fetch/$s_!C6nH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa101ea8a-a4f9-46cc-b417-79e3f505786f_1002x997.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>Every neighborhood has a master gardener who has cracked the microclimate. She knows which tomatoes survive the late frost, which pests hit in June, and which soil amendment changes everything. Her neighbors have no idea she exists. She has gardened alone for twenty years. Two streets over, someone is about to repeat every mistake she already solved.</p><p>The knowledge exists. The desire to share exists. The problem is that gardening has no natural occasion for community. You plant alone. You fail alone. You figure it out alone. A gardening app for Meta is not a plant care tool. It is an excuse for neighbors to finally talk.</p><h1>Design a Gardening App for Meta</h1><h2>C: Clarify the Goal and Boundaries</h2><ul><li><p><strong>Role:</strong> PM at Meta, building on Facebook Groups infrastructure.</p></li><li><p><strong>Plan:</strong> Establish why this product deserves to exist, identify who it is for, surface the non-obvious pain points, and build solutions from those pain points up.</p></li></ul><h3>Why This Matters</h3><ul><li><p><strong>Mission:</strong> Meta&#8217;s mission is to bring the world closer together. A neighbor who learns to grow tomatoes because someone down the street shared their experience is community at its most literal &#8212; and it is happening almost nowhere at scale.</p></li><li><p><strong>Human Value:</strong></p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/m6-design-a-gardening-app-for-meta">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O14: How Agentic Tool Use Actually Works]]></title><description><![CDATA[The LLM doesn&#8217;t execute anything.]]></description><link>https://lewislin.substack.com/p/o14-how-agentic-tool-use-actually</link><guid isPermaLink="false">https://lewislin.substack.com/p/o14-how-agentic-tool-use-actually</guid><pubDate>Fri, 17 Apr 2026 14:51:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vIhb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vIhb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vIhb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 424w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 848w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vIhb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png" width="993" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:993,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2399205,&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://lewislin.substack.com/i/192979672?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.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_!vIhb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 424w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 848w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!vIhb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb23c7b3c-4985-431f-bd50-7699bfbc5196_993x1000.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>When an agent &#8220;searches the web&#8221; or &#8220;queries a database,&#8221; it&#8217;s generating a structured request &#8212; a JSON object that says: <em>I want to call this function with these parameters.</em> Your application code receives that, runs the actual function, and passes the result back. The LLM decides what to call. Everything else is software.</p><p>That distinction matters more than it sounds. It&#8217;s where most agentic systems fail &#8212; and almost never in the way teams expect.</p><div><hr></div><h2>The Loop</h2><p>Every time an agent takes an action, the same cycle runs:</p><ol><li><p>User sends a request</p></li><li><p>LLM receives the request alongside the tool catalog</p></li><li><p>LLM decides whether it needs a tool &#8212; if yes, generates a structured tool call</p></li><li><p>Application code executes the tool</p></li><li><p>Tool result returns to the LLM</p></li><li><p>LLM reasons over the result, then calls another tool or generates a final response</p></li></ol><p>This loop runs once for a simple question. It runs a dozen times for a complex task, each call building on the output of the last. The loop is the engine. Everything else &#8212; the catalog, the schemas, the guardrails &#8212; exists to keep it pointed in the right direction.</p><div><hr></div><h2>The Catalog: What the Agent Knows It Can Do</h2><p>The LLM doesn&#8217;t know what tools exist by default. You have to tell it.</p><p>When you build an agentic system, you define a tool catalog &#8212; a list of available tools passed into the LLM&#8217;s context alongside the user&#8217;s request. Each entry contains:</p><ul><li><p><strong>Name</strong> &#8212; what the tool is called</p></li><li><p><strong>Description</strong> &#8212; what it does and when to use it</p></li><li><p><strong>Schema</strong> &#8212; what parameters it accepts, their types, which are required</p></li></ul><p>Tool selection is probabilistic reasoning, not a lookup table. The LLM reads descriptions and infers which tool best fits the current moment. That means tool descriptions function exactly like prompts &#8212; they shape behavior directly.</p><p><strong>Same tool. Two descriptions. Different outcomes.</strong></p><p>Bad:</p><blockquote><p><code>fetch_page</code> &#8212; Fetches a page from the internet.</p></blockquote><p>Good:</p><blockquote><p><code>fetch_page</code> &#8212; Retrieves the full text content of a specific URL. Use after <code>web_search</code> returns a result and you need to read the full article. Do not use for general discovery &#8212; use <code>web_search</code> for that.</p></blockquote><p>The first leaves ambiguous when to use it. The LLM might call <code>fetch_page</code> before running a search, or call it redundantly. The second constrains the context and the sequencing. That precision prevents an entire class of failures.</p><p>Tool descriptions aren&#8217;t documentation. They&#8217;re behavioral constraints &#8212; and they deserve the same care as a system prompt.</p><div><hr></div><h2>Schemas: The Contract Between the LLM and Reality</h2><p>A schema is the formal definition of what a tool accepts as input. At minimum, it defines:</p><ul><li><p>Each parameter&#8217;s name and data type</p></li><li><p>Whether the parameter is required or optional</p></li><li><p>For constrained values, the allowed options (enums)</p></li></ul><p>Here&#8217;s what one looks like in practice:</p>
      <p>
          <a href="https://lewislin.substack.com/p/o14-how-agentic-tool-use-actually">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M54: Design a Neighborhood Borrowing and Lending Product for Meta]]></title><description><![CDATA[How to build a local lending marketplace when the supply already exists &#8212; and nobody knows it.]]></description><link>https://lewislin.substack.com/p/m54-design-a-neighborhood-borrowing</link><guid isPermaLink="false">https://lewislin.substack.com/p/m54-design-a-neighborhood-borrowing</guid><pubDate>Wed, 01 Apr 2026 21:13:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f-7I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f-7I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f-7I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 424w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 848w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f-7I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png" width="1005" height="1002" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1002,&quot;width&quot;:1005,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2246142,&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://lewislin.substack.com/i/192439287?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.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_!f-7I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 424w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 848w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!f-7I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd16379c8-b832-4a8f-aac4-75595434c306_1005x1002.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>Every neighborhood has a pressure washer sitting in a garage. A tile saw used once. A camping tent that hasn&#8217;t seen a campsite in three years. Two streets over, someone is about to rent or buy the same thing. The supply and the demand live 40 feet apart and never meet.</p><p>The challenge isn&#8217;t convincing people to share. Most already want to. The challenge is making the invisible visible &#8212; and making the ask feel less like a social risk than a tap on a screen.</p><h1>Design a Neighborhood Borrowing and Lending Product for Meta</h1>
      <p>
          <a href="https://lewislin.substack.com/p/m54-design-a-neighborhood-borrowing">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M37N: Measuring Success for Instagram's Close Friends]]></title><description><![CDATA[How to find the one metric that proves Close Friends is forming a real habit]]></description><link>https://lewislin.substack.com/p/m37n-measuring-success-for-instagrams</link><guid isPermaLink="false">https://lewislin.substack.com/p/m37n-measuring-success-for-instagrams</guid><pubDate>Thu, 26 Mar 2026 14:26:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eLnY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eLnY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eLnY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eLnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:866682,&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://lewislin.substack.com/i/190576510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.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_!eLnY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!eLnY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F794437b2-8f3d-43f5-b04f-0e4e53c6f5cf_640x640.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>Instagram&#8217;s Close Friends feature has a metric problem. You could track list creation, story views, reply rates, or adoption breadth &#8212; and all of them would tell you something. But none of them alone tells you whether Close Friends is doing what it&#8217;s supposed to do: get creators to consistently choose a smaller, more trusted audience over broadcasting to everyone.</p><h1>Measuring Success for Instagram&#8217;s Close Friends</h1><h2>Identify Key Stakeholders</h2><ul><li><p><strong>Primary</strong>: Content creators sharing personal or sensitive content with a trusted inner circle</p></li><li><p><strong>Secondary</strong>: Close Friends recipients consuming exclusive, intimate content from people they know well</p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/m37n-measuring-success-for-instagrams">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M34: Success Metrics for Facebook Groups]]></title><description><![CDATA[How to identify the single metric that captures community health across millions of Facebook Groups]]></description><link>https://lewislin.substack.com/p/m34-success-metrics-for-facebook</link><guid isPermaLink="false">https://lewislin.substack.com/p/m34-success-metrics-for-facebook</guid><pubDate>Sat, 21 Mar 2026 14:13:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZTNW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZTNW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZTNW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 424w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 848w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 1272w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZTNW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png" width="1344" height="1284" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1284,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3312967,&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://lewislin.substack.com/i/184327111?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.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_!ZTNW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 424w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 848w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.png 1272w, https://substackcdn.com/image/fetch/$s_!ZTNW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ce1ac14-1b14-4788-a913-6bb686bd0512_1344x1284.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>Facebook Groups hosts everything from neighborhood watch pages to niche hobbyist communities to small business fan clubs. With that breadth comes a measurement problem: do you optimize for time spent, members recruited, or posts created? Each metric tells a different story.</p><h1>Define success metrics and goals for Facebook Groups</h1><h2>Identify Key Stakeholders</h2><ul><li><p>Primary stakeholders: Group members participating in discussions and building relationships</p></li><li><p>Secondary stakeholders: Group administrators and moderators managing communities</p></li><li><p>Tertiary stakeholders: Small businesses using groups to build customer communities; advertisers targeting engaged community audiences</p></li></ul><h2>Articulate Core Value</h2><ul><li><p>Primary value: Niche community building and specialized knowledge sharing</p></li><li><p>Supporting value: Meaningful discussions and peer support for members</p></li><li><p>Business value: Deep community engagement and long-term platform loyalty</p></li></ul><h2>Define Core Actions</h2><ul><li><p>Create group content</p></li><li><p>Moderate discussions</p></li><li><p>Recruit members</p></li><li><p>Share knowledge</p></li></ul><h2>Brainstorm Potential NSMs</h2><ul><li><p>Active Member Ratio: Percentage of group members who actively participate monthly</p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/m34-success-metrics-for-facebook">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[D8: Improve the Etsy Discovery Experience]]></title><description><![CDATA[How to redesign Etsy's discovery experience around gifting intent, not keyword matching.]]></description><link>https://lewislin.substack.com/p/d8-improve-the-etsy-discovery-experience</link><guid isPermaLink="false">https://lewislin.substack.com/p/d8-improve-the-etsy-discovery-experience</guid><pubDate>Thu, 19 Mar 2026 14:43:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LIS1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LIS1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LIS1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LIS1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1043146,&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://lewislin.substack.com/i/189906591?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.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_!LIS1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!LIS1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb58b842a-ba1b-458c-812f-54d2a938d04b_640x640.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>Gift buyers arrive on Etsy with high intent and leave empty-handed. They know the person, the occasion, and the budget. They just can't translate that into a keyword &#8212; so they leave for Amazon and call it good enough. Etsy's search was never built to help them &#8212; and rebuilding it starts with understanding exactly where it breaks.</p><h1>Improve the Etsy Discovery Experience</h1><h2>C: Clarify the Goal &amp; Boundaries</h2><p><strong>Role:</strong> PM on Etsy&#8217;s Discovery &amp; Search team, focused on the buyer-side experience.</p><p><strong>Plan:</strong> Map who struggles most with Etsy&#8217;s discovery experience, why it fails them, and what a focused product intervention can do about it.</p><h3>Why This Matters</h3><p><strong>Mission:</strong> Etsy&#8217;s mission is to keep commerce human. Discovery is the front door to that mission. If buyers can&#8217;t find handmade and unique items, the platform becomes a generic search experience any competitor can replicate.</p><p><strong>Human Value:</strong> Discovery on Etsy is emotionally loaded in a way it isn&#8217;t on Amazon. Buyers come for the feeling of finding something one-of-a-kind. A broken discovery experience doesn&#8217;t just frustrate &#8212; it destroys the magic.</p><p><strong>Business Value:</strong> Discovery directly drives GMV. Buyers who find relevant items convert, return, and refer. Buyers who fail churn to Amazon Handmade, Instagram Shopping, or Pinterest.</p><p><strong>Product Mission:</strong> &#8220;Make finding the perfect item on Etsy as intuitive as describing it to a friend.&#8221;</p><h3>Parameters</h3><ul><li><p><strong>Geography:</strong> US market first &#8212; largest GMV contributor with the clearest behavioral data</p></li><li><p><strong>Platform:</strong> Mobile-first; the majority of Etsy&#8217;s traffic is mobile</p></li><li><p><strong>Timeframe:</strong> 12-month strategic horizon, 6-month MVP milestone</p></li></ul><h2>I: Identify Customers &amp; Stakeholders</h2><h3>Stakeholder Ecosystem</h3><ul><li><p><strong>Primary:</strong> Buyers &#8212; browsing, discovering, purchasing</p></li><li><p><strong>Secondary:</strong> Sellers &#8212; whose listings surface or get buried</p></li><li><p><strong>Business:</strong> Revenue, merchandising, trust &amp; safety, and search engineering teams</p></li><li><p><strong>External:</strong> Payment processors, shipping carriers</p></li><li><p><strong>Regulatory:</strong> Consumer protection bodies, IP holders, anti-counterfeiting organizations</p></li></ul><p>Buyers are the primary focus. Seller experience is downstream &#8212; when buyers can&#8217;t discover, sellers suffer.</p><h3>Buyer Segments</h3>
      <p>
          <a href="https://lewislin.substack.com/p/d8-improve-the-etsy-discovery-experience">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M39: Goals & Success Metrics for Meta's Anti-Scamming Product]]></title><description><![CDATA[How to measure protection across four distinct scam vectors without letting aggressive detection become the product's biggest liability]]></description><link>https://lewislin.substack.com/p/m39-goals-and-success-metrics-for</link><guid isPermaLink="false">https://lewislin.substack.com/p/m39-goals-and-success-metrics-for</guid><pubDate>Tue, 17 Mar 2026 14:52:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!liOV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!liOV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!liOV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 424w, https://substackcdn.com/image/fetch/$s_!liOV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 848w, https://substackcdn.com/image/fetch/$s_!liOV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 1272w, https://substackcdn.com/image/fetch/$s_!liOV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!liOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png" width="589" height="587" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:587,&quot;width&quot;:589,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:878999,&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://lewislin.substack.com/i/189384585?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.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_!liOV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 424w, https://substackcdn.com/image/fetch/$s_!liOV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 848w, https://substackcdn.com/image/fetch/$s_!liOV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.png 1272w, https://substackcdn.com/image/fetch/$s_!liOV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553867b1-fbdd-4e9d-aa55-020fe6c7ed5a_589x587.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>Meta&#8217;s platforms host billions of interactions daily. A small but consequential fraction of them are traps &#8212; financial scams draining bank accounts, authentication schemes hijacking user credentials, catfishing exploiting emotional trust, and fake news warping real-world decisions.</p><p>The metrics you choose to measure your detection system will determine whether your team is actually protecting users &#8212; or just getting better at flagging them.</p><h1>Define Goals and Success Metrics for Meta&#8217;s Anti-Scamming Product</h1><h2>Identify Key Stakeholders</h2><p><strong>Primary:</strong> At-risk user segments most vulnerable to financial fraud &#8212; new users, elderly users, high-transaction users, and international users conducting cross-border transfers</p><p><strong>Secondary:</strong> Trust &amp; Safety operations teams, fraud investigation specialists, and threat intelligence analysts who detect, investigate, and respond to scam activity</p><p><strong>Tertiary:</strong> Legal and compliance teams, law enforcement partners, and legitimate businesses whose operations are disrupted by the broader fraud ecosystem Meta operates within</p><h2>Articulate Core Value</h2><p><strong>Primary:</strong> Protect people from the four core scam vectors on Meta&#8217;s platforms &#8212; financial scams that drain money, authentication scams that compromise account access, catfishing that exploits emotional trust, and fake news that distorts decision-making</p>
      <p>
          <a href="https://lewislin.substack.com/p/m39-goals-and-success-metrics-for">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[G28: Hidden Signal-YouTube Shorts Total View Time Is Up, But Total Uploads Are Down]]></title><description><![CDATA[How to diagnose a platform metric that looks like creator burnout but reveals a creator economy problem]]></description><link>https://lewislin.substack.com/p/g28-hidden-signal-youtube-shorts</link><guid isPermaLink="false">https://lewislin.substack.com/p/g28-hidden-signal-youtube-shorts</guid><pubDate>Thu, 12 Mar 2026 14:07:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fyjR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fyjR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fyjR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fyjR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3487e05b-b69f-4731-9490-e9124aefae94_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:880408,&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://lewislin.substack.com/i/189287540?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.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_!fyjR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!fyjR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3487e05b-b69f-4731-9490-e9124aefae94_640x640.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>YouTube Shorts total view time is climbing. Total uploads are falling. The instinct is to sound the alarm on creator burnout and push for better tooling. But the data tells a different story &#8212; one where the creator economy matured, and Shorts is now competing against brand deals, live events, and rival platform bonuses for the same creator hours. The question isn&#8217;t how to get more creators posting. It&#8217;s whether YouTube can win that competition.</p><p><em>This is a Hidden Signal question. For more insights, check out the Hidden Signal chapters in <a href="https://www.lewis-lin.com/decode-and-conquer">Decode and Conquer, 5th edition</a>.</em></p><h2>The Obvious Narrative</h2><p>Rising view time + declining uploads = creator burnout. Fewer creators are posting, but the existing library is carrying engagement.</p>
      <p>
          <a href="https://lewislin.substack.com/p/g28-hidden-signal-youtube-shorts">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O13: How Do AI Evals Work?]]></title><description><![CDATA[What AI evals are, why they matter, and how to run one on your LLM integration]]></description><link>https://lewislin.substack.com/p/how-do-ai-evals-work</link><guid isPermaLink="false">https://lewislin.substack.com/p/how-do-ai-evals-work</guid><pubDate>Fri, 06 Mar 2026 15:47:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!95Kv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You built the feature. You integrated the LLM. Now someone&#8217;s asking: <em>How do you know it&#8217;s working? How do you test it? How do you make it better?</em></p><p>Those three questions have a four-step answer. It&#8217;s called an AI eval.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!95Kv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!95Kv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!95Kv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137559,&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://lewislin.substack.com/i/188831332?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.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_!95Kv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!95Kv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3da4948e-d0e7-4737-8d38-bb79b99915f6_640x640.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><h2>The Four Steps</h2><pre><code><code>DEFINE &#8594; RUN &#8594; JUDGE &#8594; FIX &#8594; (repeat)</code></code></pre><h2>Step 1 &#8212; Define the Golden Set</h2><h3>Define what good looks like. Build your golden set.</h3><p>Before your AI touches anything, your domain expert &#8212; the person with the most credible judgment in your product area &#8212; writes down what the right answer is. Not roughly right. Specifically right.</p><p>Their labeled examples become your <strong>golden set</strong>.</p><p><strong>How to build it:</strong></p><ul><li><p>Identify your domain expert &#8212; your best support agent, most experienced paralegal, or senior engineer</p></li><li><p>Have them label ~100 real examples: good outputs and bad ones</p></li><li><p>Their judgment is the standard &#8212; no consensus, no committee</p></li></ul><p>&#9888;&#65039; <em>Skip this step and you&#8217;re measuring nothing.</em></p><p><strong>What one golden set entry looks like:</strong></p><ul><li><p><strong>Input:</strong> &#8220;How do I cancel my subscription?&#8221;</p></li><li><p><strong>Gold standard answer:</strong> &#8220;Go to Settings &#8594; Billing &#8594; Cancel. You&#8217;ll keep access until the end of your billing period.&#8221;</p></li><li><p><strong>Why it&#8217;s good:</strong> Direct, correct, no jargon, tells the user what happens next</p></li><li><p><strong>Failure mode if wrong:</strong> Hallucination or incomplete answer</p></li></ul><h2>Step 2 &#8212; Run the Model</h2><h3>Feed your AI real questions. Not easy ones.</h3><p>Take the inputs your actual users send and run them through your model. Collect every output.</p><p><strong>What &#8220;real&#8221; means:</strong></p>
      <p>
          <a href="https://lewislin.substack.com/p/how-do-ai-evals-work">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[G4: Design YouTube for Kids]]></title><description><![CDATA[How to build a children's video platform that closes the gap between screen time and real learning.]]></description><link>https://lewislin.substack.com/p/g4-design-youtube-for-kids</link><guid isPermaLink="false">https://lewislin.substack.com/p/g4-design-youtube-for-kids</guid><pubDate>Sat, 28 Feb 2026 15:04:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4qVV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4qVV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4qVV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4qVV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118406,&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://lewislin.substack.com/i/188821135?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.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_!4qVV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!4qVV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6131f30e-d911-44ea-8813-ca24d8c65a8f_640x640.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>YouTube reaches billions of children. But its recommendation engine was built to maximize watch time &#8212; not to match a 7-year-old&#8217;s attention span, scaffold a concept they didn&#8217;t fully grasp, or tell a parent what their kid is absorbing. Kids binge. Parents worry. Learning stops when the video ends.</p><p>This case walks through how to redesign YouTube Kids from the ground up &#8212; identifying the right user segment, diagnosing the core pain points, and building toward a platform that knows what a child is learning and picks up where they left off.</p><h1>Design YouTube for Kids</h1><h2>C: Clarify the Goal and Boundaries</h2><p><strong>Role</strong>: PM at Google building the next-generation YouTube Kids platform.</p><p><strong>Plan</strong>: Explore why children need a specialized video experience, identify key segments, map their needs, brainstorm solutions, and recommend a platform that uses Google&#8217;s AI capabilities to close the gap between screen time and real learning.</p><p><strong>Why This Matters</strong></p><ul><li><p><strong>Child Development</strong>: Early digital experiences shape how children learn and relate to technology &#8212; at scale, across billions of households.</p></li><li><p><strong>Parental Trust</strong>: Parents need confidence their kids can explore freely without exposure to inappropriate content.</p></li><li><p><strong>Educational Equity</strong>: Quality learning content should be accessible regardless of income, location, or language.</p></li></ul><p><strong>Product Mission</strong>: &#8220;A video platform built around what children actually learn &#8212; not just what they watch.&#8221;</p><p><strong>Parameters</strong></p><ul><li><p><em>Geography</em>: English-speaking markets first, international expansion to follow</p></li><li><p><em>Platform</em>: Tablet and voice-first, with smart TV support</p></li><li><p><em>Timeframe</em>: 24-month phased rollout</p></li></ul><h2>I: Identify Customers + Stakeholders</h2><h3>Stakeholder Ecosystem</h3><p><strong>Primary Users</strong>: Children ages 3&#8211;12</p><p><strong>Secondary Users</strong>: Parents and caregivers</p>
      <p>
          <a href="https://lewislin.substack.com/p/g4-design-youtube-for-kids">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O4: Candidate Generation Without Neural Networks]]></title><description><![CDATA[How to extract 1,000 relevant items from millions in under 50ms using collaborative filtering, graph walks, and association rules&#8212;no neural networks required.]]></description><link>https://lewislin.substack.com/p/o4-candidate-generation-without-neural</link><guid isPermaLink="false">https://lewislin.substack.com/p/o4-candidate-generation-without-neural</guid><pubDate>Sat, 21 Feb 2026 15:09:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ipIj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ipIj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ipIj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ipIj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png" width="640" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148057,&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://lewislin.substack.com/i/185469873?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.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_!ipIj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 424w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 848w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.png 1272w, https://substackcdn.com/image/fetch/$s_!ipIj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F100d9c84-d73f-4982-9ecf-d599d15b2339_640x640.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>How to extract promising recommendations from millions of items in milliseconds&#8212;without embeddings.</p><p>Most engineers think candidate generation requires neural networks. But some of the best personalization systems use simpler techniques&#8212;and they&#8217;re faster, more interpretable, and easier to debug.</p><p>This is the question Spotify asked in their Personalization Safety PM interview: &#8220;NOT using a two-tower network, how would you extract candidates from a user&#8217;s action history?&#8221; Here&#8217;s how to answer it.</p><div><hr></div><h2>1. Why Spotify Safety Cares About Non-Neural</h2><p>Before diving into solutions, understand what the interviewer really wants to know.</p><p>Two-tower models are fast and accurate but opaque. When a 13-year-old gets explicit content, &#8220;the neural network thought these embeddings were close&#8221; doesn&#8217;t help you debug or satisfy regulators. For safety-focused roles, you need to answer: Why was user X shown item Y? How do we enforce age restrictions? Can we prove the system doesn&#8217;t discriminate? When recommendations fail, how do we fix them?</p><p>Non-neural approaches give you audit trails. Every candidate can be traced to specific user actions and retrieval logic. You can show your work. This is why safety teams often prefer them&#8212;or use them alongside neural models as a sanity check.</p><div><hr></div><h2>2. Requirements</h2><p><strong>Functional</strong></p><ul><li><p>Extract 500-1,000 candidates from millions of items</p></li><li><p>Use user&#8217;s recent actions (last 7-30 days)</p></li><li><p>Support real-time updates as users take new actions</p></li></ul><p><strong>Non-Functional</strong></p><ul><li><p>Latency: &lt;50ms for candidate generation</p></li><li><p>Throughput: Millions of concurrent requests</p></li><li><p>Explainability: Trace why each candidate was selected</p></li></ul><p><strong>The Challenge:</strong> Do this without neural embeddings.</p><div><hr></div><h2>3. Three Core Approaches</h2><h3>Approach 1: Collaborative Filtering</h3><p><strong>Think of it like Amazon&#8217;s &#8220;Customers who bought this also bought.&#8221;</strong></p><p>You loved books A, B, and C. The bookstore clerk checks their records and sees most people who bought those three also bought book D. They recommend D. That&#8217;s collaborative filtering.</p><p>In music: Find all users who listened to the same songs as you. See what else they listened to. Those songs become your candidates.</p><p><strong>Why it works:</strong></p><p>Patterns in collective behavior reveal preferences. If 10,000 people who loved &#8220;Bohemian Rhapsody&#8221; also loved &#8220;Stairway to Heaven,&#8221; that&#8217;s a strong signal&#8212;stronger than any individual preference.</p><p><strong>How it works:</strong></p><p>Precompute item-item similarities offline. For every song, calculate the top 500 most similar songs based on who listened to both. At serving time, look up the user&#8217;s recent listens and fetch similar songs. Pure lookups&#8212;no computation.</p><pre><code><code>User listened to: [Song_A, Song_B, Song_C]

Item-item index (precomputed daily):
Song_A &#8594; [Song_D (0.85), Song_E (0.78), Song_F (0.72)]
Song_B &#8594; [Song_G (0.81), Song_D (0.76), Song_H (0.71)]
Song_C &#8594; [Song_E (0.83), Song_I (0.79), Song_D (0.74)]

Merge and rank &#8594; Top 500 candidates
Latency: 10-20ms</code></code></pre><p><strong>Best for:</strong></p><ul><li><p>Popular items with rich interaction data</p></li><li><p>Stable user preferences</p></li><li><p>Speed requirements (fastest approach)</p></li></ul><p><strong>Worst for:</strong></p><ul><li><p>New items (no co-occurrence data yet)</p></li><li><p>Niche tastes (sparse data)</p></li><li><p>Discovering unexpected connections (only finds obvious similarities)</p></li></ul><p><strong>The production reality:</strong></p><p>Spotify runs multiple simple retrievers in parallel rather than one complex neural system. Why? When a retriever fails at 3am, an on-call engineer needs to debug it in minutes&#8212;not hours digging through neural network internals. Simpler systems are faster to fix, easier to explain to product teams, and cheaper to maintain.</p><blockquote><p>&#8220;Production systems prioritize operational simplicity over marginal accuracy gains.&#8221;</p></blockquote><div><hr></div><h3>Approach 2: Graph-Based Retrieval</h3><p><strong>Think of it like LinkedIn&#8217;s &#8220;2nd degree connections.&#8221;</strong></p><p>You know Alice. Alice knows Bob. Bob knows Carol. So Carol might be worth connecting with even though you&#8217;ve never met. That&#8217;s a 3-hop connection.</p><p>In music: You listened to Queen. Queen connects to &#8220;Classic Rock&#8221; genre. Classic Rock connects to Led Zeppelin. Led Zeppelin connects to &#8220;Stairway to Heaven.&#8221; That song becomes a candidate&#8212;not because it&#8217;s directly similar to Queen, but because it&#8217;s connected through the graph.</p><p><strong>Why it works:</strong></p><p>Direct similarities (CF) miss interesting connections. Graph walks discover items that are 2-3 hops away&#8212;songs you&#8217;d never find through &#8220;people who listened to X also listened to Y&#8221; but make perfect sense when you see the path.</p><p><strong>How it works:</strong></p>
      <p>
          <a href="https://lewislin.substack.com/p/o4-candidate-generation-without-neural">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M30: Success Metrics for Facebook Events]]></title><description><![CDATA[Why choosing between event supply, user demand, and ticket revenue determines your entire product roadmap]]></description><link>https://lewislin.substack.com/p/m30-success-metrics-for-facebook</link><guid isPermaLink="false">https://lewislin.substack.com/p/m30-success-metrics-for-facebook</guid><pubDate>Thu, 19 Feb 2026 15:08:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uHfT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uHfT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uHfT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uHfT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1066677,&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://lewislin.substack.com/i/184277134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uHfT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!uHfT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F243b4459-af46-44a5-8d6a-d713eb3750c2_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Facebook Events has three obvious metrics to track: events created (supply), event page views (demand), and ticket sales (revenue). Most product leaders want to optimize all three simultaneously. But a strong North Star Metric forces you to choose what matters most&#8212;and that choice reveals your entire product strategy.</p><h1>Measuring Success for Facebook Events</h1><h2>Identify Key Stakeholders</h2><ul><li><p>Primary: Users discovering local activities and entertainment</p></li><li><p>Secondary: Local businesses and organizations hosting events for revenue</p></li><li><p>Tertiary: Meta (local business relationships and advertising revenue)</p></li></ul><h2>Articulate Core Value</h2><ul><li><p>Primary: Largest local event discovery platform with maximum event inventory</p></li><li><p>Supporting: Seamless event promotion and ticket sales for organizers</p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/m30-success-metrics-for-facebook">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O10: Design a Perplexity-Like Search Engine]]></title><description><![CDATA[A deep dive into building search that retrieves, reasons, and refuses to hallucinate.]]></description><link>https://lewislin.substack.com/p/o10-design-a-perplexity-like-search</link><guid isPermaLink="false">https://lewislin.substack.com/p/o10-design-a-perplexity-like-search</guid><pubDate>Sat, 14 Feb 2026 15:02:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!W7CM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W7CM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W7CM!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 424w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 848w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 1272w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W7CM!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif" width="624" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9896433,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lewislin.substack.com/i/185559848?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W7CM!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 424w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 848w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.gif 1272w, https://substackcdn.com/image/fetch/$s_!W7CM!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe5bd924-1d94-478e-947a-e83dae0c4355_624x624.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>Most people think AI search just works. In reality, every accurate answer is the result of careful orchestration&#8212;retrieving the right sources, validating every claim, and knowing when to admit ignorance. This post reveals the architecture behind search that earns your trust.</p><h2>Requirements</h2><h3>Functional Requirements</h3><ol><li><p>Query intent parsing - Understand semantic intent beyond keywords</p></li><li><p>Live web retrieval - Search real-time index for up-to-date information</p></li><li><p>RAG-based generation - Generate answers grounded in retrieved sources</p></li><li><p>Multi-model support - Route queries to appropriate LLM (fine-tuned base model, GPT-4, Claude, DeepSeek R1)</p></li><li><p>Citation verification - Provide inline citations with source links</p></li><li><p>Conversational context - Maintain multi-turn conversations</p></li></ol><p>One key question to ask: <em>&#8220;Are we supporting multimodal inputs (images, files) or text-only queries?&#8221;</em></p><ul><li><p>Assumption: Text-only (multimodal requires vision models and OCR)</p></li></ul><p>Out of scope:</p><ul><li><p>Voice input/output</p></li><li><p>Image generation or analysis</p></li><li><p>User personalization</p></li><li><p>API access for developers</p></li></ul><h3>Non-Functional Requirements</h3><p>Scale assumptions:</p><ul><li><p>780M queries/month = 300 QPS average (peak 900 QPS)</p></li><li><p>50M active users</p></li><li><p>Average 5-10 source citations per response</p></li></ul><p>Throughput (T):</p><ul><li><p>Search queries: 300 QPS average, 900 QPS peak</p></li><li><p>Web retrieval: 300 queries &#215; 20 documents = 6K fetches/sec</p></li><li><p>LLM inference: 300 generations/sec (varies by model)</p></li><li><p>Citation validation: 300 queries &#215; 5 citations = 1.5K checks/sec</p></li></ul><p>Latency (L):</p><ul><li><p>End-to-end: p99 &lt; 3 seconds</p><ul><li><p>Query parsing: &lt; 100ms</p></li><li><p>Web retrieval: &lt; 500ms</p></li><li><p>Document fetch: &lt; 800ms</p></li><li><p>LLM generation: &lt; 1.5s</p></li><li><p>Citation extraction: &lt; 100ms</p></li></ul></li><li><p>Indexing: New content searchable within 30 seconds</p></li></ul><p>Consistency (C):</p><ul><li><p>Search index: Eventually consistent (30-60 sec delay acceptable)</p><ul><li><p>Why: Web freshness matters more than perfect consistency</p></li></ul></li><li><p>Citations: Strong consistency (must match text exactly)</p><ul><li><p>Why: Zero tolerance for citation hallucinations</p></li></ul></li><li><p>Query cache: 5-min TTL, eventual consistency</p><ul><li><p>Why: Popular queries benefit from caching</p></li></ul></li></ul><p>Additional constraints:</p><ul><li><p>Accuracy: Zero hallucinations - ground truth enforcement</p></li><li><p>Availability: 99.95% uptime</p></li></ul><div><hr></div><h2>High-Level Design</h2><h3>API Design</h3><pre><code><code>POST /api/v1/search
{
  "query": "How does Perplexity RAG work?",
  "mode": "best",  // or: "base-model", "gpt4", "claude"
  "conversationId": "conv-123",
  "filters": {
    "timeRange": "past_week",
    "domains": ["arxiv.org"]
  }
}

Response:
{
  "answer": "Perplexity uses a five-stage RAG pipeline...",
  "citations": [
    {
      "id": 1,
      "title": "How Perplexity AI Works",
      "url": "https://medium.com/...",
      "snippet": "...five-stage pipeline...",
      "position": 42
    }
  ],
  "model": "base-model",
  "took": 1250,
  "suggestedFollowUps": ["What is RAG vs fine-tuning?"]
}</code></code></pre><h3>Core Components</h3><pre><code><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; User Query  &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   Query Router &amp; Intent Parser      &#9474;
&#9474;   - Pick model based on difficulty  &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   Live Web Retrieval (Vespa.ai)     &#9474;
&#9474;   - Hybrid: lexical + semantic      &#9474;
&#9474;   - Real-time indexing              &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   Document Fetcher &amp; Chunker        &#9474;
&#9474;   - Parallel HTTP requests          &#9474;
&#9474;   - Semantic chunking               &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   RAG Generator (Model-Agnostic)    &#9474;
&#9474;   - Small base model, GPT-4, Claude &#9474;
&#9474;   - System prompt: cite only        &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   Citation Validator                &#9474;
&#9474;   - Verify citations in sources     &#9474;
&#9474;   - Reject hallucinations           &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       &#9660;
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;  Response   &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></code></pre><p>Technology explanations:</p><p>Vespa.ai - Distributed search engine with ML inference</p><ul><li><p>Combines keyword (BM25 - frequency-based word ranking) with vector search (embeddings)</p></li><li><p>Real-time indexing: documents searchable in seconds</p></li></ul><p>RAG (Retrieval-Augmented Generation) - Pattern that grounds LLM responses in retrieved documents</p><ul><li><p>Unlike pure LLMs: Can&#8217;t make up facts</p></li><li><p>Unlike search: Returns natural language answers</p></li><li><p>Best of both: Accurate + conversational</p></li></ul><p>Model Routing - Dispatcher that selects the right model per query</p><ul><li><p>Fast queries &#8594; fine-tuned base model (cheaper, faster)</p></li><li><p>Complex reasoning &#8594; GPT-4/Claude (capable)</p></li><li><p>Math/code &#8594; DeepSeek R1 (specialized)</p></li></ul><h3>Data Model</h3><p>Search Index Document (Vespa):</p><pre><code><code>{
  "documentId": "doc-abc123",
  "url": "https://medium.com/article",
  "domain": "medium.com",
  
  "content": {
    "title": "How Perplexity RAG Works",
    "sections": [
      {
        "heading": "Introduction",
        "text": "Perplexity uses RAG...",
        "embedding": [0.123, -0.456, ...]
      }
    ],
    "fullText": "..."
  },
  
  "metadata": {
    "publishedDate": "2025-01-15",
    "lastCrawled": "2025-01-23T08:00:00Z",
    "pageRank": 0.85,
    "freshness": 0.95
  }
}</code></code></pre><p>Query Cache (Redis):</p><pre><code><code>Key: "query:hash:{sha256}"
Value: {answer, citations, model, timestamp}
TTL: 300 seconds</code></code></pre><h3>Data Flow</h3><p>Search Flow:</p>
      <p>
          <a href="https://lewislin.substack.com/p/o10-design-a-perplexity-like-search">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[G3: Design a Product to Improve the Airport Experience]]></title><description><![CDATA[How Google could turn airport panic into confident navigation&#8212;by embedding intelligence into Maps and leveraging infrastructure no competitor can match.]]></description><link>https://lewislin.substack.com/p/g3-design-a-product-to-improve-the</link><guid isPermaLink="false">https://lewislin.substack.com/p/g3-design-a-product-to-improve-the</guid><pubDate>Sat, 07 Feb 2026 15:12:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Hw2e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hw2e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hw2e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hw2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:296436,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lewislin.substack.com/i/175829204?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hw2e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hw2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d151e7e-a518-49dc-94d8-ae5c5296c355_1024x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>You shouldn&#8217;t feel lost and helpless standing in front of a sign you can&#8217;t read while your boarding time ticks down. Current solutions scatter information across airline apps, airport websites, and Google Translate&#8212;forcing travelers to juggle multiple tools while managing luggage in unfamiliar terminals.</p><p>Google could unify this into one intelligent layer that knows where you are, what you need, and how to get there. This breakdown prioritizes the pain points that cause the most anxiety, evaluates five solution approaches with trade-off scoring, and shows why starting with Maps integration (not flashy AR or biometric moonshots) creates the fastest path to reducing traveler stress at global scale.</p><h1>G3: Design a Product to Improve the Airport Experience</h1><h2>C: Clarify the Goal</h2><h3>Plan</h3><ul><li><p>Identify target users and prioritize highest-pain segment</p></li><li><p>Map their airport journey and score critical pain points</p></li><li><p>Generate solution concepts and evaluate trade-offs rigorously</p></li><li><p>Recommend phased approach with business model and success metrics</p></li></ul><h3>Why This Matters</h3><ul><li><p><strong>Mission Alignment</strong>: Extends Google&#8217;s information organization mission into complex physical spaces where travelers need contextual, real-time guidance across language barriers</p></li><li><p><strong>Human Impact</strong>: Transforms airport stress for billions annually&#8212;reducing missed connections and navigation anxiety in unfamiliar environments</p></li><li><p><strong>Strategic Value</strong>: Positions Google as essential infrastructure for global mobility, creating advertising opportunities and strengthening ecosystem lock-in</p></li></ul><h3>Product Mission</h3><ul><li><p>&#8220;Provide AI-powered guidance that transforms complex airport navigation into seamless travel experiences for global mobility&#8221;</p></li></ul><h3>Parameters</h3><ul><li><p>Geography: Initially US airports, expanding globally based on learnings</p></li><li><p>Platform: Mobile-first with AR/AI integration, leveraging Google&#8217;s ecosystem</p></li><li><p>Timeframe: 18-month development with phased rollout approach</p></li></ul><h2>I: Identify the Customer</h2><h3>Stakeholder Ecosystem</h3><ul><li><p><strong>Primary Users</strong>: Air travelers navigating complex airport environments</p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/g3-design-a-product-to-improve-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O2: Metrics, Binary Tradeoffs, and Hidden Signals for eCommerce Wholesaler]]></title><description><![CDATA[Brand count up 25%, but average order value per retailer down 30%. How Faire avoids sacrificing long-term marketplace health for short-term growth.]]></description><link>https://lewislin.substack.com/p/o2-metrics-binary-tradeoffs-and-hidden</link><guid isPermaLink="false">https://lewislin.substack.com/p/o2-metrics-binary-tradeoffs-and-hidden</guid><pubDate>Thu, 05 Feb 2026 18:28:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KDhT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most marketplace teams see declining average order values and immediately start promoting higher-priced products or bundling incentives. It&#8217;s like treating a fever without diagnosing the infection&#8212;you&#8217;re addressing symptoms while the underlying condition worsens.</p><p>When brand count jumps 25% but average order value per retailer drops 30%, you&#8217;re not facing a pricing problem. You&#8217;re at a strategic crossroads, and each direction costs millions in completely different ways. One path says &#8220;quality dilution&#8221;&#8212;you&#8217;re flooding the marketplace with lower-tier brands that fragment retailer spending. The other path says &#8220;successful democratization&#8221;&#8212;new brands naturally start with smaller order minimums to reduce retailer risk.</p><p>Here&#8217;s what you&#8217;ll learn: three diagnostic signals that reveal which reality you&#8217;re in within two weeks&#8212;before you invest nine months building the wrong strategy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KDhT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KDhT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 424w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 848w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 1272w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KDhT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png" width="1031" height="847" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:847,&quot;width&quot;:1031,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:247869,&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://lewislin.substack.com/i/179390856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.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_!KDhT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 424w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 848w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.png 1272w, https://substackcdn.com/image/fetch/$s_!KDhT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd128677c-9af9-4a3e-bcb0-9c33dc11c996_1031x847.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><h4>&#128073; Share this post and earn rewards for every friend who joins.</h4><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://lewislin.substack.com/p/o2-metrics-binary-tradeoffs-and-hidden?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://lewislin.substack.com/p/o2-metrics-binary-tradeoffs-and-hidden?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h1>M28: Metrics, Binary Tradeoffs, and Hidden Signals for Faire</h1><p>Brand count up 25%, but average order value per retailer down 30%. How Faire avoids sacrificing long-term marketplace health for short-term growth.</p><p>Most marketplace teams see declining average order values and immediately start promoting higher-priced products or bundling incentives. It&#8217;s like treating a fever without diagnosing the infection&#8212;you&#8217;re addressing symptoms while the underlying condition worsens.</p><p>When brand count jumps 25% but average order value per retailer drops 30%, you&#8217;re not facing a pricing problem. You&#8217;re at a strategic crossroads, and each direction costs millions in completely different ways. One path says &#8220;quality dilution&#8221;&#8212;you&#8217;re flooding the marketplace with lower-tier brands that fragment retailer spending. The other path says &#8220;successful democratization&#8221;&#8212;new brands naturally start with smaller order minimums to reduce retailer risk.</p><p>Here&#8217;s what you&#8217;ll learn: three diagnostic signals that reveal which reality you&#8217;re in within two weeks&#8212;before you invest nine months building the wrong strategy.</p><div><hr></div><h2>Metrics for Faire</h2><h3>Identify Key Stakeholders</h3><ul><li><p><strong>Primary:</strong> Independent Retailers</p></li><li><p><strong>Secondary:</strong> Wholesale Brands</p></li><li><p><strong>Tertiary:</strong> Faire Platform</p></li></ul><h3>Articulate Core Value</h3><ul><li><p><strong>For retailers:</strong> Discover unique wholesale products with favorable terms (Net 60, free returns) to differentiate their stores without inventory risk</p></li><li><p><strong>For brands:</strong> Access 100,000+ independent retailers globally with simplified wholesale operations and payment guarantees</p></li><li><p><strong>For Faire:</strong> Transaction fees from connecting retailers and brands</p></li></ul><h3>Define Core Actions</h3><ul><li><p><strong>Retailers:</strong> Discover brands, place orders, reorder</p></li><li><p><strong>Brands:</strong> List products, fulfill orders, optimize catalog</p></li><li><p><strong>Platform:</strong> Match retailers with brands, facilitate transactions, ensure quality</p></li></ul><h3>Brainstorm Potential NSMs</h3>
      <p>
          <a href="https://lewislin.substack.com/p/o2-metrics-binary-tradeoffs-and-hidden">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[O9: Designing AI for Human–Animal Communication]]></title><description><![CDATA[When you can talk to any animal, which conversation matters most?]]></description><link>https://lewislin.substack.com/p/o9-building-ai-for-humananimal-communication</link><guid isPermaLink="false">https://lewislin.substack.com/p/o9-building-ai-for-humananimal-communication</guid><pubDate>Sat, 31 Jan 2026 15:52:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Nh_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nh_U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nh_U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nh_U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1204182,&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://lewislin.substack.com/i/185321176?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nh_U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Nh_U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ec9dad3-ee23-4132-9ece-0305efeddb2f_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You walk into an interview and get hit with: &#8220;OpenAI just created an AI that lets humans talk to animals. What would you build?&#8221; Most PMs jump straight to the sci-fi stuff. But the $150B pet industry has dozens of real pain points, and your technology could theoretically solve all of them. So which one do you pick?</p><h1>Building AI for Human&#8211;Animal Communication</h1><p><em>How to approach the question: &#8220;OpenAI has created an AI that lets humans talk to animals. What would you build and why?&#8221;</em></p><h2>C: Clarify the Goal</h2><p><strong>Role &amp; Context</strong></p><ul><li><p>Product Lead for OpenAI&#8217;s Animal Communication Initiative</p></li><li><p>Initial US launch, 18-month horizon</p></li><li><p>Mobile-first product</p></li></ul><h3>The &#8220;Why&#8221; - Three Layers of Value</h3><p><strong>Mission Layer:</strong> OpenAI exists to ensure AGI benefits all of humanity. Animal communication extends this to all sentient beings&#8212;shifting our relationship with nature from dominion to partnership.</p><p><strong>Human Layer:</strong> Pet owners feel profound love but constant uncertainty. &#8220;Is my dog in pain?&#8221; &#8220;Why is my cat acting strange?&#8221; This eliminates the guesswork and deepens one of life&#8217;s most meaningful relationships.</p><p><strong>Business Layer:</strong></p><ul><li><p>$150B+ global pet industry, growing 6-8% annually</p></li><li><p>Recession-resistant market with high customer lifetime value</p></li><li><p>Creates data moat through behavioral insights</p></li><li><p>Establishes OpenAI in consumers&#8217; daily emotional lives, not just work</p></li></ul><h2>I: Identify Stakeholders &amp; Segments</h2><h3>Key User Segments</h3><p><strong>Anxious Pet Parents</strong></p><ul><li><p>Core motivation: View pets as family; prioritize wellness above all</p></li><li><p>Behavior: Research obsessively, frequent vet visits, try multiple solutions</p></li><li><p>Pain: Constant worry about pet health and happiness</p></li></ul><p><strong>Casual Pet Owners</strong></p>
      <p>
          <a href="https://lewislin.substack.com/p/o9-building-ai-for-humananimal-communication">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M19: Design a Neighborhood Connection Tool for Facebook]]></title><description><![CDATA[How Facebook wins local by solving neighbor discovery]]></description><link>https://lewislin.substack.com/p/m19-design-a-neighborhood-connection</link><guid isPermaLink="false">https://lewislin.substack.com/p/m19-design-a-neighborhood-connection</guid><pubDate>Thu, 29 Jan 2026 15:19:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7uLA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7uLA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7uLA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7uLA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:240635,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lewislin.substack.com/i/184086762?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7uLA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7uLA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82681bad-b7bf-4503-abcf-19fce2e8b874_1024x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Community Builders exist in every neighborhood&#8212;they organize block parties, know their neighbors&#8217; names, make things happen. But they face an impossible first step: they don&#8217;t know who actually lives nearby.</p><p>The fix isn&#8217;t better events or smarter alerts. It&#8217;s verified presence. Once you know who&#8217;s actually your neighbor, everything unlocks: finding your tennis partner three blocks away, building rituals that sustain momentum, creating the trust layer that turns a group chat into a real community.</p><p>Facebook has the assets to own this&#8212;verified identity, social graph, events infrastructure. But only if it solves discovery first.</p><h1>Design a neighborhood connection tool for Facebook</h1><h2>C: Clarify the Goal and Boundaries:</h2><ul><li><p>Role/Context: Product Manager at Meta developing a neighborhood connection feature for Facebook</p></li><li><p>Plan: Explore rationale for neighborhood connections on Facebook, identify target users, understand their needs, develop solutions, and conclude with implementation recommendations</p></li><li><p>Why This Matters:</p></li></ul>
      <p>
          <a href="https://lewislin.substack.com/p/m19-design-a-neighborhood-connection">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M21: Design a Marketplace Connecting Fans with Celebrities]]></title><description><![CDATA[Why the best creator platforms help find the right fans, not filter out the wrong ones]]></description><link>https://lewislin.substack.com/p/m21-design-a-marketplace-connecting</link><guid isPermaLink="false">https://lewislin.substack.com/p/m21-design-a-marketplace-connecting</guid><pubDate>Sat, 24 Jan 2026 15:56:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lq8c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lq8c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lq8c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lq8c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1016097,&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://lewislin.substack.com/i/184140493?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lq8c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Lq8c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb038fd65-a1df-4b89-8d33-483364b4b869_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Cameo monetizes transactions. Patreon monetizes subscriptions. Discord monetizes community. But none solve the core creator problem: wanting authentic connection but unable to find fans worth connecting with. The overwhelm isn't danger&#8212;it's missing meaningful fans buried in 490 generic "love your work" messages. Creators feel guilty ignoring everyone because they can't separate signal from noise.</p><h1>Design a Marketplace Connecting Fans with Celebrities</h1><h2>C: Clarify the Goal and Boundaries</h2><p><strong>Role/Context:</strong> Product Manager at Meta developing a new marketplace connecting celebrities and fans</p><p><strong>Plan:</strong> Explore why a celebrity-fan marketplace matters, identify key segments, explore pain points, develop solution concepts, and conclude with recommendations</p><h3>Why This Matters</h3><p><strong>Mission Alignment:</strong> Creates meaningful connections between fans and the creators who inspire them, breaking traditional barriers</p>
      <p>
          <a href="https://lewislin.substack.com/p/m21-design-a-marketplace-connecting">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[D4: Grow Craigslist Revenue by 3x in 5 Years]]></title><description><![CDATA[How to grow Craigslist 3x without breaking the community trust that makes it work]]></description><link>https://lewislin.substack.com/p/d4-grow-craigslist-revenue-by-3x</link><guid isPermaLink="false">https://lewislin.substack.com/p/d4-grow-craigslist-revenue-by-3x</guid><pubDate>Thu, 22 Jan 2026 16:06:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WMHR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WMHR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WMHR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WMHR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:327525,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://lewislin.substack.com/i/184086709?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WMHR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WMHR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F805d6234-386d-4b77-a32d-728ef9531c5f_1024x1024.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>Craigslist has 140 million monthly visitors and almost no monetization outside job postings. The money is clearly there&#8212;but most growth strategies would kill what makes the platform work: its simplicity and anonymity. The real puzzle isn&#8217;t finding revenue opportunities. It&#8217;s capturing them without betraying the users who show up precisely because Craigslist stays out of their way. This breakdown shows where the actual money is hiding, why obvious moves fail, and the one strategy that could triple revenue while making the community stronger, not weaker.</p><h1>Grow Craigslist Revenue by 3x in 5 Years</h1><h2>Current State Analysis</h2><p>Craigslist generates significant revenue from minimal monetization&#8212;primarily job postings. The platform receives roughly 140 million monthly visits with almost no yield outside of select paid categories&#8212;leaving substantial money on the table.</p>
      <p>
          <a href="https://lewislin.substack.com/p/d4-grow-craigslist-revenue-by-3x">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[M28: Measuring Success for Facebook Marketplace]]></title><description><![CDATA[What happens when your fastest-growing metrics hide your biggest strategic vulnerabilities]]></description><link>https://lewislin.substack.com/p/m28-measuring-success-for-facebook</link><guid isPermaLink="false">https://lewislin.substack.com/p/m28-measuring-success-for-facebook</guid><pubDate>Sat, 17 Jan 2026 15:55:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ktV6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Facebook Marketplace has 3 billion potential users and explosive listing growth. The obvious moves: expand inventory, enter more cities, reduce friction, scale the funnel. But when views surge 25% while transactions drop 18%, the obvious moves might be optimizing the wrong things.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ktV6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ktV6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ktV6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c859d249-e31c-4d72-ba64-a04a7f9510f7_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;:2800499,&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://lewislin.substack.com/i/183463018?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_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_!ktV6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ktV6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc859d249-e31c-4d72-ba64-a04a7f9510f7_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><h1>Measuring Success for Facebook Marketplace</h1><h2>Identify Key Stakeholders</h2><ul><li><p><strong>Primary:</strong> Local buyers and sellers completing transactions</p></li><li><p><strong>Secondary:</strong> Small businesses using Marketplace as commerce channel</p></li><li><p><strong>Tertiary:</strong> Meta (platform GMV and local commerce dominance)</p></li></ul><h2>Articulate Core Value</h2>
      <p>
          <a href="https://lewislin.substack.com/p/m28-measuring-success-for-facebook">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>