<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Taewoong Seo on Medium]]></title>
        <description><![CDATA[Stories by Taewoong Seo on Medium]]></description>
        <link>https://medium.com/@taewoongseo?source=rss-9ba876d64630------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*FeojEvupSrRpkDzI5ow_Ug.png</url>
            <title>Stories by Taewoong Seo on Medium</title>
            <link>https://medium.com/@taewoongseo?source=rss-9ba876d64630------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 10:18:57 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@taewoongseo/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Why Consumer AI Stalled, and Why It Might Not Stay That Way — Notes from an a16z Podcast]]></title>
            <link>https://medium.com/@taewoongseo/why-consumer-ai-stalled-and-why-it-might-not-stay-that-way-notes-from-an-a16z-podcast-2d89941f117c?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/2d89941f117c</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[personal-ai-agent]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[a16z]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Sat, 31 Oct 2026 15:09:19 GMT</pubDate>
            <atom:updated>2026-10-31T15:09:19.887Z</atom:updated>
            <content:encoded><![CDATA[<p>When the software wave came, it brought a flood of B2B and consumer products alike. Looking at both, consumer software always seemed harder to crack. Few consumers care about productivity, and they don’t care much about cost reduction or getting tasks done more efficiently. Taking the pain points that work in a B2B niche and applying them directly to consumers just didn’t seem to work.</p><p>I think applied AI looks similar. We’ve seen plenty of successful enterprise and B2B AI products, but far fewer consumer-facing ones. At the same time, I think AI is different enough that the consumer side may have different potential this time.</p><p>I recently listened to a podcast from a16z where partner Anish Acharya shared several insights about consumer AI. This post is a mix of what stuck with me from the episode and my own reactions to it.</p><h4>Why Consumer AI Was Held Back</h4><p>According to Anish, these were the three reasons why consumer AI growth may have been slower.</p><ol><li><strong>No app store or marketplace distribution channel</strong></li></ol><p>I think what ignited the consumer mobile app market was the marketplace: having the right channel for distribution. It became extremely easy for individuals and companies to list a game, a social app, or anything else and get engagement. A similar thing happens in certain software scenes. CRM products, for example, can launch on the Salesforce AppExchange to solve a small subset of problems in the sales pipeline within the Salesforce environment. The existence of these channel platforms is what drives the exponential growth of new products, and there really hasn’t been an equivalent for consumer AI.</p><p><strong>2. Consumers don’t like paying for software</strong></p><p>This is probably what stalled growth in consumer software too. I used to build a document and knowledge management tool for consumers called Typed. It was aimed at students and individuals who wanted to boost their writing productivity by seeing how their documents connect, adding references to the documents they were writing, and so on. It solved some real problems, but willingness to pay was so low that it didn’t make sense as a product. We had to pivot to B2B and sell to startups as a collaboration tool.</p><p>Anish points out that consumers don’t care much about productivity. I think that’s largely true. Some consumers do care, but even then their willingness to pay is low, and paying for software at all is rare. According to coverage of a16z’s latest Top 100 consumer AI apps report, only about 4.5% of consumers actually pay for a subscription to ChatGPT, Gemini, or Claude.</p><p><strong>3. AI products have a real marginal cost per user</strong></p><p>Classic consumer software like Facebook and Instagram costs almost nothing to serve one more user, so you can do plenty to grow virally and monetize later. For the previous generation of consumer apps, the model was free viral growth with ads as the monetization.</p><p>AI products are different. Every query burns inference compute, so adding free users adds real cost almost immediately, and the free growth hacks that worked for the post-dotcom apps don’t necessarily work anymore. Coupled with the second point, if consumers don’t pay for software, you can’t easily cover per-user costs with subscriptions either.</p><h4>Why Consumer AI Can Be Different from Traditional Consumer Software</h4><p>I’ve been using personal AI agents like Muse and Dots a lot lately, and I’m realizing how much more potential this consumer space has.</p><p>Some of my thoughts here: What set traditional software apart was that it solved productivity problems, like cutting the time it takes to write something by a few hours with a split-screen view. That matters for companies, which can measure it. For consumers it’s hard to measure and often doesn’t matter much. A product that makes file organization easier might be nice, but consumers usually won’t pay for it.</p><p>LLMs do more than boost productivity. They can take actions on your behalf and create outcomes. This ties back to why many agentic products are moving toward outcome-based pricing, rather than usage-based pricing or a typical flat subscription.</p><p>If there are problems consumers just want to get done, rather than get a little help with, that may be what opens people’s wallets. Consider Expedia, which shows you different flight options. A consumer AI product could research, track, and book the flight on its own, plan out the itinerary, and book other things along the way, with the user’s confirmation. It’s solving the problem by taking action, not just assisting.</p><p>Or take an app that reminds you to take your medicine or lists doctors and providers in your neighborhood. A personal health assistant that books the doctor’s appointment, follows up, and sets a recovery routine for you brings a different kind of value.</p><p>These all work because they let the product:</p><ol><li>Connect to and call different tools across services</li><li>Understand your need, instead of following a deterministic path set in advance</li><li>Not only generate language, but take action</li></ol><h4>Understanding What Consumers Get Excited About</h4><p>One point Anish made that stuck with me is that consumer AI products should feel like <strong>opening Christmas gifts like the iPhone in 2009</strong>. New products are flowing in, and some will stick while others won’t. But at a time like this, we want to see something exciting and new.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IDhOlKRPVlQ2BgS34IYtyQ.png" /></figure><p>I still remember unboxing the first iPhone I had, playing around with it, and being completely mesmerized. Consumer products have to bring that charm, not just a cost reduction or some metric-driven value. That’s something consumer AI can do, which means how you package and deliver it matters a lot for consumers too.</p><p>Maybe the real test for consumer AI isn’t whether it makes us more productive, but whether it makes us want to open the box.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2d89941f117c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What College Assignment Rubrics Taught Me About Writing LLM Evals]]></title>
            <link>https://medium.com/@taewoongseo/what-college-assignment-rubrics-taught-me-about-writing-llm-evals-d8a6d1fd5dc0?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/d8a6d1fd5dc0</guid>
            <category><![CDATA[ai-evals]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[llm-evaluation]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Tue, 29 Sep 2026 02:07:26 GMT</pubDate>
            <atom:updated>2026-09-29T02:07:26.575Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1lOPayxwnmQvN5W2pPKBbQ.png" /></figure><p>I remember as a student, whenever I got an assignment, the first thing I did wasn’t start writing, solving problems, or doing research. It was reading the grading rubric. Two reasons: I’d know what “success” (getting an A that term!) actually looked like, and I’d know exactly what to do to perform better, since there were usually several criteria, not just one. There were times when a teacher or professor graded my paper with just a score, like 85%. That left me confused, because it didn’t help me actually improve for next time. Was my research not deep enough? Was it not clearly structured?</p><p>I’m learning this concept holds true in LLM evals. When writing evals, it’s usually not enough to have a single pass/fail on the end result a pipeline outputs. Most LLM workflows are pipelines with multiple prompt chains, multiple agents, or model calls doing different things: classification, judgment, execution, generation. You need a grading rubric that covers all of it.</p><h3>What an Eval Case Consists Of</h3><p>An eval case consists of an input, an expected output, an actual output, a threshold, and an actual score.</p><p>An <strong>input</strong> is like the question or problem a student must answer. An <strong>actual output</strong> is like the student’s submitted answer. That gets graded against the expected output.</p><p>An <strong>expected output</strong> is like the answer key. For grading papers, some rubrics have set expected answers, especially in science or math. Is the answer “10”? Does it include the deterministic scientific fact it needs to? Similarly, for some LLM evals, correctness is deterministic or binary. For a healthcare prior authorization agent, did it identify the right CPT code? Is it 70551? For cases like these, scores are pass or fail, 0 or 1.</p><p>For a research paper rubric, grading tends to be less deterministic, focused on whether the content covers the right ground or lands in the desired tone. The same is true for some eval cases. Did the customer support response strike a polite but non-apologetic tone? For cases like these, scoring can fall on a scale between 0 and 1 (say, 0.8 for tone).</p><h3>What to Measure</h3><p>So what are you actually measuring? What criteria and rubrics should go into an LLM eval set for an AI solution or agent workflow?</p><p>This depends heavily on context, so the first step is <strong>figuring out what overall success looks like</strong> for the job you’re trying to do with AI.</p><p>Say there’s a retail return support agent that decides whether an item can be returned and processed automatically, or needs to be flagged for human review. The business goal might be cutting the cost of manual review, so you’d be tempted to track only whether a ticket was completed by AI. But there’s more risk than that. A ticket that should’ve gone to human review but gets auto-processed for return can be costly. Imagine someone tries to return a $5,000 couch, claiming it’s “not comfortable enough” after using it for months, and attempts to abuse the AI agent to force the return. The agent shouldn’t give in. It should flag it. In that case, the false negative rate (a return getting processed when it shouldn’t) needs to be in the rubric, likely with a stricter threshold.</p><p>Here are some grading rubric categories I’d include, along with a note of caution on thresholds:</p><p><strong>Task completion</strong></p><ul><li><strong>Completeness:</strong> Was the job done? Was it able to complete the task? This isn’t always aiming for 100%, since you may deliberately want the model to reject a task or escalate it.</li><li><strong>Refusal rate:</strong> Was the job refused by the model’s guardrails? Important to track. If it’s too low, guardrails may not be working.</li><li><strong>Consistency:</strong> An LLM call is non-deterministic, meaning the same input can produce different outputs. Is the output consistent?</li><li><strong>Tool call accuracy:</strong> Did it call the right tools for the given task?</li></ul><p><strong>Task accuracy</strong></p><ul><li><strong>Correctness:</strong> Was the job done correctly? Did it approve the case it should have approved? This is the most basic, yet hardest, blocker to launch. If correctness is poor, there’s little point measuring anything else.</li><li><strong>Precision:</strong> Of all the positives the model flagged, how many were actual positives? This optimizes for avoiding false positives. This matters most when including a non-positive case is costly, like a fraud detection agent flagging a legitimate transaction as fraudulent and blocking a customer’s card.</li><li><strong>Recall:</strong> Of all actual positives, how many did the AI catch? This matters most when false negatives are more costly, like the return-flagging agent example above.</li><li><strong>Factuality/groundedness:</strong> Is the response actually supported by references, sources, or retrieved context (RAG)?</li></ul><p><strong>Tone/information</strong></p><ul><li><strong>Coherence/fluency:</strong> Especially for generated, user-facing responses, this bar matters.</li><li><strong>Tone:</strong> Did it hold the tone set in the system prompt?</li><li><strong>Safety/leakage:</strong> Does the answer avoid leaking PII or violating safety guidelines? This threshold should probably sit close to 100%.</li></ul><p>This isn’t an exhaustive list, and not every AI solution needs all of these. But these are the angles worth thinking through.</p><h3>Then Who Grades It?</h3><p>In college, depending on the assignment, grading fell to a TA (my school called them a GSI), the professor, or an automated grader for things like math that could rely on exact match.</p><p>It’s similar for LLM grading. You can have a human grade it, or an LLM act as judge. Typically, both get used.</p><p>Early on, I think it’s important for humans to review, especially when it comes to judging whether an agent classified something correctly or made the right call.</p><p>Once you scale up and have more evals, an LLM-as-judge can take over scoring more cases against the same rubric. But every so often, a human should grade a sample of what the LLM graded, cross-check it, and recalibrate the rubric if needed, the same way a professor or TA occasionally double-checks an automated grading system.</p><h3>A Grading Matrix, Not a Final Grade on a Report Card</h3><p>It’s not just an A- or a B+ on a report card. What you actually need is a grading matrix that shows what you did well and where you fell short. The same goes for LLMs. They need to know what they’re failing at and what they’re doing well. If completeness is crossing the 95% threshold but accuracy sits at 80%, below threshold, you know you need to harden the architecture or prompt to get the agent right more often. If precision is climbing but recall is dropping, you know you’re letting too many issues slip through as false negatives.</p><p>Once you think about it this way, evaluating and improving LLMs becomes more structured, the same way a good grading rubric in college helped you actually grow.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d8a6d1fd5dc0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What It Takes to Embed with Customers on a Forward-Deployed Team]]></title>
            <link>https://medium.com/@taewoongseo/what-it-takes-to-embed-with-customers-on-a-forward-deployed-team-1ff2399d7ea2?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/1ff2399d7ea2</guid>
            <category><![CDATA[deployment]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[customer-success]]></category>
            <category><![CDATA[ai-agent]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Sat, 29 Aug 2026 18:35:18 GMT</pubDate>
            <atom:updated>2026-08-29T18:35:18.870Z</atom:updated>
            <content:encoded><![CDATA[<p>With the rise of roles like FDEs, FDPMs, and deployed strategists, especially alongside the growth of AI workflows for businesses, the term “embedding with customers” gets thrown around a lot. But what does that actually mean, and how do you do it well?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*090CK7lBPyvUy4jUIFR16w.png" /></figure><p>I feel like “embedding in a customer’s org” is very much a consulting concept. I had an internship in consulting and considered pursuing it full time. The job was literally being on the client’s site, sitting with customers for hours, talking to them, and understanding their business processes to come up with improvement plans. But what actually goes on during that time to drive adoption, especially when your job is to ship a product instead of a slide deck?</p><p>I’ve been living a harder version of this myself, especially with healthcare customers, who tend to be skeptical of digital transformation, operate under heavy regulation and compliance, and move through long deal and adoption timelines. It’s not as simple as writing a good spec from one or two customer/stakeholder interviews, executing against it, and giving weekly updates. It’s rarely that smooth.</p><p>Here are some practices I’ve picked up along the way, through plenty of trial and error.</p><h3>#1: Spend the First Few Weeks Just Being a Good Observer</h3><p>This is a practice I learned during my consulting internship. One summer in college, I was tasked with helping a large electronics retailer digitally transform its inventory management. I assumed the first set of tasks would involve analyzing inventory data, talking to customers about pain points, and doing some modeling. It turned out to be a lot more “passive” than that.</p><p>It was purely sitting at a few different retail stores of that company and observing how they operated, for the whole day, while the shop was open. I logged everything on a sheet of paper, paying close attention to inventory operations: who did what, what moved from where to where. At first this felt tedious. I remember thinking, “why can’t we just ask the ops managers instead of observing them?” I did that for the first two weeks of the study and thought it was a waste of time having consultants sit in silence at a shop.</p><p>I later realized there’s no better way to diagnose the current state and identify real problems than <strong>being in the operation and observing the business process directly</strong>. Interviews aren’t always reliable, and data doesn’t capture what’s happening behind the scenes, including the frustration that comes with it.</p><p>The same is true if you’re deploying an AI agent for, say, handling a health payer’s prior authorization requests. You still need to analyze the current business process to build something that automates and solves the right problem, but <em>what</em> is the problem, really? The most accurate diagnosis comes from careful, objective observation of the people handling these calls and requests: the mild frustration on their faces, the fields they fill in, what causes delays and bottlenecks, the conversations they have along the way.</p><h3>#2: Understand the Ask Behind the Ask</h3><p>When you’re embedded with a customer trying to understand what they actually want, it could be as simple as them asking you to build something. Take the prior authorization example: an insurer customer might ask you to build code that auto-classifies each healthcare provider operations request into buckets based on certain keywords. But you have to be careful not to just be a tech vendor executing literal requests.</p><p>A customer is an expert in their current workflow, but they can’t always envision what’s possible with your product, nor do they fully understand the implications of what they’re asking for. So you have to understand the <strong>ask behind the ask</strong>.</p><p>In this case, the insurer asked for deterministic keyword-based sorting, but what they <em>actually</em> want is to cut down the time spent reviewing and classifying each request. The <em>how</em> they proposed isn’t necessarily the best practice. That part is on you to figure out. Maybe a lightweight LLM classifier is more accurate than exact keyword matching, since keyword matching alone tends to produce a high escalation rate. <strong>Your job is to understand the need, not take their proposed solution literally</strong>.</p><h3>#3: Sell on Metrics, Get Buy-In</h3><p>This ties directly to the point above. Once you understand the ask behind the ask, at some point you need real buy-in from the customer, often from executives. Depending on the deal, this might happen pre-sales or post-sales, but either way, your goal is to earn the trust needed to fully embed and drive adoption.</p><p>The key is to <strong>sell on metrics or goals they actually care about</strong>. If you did the observation work right, you’ll already have a sense of what matters to them. From there, you can set up interviews with the stakeholders who manage these teams and their metrics. For the prior authorization (PA) team, that might be the head of PA, whose success is measured by something like percentage of requests processed.</p><p>Whoever is driving the adoption initiative, usually someone senior, will have a clear metric in mind. Your pitch should build toward that. How does this workflow move that metric? Is there proof or a projection behind it? What concerns or skepticism have come up about automation along the way? Those should all be part of the pitch too.</p><p>It’s tempting to lead with the mechanics of the solution, especially when you’re excited about the technology. But senior leadership cares <strong>whether it delivers the cost savings or metric improvements they’ve projected</strong>, not how the model works under the hood.</p><h3>#4: Strong Documentation Is King</h3><p>Successful embedding means the rest of the project has to be maintained well.</p><p>Coming from startup and lean environments, I wasn’t used to heavy documentation, and I used to think it slowed things down. But in customer-facing deployments as a FDPM/FDE/Deployed Strategist, documentation is essential for alignment and for leaving a clear record.</p><p>A project charter or timeline should be drafted early, during the scoping and observation phase, to set expectations. Customers often don’t understand what it takes to build what they’re asking for, and that’s where scope creep comes from. You have to be explicit from the start about what <strong>you will and won’t build</strong>. Standard in-scope and out-of-scope documentation, listing user stories and requirements, goes a long way here.</p><p>Once you move into documenting the actual spec, it’s just as important to keep mapping details and aligning with the customer as you go. Using the prior authorization example, I’d typically build a flow chart of the entire workflow I’m imagining, from how an authorization request comes in from the provider to the insurer, whether we’re building that intake ourselves, through a classifier agent, and so on. It doesn’t need to be technical for the customer, but it should be detailed enough for them to understand the mechanics and <strong>confirm the workflow matches their expectations</strong>. That flow chart becomes the map you use to communicate regularly, often weekly, and it becomes the blueprint that drives the conversation: here’s what we’re building this week, here’s what’s next.</p><p>Sitting with customers, embedding in their world, can feel foreign for someone who had been sitting behind computers building products or drawing out roadmaps. But once you understand what you’re actually trying to get to, it becomes a lot clearer what conversations you need to have and what work needs to happen to get there.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1ff2399d7ea2" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I Built a Solo Product Team with Claude Code Slash Commands]]></title>
            <link>https://medium.com/@taewoongseo/how-i-built-a-solo-product-team-with-claude-code-slash-commands-e304a4a57e53?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/e304a4a57e53</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[ai-development]]></category>
            <category><![CDATA[claude-code]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Wed, 01 Jul 2026 01:23:08 GMT</pubDate>
            <atom:updated>2026-07-01T01:23:08.098Z</atom:updated>
            <content:encoded><![CDATA[<p>As an “idea guy,” the release of Claude, Claude Code, and Codex felt monumental. I could finally build products, PoCs, and apps just from ideas and plans. Feed in my idea, have Claude build it out. Simple enough, I thought.</p><h3>The Problem With Ad-Hoc AI Development</h3><p>My first attempts followed the same pattern: open Claude, describe the feature as detailed as possible — user stories, acceptance criteria, the works — get the code, paste it in, and iterate.</p><p>This didn’t get far. There was no memory between sessions, no structure, no audit trail. It was fast at first but got chaotic quickly.</p><p>After enough Reddit posts and YouTube rabbit holes, the lesson became obvious: Claude is only as structured as you are.</p><h3>Rethinking the Role</h3><p>What really forced me to think differently was building a personal finance app — LLM-powered transaction categorization, PDF parsing, data pipelines. Complex enough that hoping for the best wasn’t a strategy.</p><p>The insight was this: solo developers wear every hat — PM, engineer, tech lead, QA. In real teams, those roles hand off to each other through artifacts: tickets, PRDs, code reviews.</p><p>So I built a set of <strong>slash commands</strong> that mirror those roles exactly. Each command owns one responsibility, takes a defined input, and produces a handoff artifact for the next stage.</p><p><strong>Slash commands</strong> in Claude Code are markdown files — predetermined instructions you invoke manually at your own pace. They’re loaded only when called, not sitting in context permanently. I think of them as product team folks with detailed instructions who can call on demand.</p><h3>The Pipeline</h3><p>This is the high-level slash command structure I developed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J4XBQMkJoXEQDw2xaPtmZQ.png" /></figure><h4><strong>Stage 1: /create-issue — The PM Brain Dump</strong></h4><p>In mid-development, my ideas always evaporate. This command is meant to capture them.</p><p>I throw in a rough thought, it asks minimal clarifying questions, then creates a Linear ticket and saves a local markdown file to .claude/backlog/.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6q8EEEzNscDQ3uT4Na8H9A.png" /></figure><p>The reason why I write it to both Linear and a local file is that Linear is for status tracking, but the local file is what Claude actually reads — no API call needed, available in the same repo, survives across sessions.</p><h4>Stage 2: /explore-feature — PM and Tech Lead in the Same Room</h4><p>The real problem I was hitting wasn’t bad code — it was jumping to code before understanding the full picture. Dependencies I hadn’t thought about, edge cases I’d missed, scope that was still fuzzy.</p><p>This command is that early planning conversation: it reads the relevant files, maps out integration points, and surfaces ambiguities. Crucially, it’s a back-and-forth loop — it asks me questions, I answer, it digs deeper — until there’s genuinely nothing left unresolved.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DlhrmE-RCJcE375H8q1jrg.png" /></figure><p>When the loop ends, it writes .claude/context/&lt;ticket&gt;.md: a structured artifact capturing every decision made. This is what makes the pipeline session-independent — the next command reads this file, not the conversation.</p><h4>Stage 3: /write-prd — Alignment in Writing</h4><p>Every team has the “I thought we agreed on X” problem (Solo or not).</p><p>This command reads the context file from Stage 2 and formalizes everything into a PRD — only what was confirmed, nothing added. It breaks the work into ordered tasks with emoji status tracking, so the next stage has a precise, executable plan rather than a vague description.</p><p>It also pushes the full PRD as the Linear ticket description that acts as one source of truth.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1_tJQjy9M8mZwzLBYvYrUA.png" /></figure><h4>Stage 4: /execute-prd — The Engineer Who Follows the Plan</h4><p>Claude going off-script is a real problem. Implementing things that weren’t discussed, adding “nice to have” scope, skipping steps. This command enforces discipline: read the PRD, execute one task at a time, update the status emoji after each, stop and surface a blocker explicitly if something’s wrong.</p><h4>Stage 5: /review-code — The Senior Engineer Who Wasn’t in the Room</h4><p>Self-review is a bad review. This command reads CLAUDE.md first to load the architecture rules, then diffs the changes and flags issues across three severity tiers:</p><ul><li>CRITICAL — will cause bugs or data loss</li><li>WARNING — violates architecture rules</li><li>SUGGESTION — style or improvement</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1YUc-8aQhy-xWeu3uxSCDQ.png" /></figure><h4>Stage 6: /commit and /deploy — Closing the Loop</h4><p>These are two separate commands intentionally. /commit is local and reversible — it creates a checkpoint, writes a conventional commit message, and stages only specific files (never git add -A, never secrets). /deploy is the public, irreversible step: push to remote, open a PR, update the Linear ticket to In Review.</p><p>Separating them means review-code can sit cleanly between the two. You can commit incrementally through a session without shipping anything, then deploy only when you’re satisfied.</p><h3>What Makes It Work Across Sessions</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_7tyi4SVK6OLNRjaqymFBQ.png" /><figcaption>My setup in VSCode</figcaption></figure><p>These separate slash commands are like having different individual contributors. So I needed to make sure these commands work as a team together:</p><ol><li>CLAUDE.md is the always-loaded foundation — architecture rules, data flow, file map, forbidden patterns. Every slash command inherits this context automatically. It’s the onboarding doc for Claude, and as a side effect, it turned out to be useful for me too.</li><li>Local backlog files are how commands talk to each other across sessions. Each ticket has a corresponding .claude/backlog/MYF-XX.md that Claude can read directly, without hitting the Linear API.</li><li>Context files are how exploration survives into a new session. /explore-feature writes .claude/context/&lt;ticket&gt;.md when it finishes. /write-prd reads that file first. The two commands can run days apart and the handoff is clean.</li></ol><h3>Where This Is Going</h3><p>The next iteration for my development team is multi-agent patterns. The distinction: slash commands run sequentially in a single Claude instance — one session, one context window. Multi-agent means spinning up parallel Claude instances, each with their own context, coordinated by an orchestrator.</p><p>Multi-agent adds coordination overhead, so it’s worth it only when the work is genuinely parallel and the codebase is large enough to benefit.</p><h3>Closing</h3><p>I didn’t set out to build a whole product management system. I set out to stop losing context between Tuesday and Thursday. This ended up being a pretty practical setup. Seven commands, each with one job, chaining into each other through files. It’s not perfect and I’m still tweaking things, but it’s the closest I’ve gotten to feeling like there’s actually a process behind how I build.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e304a4a57e53" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Software Isn’t Dead. But the Winners Will Look Different.]]></title>
            <link>https://medium.com/@taewoongseo/software-isnt-dead-but-the-winners-will-look-different-9785407d6cd7?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/9785407d6cd7</guid>
            <category><![CDATA[agentic-ai]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[saas]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Mon, 01 Jun 2026 02:28:02 GMT</pubDate>
            <atom:updated>2026-06-01T02:28:02.087Z</atom:updated>
            <content:encoded><![CDATA[<p>For the past year or so, a familiar panic narrative has been circulating in tech circles: SaaS is over. AI agents are eating software. Salesforce is a dinosaur. The stocks told a story too. Salesforce (CRM) shares had fallen roughly 33% in 2026 heading into this week, weighed down by investor fears that AI would replace the company’s core business.</p><p>It’s an understandable reaction. Agents are genuinely impressive, and the anxiety about what they mean for traditional software companies is not irrational. But I think the narrative conflates two different questions: are agents better? and does that mean software companies disappear? The answer to the first is mostly yes. The answer to the second is more complicated and more interesting.</p><h3>Why Agents Are Actually Superior</h3><p>To make the case that software companies aren’t <em>doomed</em>, you first have to take seriously the case that agents are a real step forward. Because I think they are.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZoFMtjjGOyXtRsv3rfijWw.png" /></figure><p>Traditional B2B SaaS was built around a seat-based model, and the value it delivered was always somewhat fuzzy. Your company bought a CRM to manage deals, a knowledge management tool to organize information, a project tracker to coordinate work. But measuring what any of that actually produced was hard. “We saved X hours” ended up in a lot of investor decks, including ones I’ve helped put together, but it was always a soft metric. Productivity support is difficult to quantify. The relationship between the tool and the outcome was indirect.</p><p>But agents are different in a meaningful way. They don’t support the work — they <em>do</em> the work. An agent doesn’t give a sales rep a better interface for managing a pipeline; it sends emails to strong leads and closes deals on their behalf. It doesn’t help a customer success team triage tickets; it responds to and resolves them, with a measurable containment rate. That’s a genuinely different value proposition, and it’s one that’s easier to see, easier to justify in a budget conversation, and easier to renew.</p><p>So yes. I would argue agents are better at <strong>delivering measurable outcomes</strong> than a lot of what traditional SaaS was doing.</p><h3>But Who Actually Wins Here?</h3><p>If AI is the future of software products, the question is: who would win the game?</p><p>One answer is foundation model companies: OpenAI, Anthropic, Google. But that’s a separate, capital-intensive landscape, one that requires R&amp;D at a scale that makes it difficult to break into. The real action is in the layer above: companies building agents on top of those models.</p><p>And here’s where it gets interesting. If you’re building an agent-based product on top of commodity model infrastructure (Opus, GPT), what’s your actual moat as a company?</p><h4>Moat #1: The Ability to Sell</h4><p>Agentic products still need to be sold, scoped, and trusted by enterprise buyers. And the stakes are higher than they were in traditional SaaS. When you hand an agent access to your CRM, your inbox, your customer communication channels — you’re not just buying software, you’re making a significant bet on the company behind it.</p><p>That means <strong>brand, relationships, and sales execution matter enormously</strong>. And this is an area where some traditional SaaS companies may have a real, underappreciated edge. A company like Salesforce has account executives who know their buyers deeply, have navigated complex procurement cycles, and have earned institutional and enterprise trust over decades. That’s not nothing. It’s a muscle that takes a long time to build.</p><p>Well-known founders and early-stage startups with <strong>strong reputations in a specific vertical</strong> have a version of this too — founder-led sales, credibility with a particular buyer community. But the common thread is that distribution and trust are moats. In an era of agentic products, the “salesforce” (lowercase) may be the most underrated competitive advantage of all.</p><h4>Moat #2: Forward Deployment and Customer Embedding</h4><p>Agents are not out-of-the-box products. Unlike a self-serve SaaS tool where you may hand over a login and a user guide, deploying an agent requires a deep understanding of a customer’s specific workflows, their existing tool stack, their team structure, their edge cases. You’re not selling software. <strong>You would be rebuilding how a company operates</strong>, with software as the instrument.</p><p>This has given rise to a new kind of role across AI companies: Forward Deployed Engineers, Forward Deployed PMs, deployed strategists. The job is part “consultant”, part product manager, part implementation engineer, part account manager. These are people who sit at a client’s office, map their current workflows, push back when a proposed design doesn’t fit, and build something that actually works in that specific environment. It’s <strong>deeply human, deeply relational work</strong> — and it’s nothing like a traditional job of triaging features and simply writing specs.</p><p>The companies that build this capability, the ability to embed with customers, iterate quickly in their environment, and become genuinely indispensable to how they operate, will be very hard to dislodge. This is a stickiness that goes well beyond switching costs in the traditional sense. It’s organizational memory, embedded in another company’s workflows.</p><h3>Back to Salesforce</h3><p>Which brings us back to where we started. This week, Salesforce stock <em>jumped</em> 7.6% after a blowout earnings report — $3.88 in adjusted EPS against a Wall Street expectation of $3.12, with $11.13 billion in revenue, representing 13% year-over-year growth — driven in large part by momentum from Agentforce, its agentic AI platform.</p><p>The company that was supposed to be the cautionary tale of the AI disruption era just posted one of its strongest quarters in recent memory. Not because agents aren’t real, or because the old SaaS model survived intact. But because Salesforce had something most startups don’t: decades of enterprise relationships, a battle-tested sales organization, and the resources to build a forward deployment practice at scale.</p><p>Not all B2B SaaS companies are <em>dead</em>. The model is just changing — from selling seats to delivering outcomes, from shipping features to embedding in workflows. The companies that survive and thrive will be the ones that figure out how to do both of those things well. That requires a different kind of product, a different kind of team, and a different definition of what it means to build something that sticks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9785407d6cd7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[We Were Writing the Same Release Notes Three Times, So I Built Something to Fix It.]]></title>
            <link>https://medium.com/@taewoongseo/we-were-writing-the-same-release-notes-three-times-so-i-built-something-to-fix-it-bbcf0c338887?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/bbcf0c338887</guid>
            <category><![CDATA[prompt-engineering]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[product-management]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Wed, 29 Apr 2026 21:51:37 GMT</pubDate>
            <atom:updated>2026-04-29T21:51:37.428Z</atom:updated>
            <content:encoded><![CDATA[<h3>We Were Writing the Same Release Notes Three Times, So I Built Something to Fix It.</h3><p>As a product manager at a digital health platform, one of the recurring tasks I deal with is documenting product releases. Every time we ship something new, the same information needs to end up in at least three places: a product update log in our user guide/documentation, a newsletter email to our users, and a rotating set of feature tips on our login page.</p><p>Each of these has a different format, a different tone, and a different audience.</p><ul><li>User guide release note page: Needs to be structured and role-specific — grouping features by who they’re for and written in a way that’s practical and easy to scan.</li><li>New feature email: Needs to be warmer and more benefit-driven, the kind of writing that makes someone actually want to read it.</li><li>Login page tips: Needs to be shorter, punchier, designed to make someone who’s logging in at 9am discover something they didn’t know the product could do.</li></ul><p>The problem is that all three are based on the <strong>same source material</strong> — the same GitHub PRs, product issue description, the same internal documentation, the same user guides our writing team produces. The information doesn’t change. What changes is how you frame it, what you emphasize, and how you write it up.</p><p>For a while, we just did this manually. It works, but it’s slow, and the quality is inconsistent. By the time you’re writing the third version of something, you’re not giving it the same attention you gave the first. Features end up under-described or described in a way that doesn’t quite fit the channel.</p><p>So for our internal hackathon, I decided to build a tool to handle the repurposing work.</p><figure><img alt="Product Updates Generator Overview" src="https://cdn-images-1.medium.com/max/1024/1*S3dYw4z6s6V7e0-20vnL4g.png" /></figure><p>The idea was simple: a small web app where you add the features you’re releasing, paste in whatever reference material you have for each one, and check which content channels each feature belongs in. Hit generate, and it produces a first draft in the right format and tone for that channel. Three channels, three separate outputs, all from the same source material.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9C-6Kh7v-MCWLXKNMHD4BA.png" /><figcaption>The user flow of the Product Updates Generator</figcaption></figure><h3>Building It Without Knowing How to Build It</h3><p>I should be upfront about something: I’m a product manager. I understand systems and I can generally read code, but I don’t sit down and write a Node.js backend from scratch on a regular basis.</p><p>For this project, I used Claude — both through the browser for planning and architecture conversations, and through Claude Code in the terminal, which can read directly into your codebase and make edits in context. The combination turned out to be a fairly natural way to work. Browser Claude for thinking through problems and making decisions upfront, Claude Code for actually writing and modifying files once the direction was clear.</p><p>The planning conversation was where I spent the most time before writing a single line of code. I wanted to make sure the architecture made sense before jumping in, so I framed it the way I’d frame a conversation with a senior engineer — giving context about what I was trying to build and what constraints I was working with, and asking for an opinion rather than just instructions.</p><p>The exchange went roughly like this:</p><blockquote><strong><em>Me:</em></strong><em> I want to build a tool where I can input a list of product features — each with a name and a block of reference content — and generate three different types of release note content from them: a user guide entry, a newsletter email, and a product tip slide. The user should be able to check which features go into which output type, reorder them by priority, and generate each artifact separately. I want to use the OpenAI API for the generation. What’s the simplest architecture that would actually work here?</em></blockquote><blockquote><strong><em>Claude:</em></strong><em> A plain HTML/CSS/JS frontend — no framework needed — talking to a small Node.js Express backend that handles the OpenAI API calls. The backend is necessary because you can’t safely expose your API key in frontend code. You’d have one POST endpoint that receives the artifact type and the list of checked features, builds a prompt, calls the API, and returns the result. All the state — which features exist, what content they have, which boxes are checked — lives in the frontend in a JavaScript array. The backend doesn’t need to know anything about state.</em></blockquote><blockquote><strong><em>Me:</em></strong><em> That makes sense. What files do I actually need?</em></blockquote><blockquote><strong><em>Claude:</em></strong><em> Four files: </em><em>server.js for the backend, and inside a </em><em>public/ folder: </em><em>index.html, </em><em>style.css, and </em><em>app.js for the frontend. Your </em><em>.env file holds the API key and never gets committed to git.</em></blockquote><p>That framing — one endpoint, state in the frontend, four files — gave me something concrete to build toward.</p><p>From there, most of the actual development happened through Claude Code in the terminal. I’d describe what I wanted, it would write or modify the relevant files, I’d open the browser and test, notice something was off, and describe the problem.</p><p>A good example of how this actually goes: I asked for drag-and-drop reordering and it built it on the PR input cards on the left side of the UI. That wasn’t what I wanted — I wanted it on the matrix rows on the right, so users could reprioritize features right before generating.</p><figure><img alt="Before and after comparison of the reordering feature" src="https://cdn-images-1.medium.com/max/757/1*I147AKHpRLirthGsX-lUOg.png" /></figure><p>One clarification and it moved. That kind of iteration — build, test, notice, correct — is pretty representative of the whole process.</p><h3>Getting the Prompts Right</h3><p>This is where most of the actual work went, and where the most interesting decisions happened.</p><p>The first version of the prompts was pretty generic — describe the feature, write it in the style of a user guide, here’s an example. The output was fine but not quite right. The model was pulling in too much technical detail from the source material. A PR description might explain why a certain architectural decision was made, or how the feature handles an edge case in the codebase — none of which is useful in a release note. What we want is the user-facing benefit: what can someone do now that they couldn’t do before, and why does that matter to their workflow.</p><p>The fix was adding an explicit section to each prompt that I called HOW TO READ YOUR INPUT:</p><pre>HOW TO READ YOUR INPUT:<br>You will receive content from multiple sources — GitHub PR tickets, user guide drafts, or both.<br>- FROM GITHUB PR TICKETS: Ignore technical implementation details, code decisions, and developer<br>  justifications. Only extract: what the feature does for the user, what problem it solves, and<br>  any user-facing behavior described.<br>- FROM USER GUIDE DRAFTS: This is your richest source. Extract: feature descriptions, use cases,<br>  user benefits, and any specific examples of how researchers or coordinators would use it.<br>- NEVER write about: how the code works, why a technical decision was made, or implementation<br>  tradeoffs.<br>- ALWAYS write about: what the user can now do, why it matters to their research workflow, and<br>  concrete examples of the benefit.</pre><p>This made a significant difference. The model started treating PR content and user guide content differently, which is exactly what a human writer would do — you skim the PR for context, but you write from the user guide.</p><h3>Few-Shot Examples</h3><p>Style rules help with structure, but what really brings the output in line with what we actually want is few-shot examples — showing the model real before-and-after pairs rather than just describing what good looks like.</p><p>After the style rules in each system prompt, I added a section with example inputs and their ideal outputs. The examples came from taking real feature release note content we’d already documented manually, pairing them with the raw source material we would have fed in, and using the hand-edited final version as the target output.</p><p>For the user guide prompt, an example pair looks something like this:</p><pre>EXAMPLE INPUT:<br>FEATURE: Survey Dictionary adjustments<br>CONTENT: This updates the survey dictionary export. Added a &quot;Published&quot; flag to the export which<br>indicates whether this is the current published version. WebViewSteps are now included in the<br>questions list. InstructionStep content items are now included in the dictionary since they can<br>have a result.<br><br>EXAMPLE OUTPUT:<br>For Data Managers<br>* Know which survey version is published to the project. The __survey dictionary export__ now<br>  includes a Published column to show whether this particular survey and version is published to<br>  the project. WebView and instruction steps are also now included, giving you a more complete<br>  codebook for downstream data use.</pre><p>A few things this example teaches the model beyond what the rules say:</p><ul><li>The feature name “Survey Dictionary adjustments” is a raw developer title. The output rewrites it into something a user would actually understand.</li><li>The output is one sentence of context followed by one sentence of detail.</li></ul><p>Three to four real examples per prompt felt like roughly the right number. More than that and the model seemed to startpattern-matching too literally to the examples rather than generalizing from them. The quality of the examples matters more than the quantity — <strong>one well-chosen example that covers an edge case</strong> is more useful than three examples of the same type of feature.</p><h3>What Actually Changed</h3><p>Before the tool, drafting the user guide entry, the email, and the product tips for a release would take ~1–2 hours each — and that’s not counting the back-and-forth review cycles where you’re comparing versions and making sure the same feature isn’t described differently across channels.</p><p>Now each artifact takes about 30 seconds to generate. The output isn’t final — you still need to read it, adjust the wording, make sure the tone is right for the channel — but the first draft is already in the correct format and structure. The editing pass takes maybe 15 to 20 minutes instead of a couple of hours.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6fVolepOY3rQnXRYdkTnZw.png" /></figure><p>The less obvious benefit is consistency. When you’re writing three versions manually, you make different emphasis decisions each time, often without realizing it. One channel gets a better explanation of a feature than another because you happened to think of a good example on the third pass. With the tool, all three versions start from the same source material and the same prompt, so the coverage is more even even before you start editing.</p><h3>Next Steps</h3><p>Taking this further, I could build a small prompt management interface — a place where you can edit prompts, add examples, and test changes against real inputs. For an internal tool, this is probably more than what we need. But for something I’m productizing — where multiple teams or multiple companies are using the same underlying tool with different style preferences — it’s the right architecture. The prompts become a product surface in their own right, not just a detail inside the server code.</p><p>For the specific problem of repurposing the same content across multiple channels, language models are genuinely well-suited. The source information is the same. The transformation rules — different tone, different structure, different emphasis — are learnable from examples. And the volume is low enough that even small improvements in consistency and speed add up meaningfully over a release cycle.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bbcf0c338887" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Healthcare PM on How AI Is Rewriting Healthcare’s Business Model]]></title>
            <link>https://medium.com/@taewoongseo/a-healthcare-pm-on-how-ai-is-rewriting-healthcares-business-model-4e446eaa2437?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/4e446eaa2437</guid>
            <category><![CDATA[healthcare-technology]]></category>
            <category><![CDATA[jevons-paradox]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[digital-health]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Wed, 04 Mar 2026 16:51:49 GMT</pubDate>
            <atom:updated>2026-03-04T16:51:49.089Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nnXsswlowLZopToAAA2rnQ.png" /></figure><p>As a Product Manager building a healthcare platform for clinical trial and digital health researchers, as well as patients who self-monitor symptoms and treatments, I spend most of my time thinking about care workflows for patients and health studies: collecting data from patients, organizing admin tasks between study coordinators and patients, and enabling patients to view their health data and trends.</p><p>Although there are great services out there that make parts of care more accessible and efficient, it still feels like healthcare in the U.S. is framed as an industry where increased consumption is seen as failure.</p><p>I recently came across a fantastic article by a16z called <em>“</em><a href="https://a16z.com/infinite-healthcare-whats-it-worth/"><em>Infinite Healthcare: What’s It Worth?</em></a><em>”</em> written by Jay Rughani, Jane Rhee, and Julie Yoo. My piece is a short summary of some of its key ideas, along with a few of my own thoughts as someone building in this space and seeing the shift toward new care powered by AI.</p><h3>The Reactive Care Problem</h3><p>The first major point is that healthcare is heavily focused on reactive, retroactive care, where high usage often indicates failure and high costs. The article highlights that “today’s healthcare system is dominated by reactive care delivered after something has gone wrong, plus the administrative machinery required to ration access.”</p><p>This is quite counterintuitive compared to many other industries, where high usage should be celebrated.</p><p>Because doctors, surgeons, and clinicians are <strong>scarce resources</strong> who provide reactive services and interventions, medical expenses are structured around high fee-for-service rates.</p><p>Whereas there is arguably <strong>much more value in proactive and preventative care</strong>. The article makes the point that proactive care generates significant consumer surplus and positive externalities for society by reducing hospital inpatient days, increasing work productivity, adding to economic output, and increasing tax revenue as people work and live longer.</p><h3>AI and the Rise of Proactive Care</h3><p>AI-driven cancer diagnostics, AI-enabled health coaching, AI assistants handling subclinical admin tasks, sleep trackers, meal logging, and self-monitoring apps for symptoms and treatments are all services that have become significantly more powerful with the development of AI, LLMs, and better analytics.</p><p>When consumers use these services, the value add can be massive.</p><p>But there’s a complexity: if consumption rises while pricing structures remain the same, it could still lead to higher overall medical expenses.</p><h3>The Jevons Paradox in Healthcare and Access-Based Business Models</h3><p>This is where the article provides interesting insights about the business models healthcare should move toward.</p><p>The authors describe two tiers of services:</p><ol><li><strong>Information-driven work</strong>: “clinical evaluation, diagnostic reads, psychotherapy, triage.”</li><li><strong>Physical interventions</strong>: “procedures, surgery, hands-on treatment.”</li></ol><p>Information-driven tasks are becoming cheaper, more accessible, and more efficient with technology and AI. As their marginal cost decreases, the business model may shift <strong>toward selling “access”</strong> rather than charging per individual service.</p><p>This connects to the <a href="https://www.a16z.news/p/why-ac-is-cheap-but-ac-repair-is"><strong><em>Jevons Paradox</em></strong></a>, where “as a service gets more affordable, we tend to consume dramatically more of it, and business models inevitably reorient from metering units to selling access.”</p><p>We’ve seen this shift from artists selling CDs or albums in stores or on iTunes to subscription-based access through Spotify and YouTube Music. The same happened with DVDs and movie tickets moving toward Netflix and Hulu. Healthcare may be facing a similar paradigm shift.</p><p>Some services will likely remain fee-for-service, especially those tied to physical diagnosis or treatment. However, even those costs could decrease as treatments become more accurate and effective.</p><p>Other services may fit better into alternative models. a16z mentions a few:</p><ul><li><strong>Per workflow:</strong> charging for a multi-step set of tasks. Many AI-enabled admin workflows could be priced this way instead of being bundled into singular service fees per clinic visit.</li><li><strong>Per episode:</strong> pricing for a defined treatment period rather than charging for each individual treatment within that period.</li><li><strong>Per patient:</strong> a model offering bundled or unlimited access to certain services.</li></ul><p>Under these models, increasing care consumption would not necessarily drive uncontrolled cost growth. Instead, it could incentivize better and more continuous care.</p><h3>Technology Refocuses the Core Value</h3><p>Technology is brilliant in that it pushes industries to focus on the <strong>core value</strong> of their services.</p><p>Sales SaaS tools liberated sales reps and account executives from manually organizing leads, scheduling calls, and taking notes, allowing them to focus more on building relationships and closing deals. Productivity tools help students and workers spend less time finding scattered information and more time getting actual work done.</p><p>Similarly, many AI-driven care services are making information work — diagnostic reads, admin tasks, scheduling, evaluation — faster and more efficient. This allows clinicians to <strong>focus on delivering higher-quality interventions, surgeries, and treatments</strong>.</p><p>This shift operates not only at the service level but also at the business model level. As consumption increases and the economic unit cost decreases, powered by technology and , models may move toward access-based structures.</p><p>This creates a <strong>positive feedback loop</strong>: as the cost of proactive care decreases, consumption increases. As consumption increases, more companies and providers focus on offering efficient, preventative care powered by digital health. That increased competition and scale can further reduce costs, while reserving resource-intensive physical interventions for those who truly need them.</p><p>Clinicians, in turn, can allocate their time more effectively instead of spending unnecessary hours on manual note-taking, organizing lab results, or performing repetitive data entry. Technology handles what it can do better, while clinicians focus on high-value physical care.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4e446eaa2437" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Opinionated Products with Best Practices Drive User Success]]></title>
            <link>https://medium.com/@taewoongseo/opinionated-products-with-best-practices-drive-user-success-0006ed807b55?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/0006ed807b55</guid>
            <category><![CDATA[user-experience]]></category>
            <category><![CDATA[customer-success]]></category>
            <category><![CDATA[user-onboarding]]></category>
            <category><![CDATA[customer-support]]></category>
            <category><![CDATA[product-management]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Tue, 17 Feb 2026 01:21:13 GMT</pubDate>
            <atom:updated>2026-02-17T01:21:13.395Z</atom:updated>
            <content:encoded><![CDATA[<p>Whether it’s a simple journal-logging app or a full CRM system, your product should have some degree of <em>opinion</em> about how users set things up or use it.</p><p>It could be something lightweight — <em>“To stay consistent, we recommend keeping your daily journal under 300 words.”</em> Or more structured, like <em>“Create these buckets to track sales leads and add a status field here for better visibility.”</em></p><p>These are essentially best practices you want users to follow to:</p><ul><li>Fully explore and maximize your product’s capabilities</li><li>And, more importantly, reach the state of “success” efficiently</li></ul><p>As a Product Manager, though, I’ve found it surprisingly challenging to define, implement, and surface these best practices in a way that <em>actually</em> helps users. In this piece, I’ll share some of the ways I’ve introduced and prescribed best practices to customers.</p><h3>Why Best Practices Matter</h3><p>Why not just offer maximum flexibility and let users decide what works best for them?</p><p>Every product exists to deliver value. Ultimately, its success is measured by whether users actually experience that value.</p><p>Sure, you may not want to control every path a user takes. But as a builder, you want to maximize the number of users who feel that <em>aha</em> moment — and reach it as efficiently as possible.</p><p>If you’ve done your job studying users and their pain points, you likely understand what behaviors increase their chances of success. You know which setups, configurations, or workflows meaningfully impact outcomes — and which can be left as intended variations among users.</p><p>For example:</p><ul><li>In a GenAI marketing message generator, how should someone specify the tone parameter to generate a strong LinkedIn blurb? Do adjectives improve output quality? Do detailed descriptions actually matter?</li><li>In a travel events app, how should someone configure notifications to consistently discover relevant experiences? Or are the configurations something that can be intentionally varied and not follow a set of practices?</li></ul><p>Best practices, in this context, are simply <strong>informed opinions about how to use the product in ways that reliably drive value</strong>. Enforcing them isn’t about restricting freedom — it’s about increasing the <strong>surface area</strong> of user success.</p><p>But this only works if a few prerequisites are met.</p><h3>Before You Prescribe: The Prerequisites</h3><p>Before even thinking about surfacing best practices, there are two obvious things that need to be in place.</p><h4>1. Study your users and what actually brings them success</h4><p>You can’t just come up with a set of best practices in your head. You need to observe how users use the product and what the outcomes look like.</p><p>Who stuck around longer in your app? What configurations or settings in the productivity tool you shipped actually shortened their time to complete tasks? What parameters did your most successful users input into your GenAI tool? These are the patterns you need to study.</p><p>Looking at <strong>cohort-level analytics</strong> in tools like Amplitude, Mixpanel, or Heap can give you insights across large groups of users. In some cases, directly observing or interviewing customers may give you even richer insights.</p><h4>2. Document these best practices internally</h4><p>This might be a simple doc for yourself if you’re a solopreneur, or something shared with your customer success team so everyone is aligned on what a successful product experience looks like. It could also be shared across PMs so that prioritization decisions reflect these opinions.</p><p>These <em>“proven”</em> best practices should be clearly documented so that you and your team understand which variations are acceptable in your product — and where you intentionally hold an opinion about how users should use it.</p><h3>How to Prescribe Best Practices</h3><p>Once you’ve formed strong, evidence-backed opinions, the next question becomes: how do you introduce them?</p><p>I think about this in two buckets:</p><ol><li>In-product</li><li>Outside the product</li></ol><p>You might notice that some of these recommendations overlap with the strategies I’ve shared previously about <a href="https://medium.com/@taewoongseo/how-i-guide-new-users-past-their-first-struggles-in-a-software-product-e9d2b80da03f">unblocking the user struggle</a>, but the focus is here is more on prescribing opinionated practices rather than just moving users forward beyond friction points.</p><h3>In-Product</h3><h4>Action-Based Tooltips</h4><p>You might’ve come across those annoying product tours that you immediately click “Skip” on when signing up for something new. While those tours may contain best practices the product team wants to surface, they’re often shown at the wrong time — right at the beginning, when you don’t even have a clear goal yet.</p><p>Instead, add tooltips around the product that are <strong>action- and time-driven</strong>.</p><p>For example, when a user is about to generate their first LinkedIn draft in your AI marketing tool, you could show a tooltip next to the tone parameter saying something like:</p><blockquote><em>“Using descriptive adjectives here improves output quality.”</em></blockquote><p>That timing is far more relevant than showing guidance before the user even knows what they want to write.</p><p>Of course, you shouldn’t overdo this. Too many similar-looking nudges will desensitize users and make them annoyed. But when tooltips are timely, specific, and directly tied to the action the user is taking, they can be extremely effective.</p><p>I’ve found that some low/no-code tools like Userflow can be helpful for experimenting with this quickly.</p><h4>Hover-Over Tooltips</h4><p>In some cases, triggering tooltips based on actions may feel too intrusive.</p><p>Sometimes you just need <strong>static hover tooltips</strong> — where users can hover over an icon and see a recommended best practice for the feature they’re exploring.</p><p>These are more subtle than action-based nudges. They may be slightly more buried, but for features where it’s unclear what event should trigger guidance, hover tooltips can do the job without interrupting flow.</p><h4>Templates</h4><p>This really depends on the product, but in many cases, templates are one of the strongest ways to surface and subtly prescribe best practices.</p><p>Starting from an empty state in a CRM tool can be daunting. Instead, you could create templates tailored to different use cases — for example:</p><ul><li>A startup lead routing setup</li><li>A Kanban board for large contracts</li><li>An account manager view focused on upselling</li></ul><p>You can intentionally build your well-studied best practices into these templates.</p><p>Ideally, the configurations and settings you’ve carefully designed into templates serve as references. Users can learn by seeing what “good” looks like, and they can form these practices as behaviors after learning them from your curated templates.</p><p>Templates don’t just solve the cold-start problem — they<strong> quietly encode your product opinions</strong> from the start.</p><h3>Outside the Product</h3><h4>User Guides</h4><p>One of the most straightforward ways to share best practices is through user guides.</p><p>For each section or feature area of your product, write an article that clearly outlines:</p><ul><li>What the best practice is</li><li>Why it’s recommended and how it helps the user succeed</li><li>A step-by-step guide on how to implement it</li></ul><p>But the more important part isn’t just writing the guides — it’s surfacing them at the right time in the user journey. These can be <strong>powerfully paired with action-based or hover-over tooltips </strong>that link directly to the relevant guide.</p><h4>Customer Calls</h4><p>For high-touch products that require onboarding, setup, or implementation support, this is almost mandatory.</p><p>Instead of walking customers through features in a neutral tone:</p><blockquote>“You <strong>could</strong> set up your Kanban board to include bucket A, B, and C…”</blockquote><p>Shift the tone to be more opinionated:</p><blockquote>“For a team like yours, your Kanban board <strong>should</strong> include A, B, and C to maximize visibility and track changes across cross-functional teams.”</blockquote><p>Staying confidently opinionated (when your recommendations are well-founded) makes you sound more credible. It also increases the likelihood that customers follow your guidance — whether it’s delivered in a call, tooltip, or user guide.</p><h4>Emails</h4><p>You could also run a series focused on best practices and send it to new users or users actively exploring certain features.</p><p>The most effective approach is to <strong>cohort users based on feature usage</strong> and send <strong>targeted emails</strong> that teach relevant best practices.</p><p>These are less immediate than in-product tooltips, but they’re well-suited for actions that require more time and thought — like setting up a budgeting spreadsheet or configuring an entire workspace.</p><h3>Opinions Can Drive User Success</h3><p>Again, I’m sharing these approaches assuming you’ve already built strong, evidence-backed opinions about how users should use your product.</p><p>Once you’ve done that work, it becomes your responsibility — as a builder, PM, or account lead — to actively surface and recommend those best practices.</p><p><em>“User-first”</em> doesn’t mean unlimited flexibility with no guidance. It means <strong>prioritizing user success </strong>— and <strong>doing everything possible</strong> to help users reach value efficiently.</p><p>And the stronger your well-founded opinions are, the more success your users will experience.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0006ed807b55" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[On Building, Betting, and Belief — Notes from Koom Startup Festival]]></title>
            <link>https://medium.com/@taewoongseo/on-building-betting-and-belief-notes-from-koom-startup-festival-9e8bb4316e38?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/9e8bb4316e38</guid>
            <category><![CDATA[entrepreneurship]]></category>
            <category><![CDATA[startup-conference]]></category>
            <category><![CDATA[startup]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Mon, 26 Jan 2026 00:45:21 GMT</pubDate>
            <atom:updated>2026-01-26T00:45:21.936Z</atom:updated>
            <content:encoded><![CDATA[<h3>On Building, Betting, and Belief — Notes from Koom Startup Festival</h3><p>Last October, I had an incredible opportunity to attend a NYC-based startup and entrepreneurship conference for Koreans called Koom Startup Festival. Hosted by the United Korean Founders, the event brought together Korean industry experts, entrepreneurs, and investors from around the world. It’s been a while since the event, but I wanted to transcribe the notes I took that day — to keep a record and to share a few insights about entrepreneurship, the future, and where things might be headed.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HW2cF_hqndLo9_X6OwfC8Q.jpeg" /></figure><h4>Yup Kim — Chief Investment Officer at TMRS (Texas Municipal Retirement System)</h4><p>I first came across him through a <a href="https://www.youtube.com/watch?v=J7Q8zgPOFQE">video interview</a> and was struck by his principles around investing, work, and where the world is headed. It was great to hear his thoughts live.</p><ul><li>He described the role of a CIO as essentially being tasked with predicting the future — by <em>gathering information from others and placing bets based on that synthesis</em>.</li><li>Investing, in that sense, is really an ideas business. It’s about collecting philosophies, principles, and perspectives, then mixing and testing those ideas to see where the future might go.</li><li>One thing that stood out was how important communication is in investing. <em>Conviction and concision matter. </em>Mediocre ideas with excellent communication can take you further than perfect ideas.</li></ul><h4>John Kim — CEO at Sendbird</h4><p>Over the past few years, I’ve met folks from Sendbird, and it’s been fascinating to watch the company evolve — from a chat and messaging API provider to an agentic AI platform through <a href="https://delight.ai/">delight.ai</a>. John is a prominent figure among Korean founders in the Bay Area. His founding stories, insights into where agentic AI is headed, and general advice are consistently inspiring.</p><ul><li>On AI agents replacing human work: while humans are limited to serial processing, AI agents can operate in parallel. We’re nearing a point where the <em>number of AI-agent conversations is soon to surpass human-to-human conversations</em>.</li><li>The talent archetype is also shifting. Instead of prioritizing past experience, proven playbooks, or logos on a resume, what matters more now are <em>first principles, rate of learning, and the ability to design systems</em> — how someone can structure AI architecture X to build outcome Y.</li><li>So what does it mean to be a “100x employee” when AI agents can arguably think better than humans? In John’s framing, a 100x employee is <em>bounded by AI budget, not time</em>. Their role becomes planning, designing, and prompting the agent — while execution is largely handled by AI.</li></ul><h4>Sophie Kim — CEO of Kurly</h4><p><a href="https://www.kurlyglobal.com/">Kurly</a> may be unfamiliar to many in the US, but it’s a revolutionary online grocery platform that pioneered next-day, early-morning fresh food delivery in South Korea. Kurly has recently begun expanding into the US market. Sophie shared her motivations behind founding the company.</p><ul><li>For her, the key was focusing on a business that would remain relevant even as humanity changes — something <em>rooted in fundamental human desires</em>.</li><li>She made an interesting analogy to Christianity: just as Christianity has “sold” the promise of eternal life for thousands of years, she wanted to pursue a value proposition that wouldn’t erode with time.</li><li>Her vision is that when her time eventually ends, the company will be in the strongest form it has ever been — delivering the best experience it possibly can.</li></ul><h4>Heeeun Park — Partner at Altos Ventures</h4><p>Altos Ventures is a pretty legendary VC firm with early investments in companies like Roblox, Coupang, and Toss. Partner Heeun Park shared insights on industry outlooks in Korea and among Korean founders.</p><ul><li><em>Healthcare and cosmetics</em> seem especially promising.</li><li>In Korea, many of the top students have traditionally gone to medical school to become doctors. But instead of following the conventional path of residency and fellowship, a g<em>rowing number of med students are now founding companies</em> — driven by a stronger entrepreneurial ecosystem and increased VC activity.</li><li>Coupled with that is Korea’s exceptionally high standard for beauty. High expectations from consumers tend to push companies toward better services and products. The result: strong prospects in <em>health software, medical devices, beauty products, and clinics</em>.</li></ul><h4>Richard Park — Founder of Ascend Partners, Founder &amp; Former CEO of CityMD</h4><p>Richard Park’s story — going from an immigrant child who didn’t attend college to founding the largest urgent care provider in New York and New Jersey — is genuinely inspiring.</p><ul><li>After high school, instead of going straight to college like many Korean immigrants, he opened a small local business: a one-hour photo store.</li><li>He eventually went to medical school and became an ER doctor. But the idea stuck with him — bringing the speed and convenience of that one-hour photo concept into healthcare. That idea ultimately became CityMD.</li><li>Even in business and investing, he emphasized the <em>importance of principles</em>. His father, who ran a restaurant in NYC, refused to sell alcohol despite financial/profit pressure. He believed in that decision and stuck to it. That quiet consistency left a lasting impression.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9e8bb4316e38" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2025 Wrapped]]></title>
            <link>https://medium.com/@taewoongseo/2025-wrapped-9154702d3686?source=rss-9ba876d64630------2</link>
            <guid isPermaLink="false">https://medium.com/p/9154702d3686</guid>
            <category><![CDATA[movie-review]]></category>
            <category><![CDATA[reflections]]></category>
            <category><![CDATA[book-recommendations]]></category>
            <category><![CDATA[product-management]]></category>
            <dc:creator><![CDATA[Taewoong Seo]]></dc:creator>
            <pubDate>Sun, 28 Dec 2025 02:11:24 GMT</pubDate>
            <atom:updated>2025-12-28T02:19:21.996Z</atom:updated>
            <content:encoded><![CDATA[<p>This year has been a mix of <strong>stability</strong> and <strong>uncertainty</strong> for me. That might like an oxymoron, but that’s genuinely what this year has been. It was my first full year in New York — being settled, having found my community, and getting used to a new company and new products — where I grew into being able to <em>expect</em> the unexpected.</p><p>At the same time, there was plenty of instability. Even if I could “expect” the unexpected, I was still hit with new challenges and problems as a Product Manager. Outside of work, figuring out where I’m headed in my career — where to focus and how to grow my skills — has gotten harder to pin down as time went on. And outside of my career, the uncertainty showed up in bigger questions: where I want to be, what I want to be doing in the next <em>x</em> years, and where I want to allocate my energy…</p><p>Looking back, though, this year was filled with inspiring insights, fruitful successes, and meaningful failures that helped me zero in — along with people who pushed me to grow and content that stretched how I think.</p><p>Some of my 2025 wrapped:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dLUnO8b-tcHrtvEbhq7gAQ.png" /></figure><h3>Products that impressed me in 2025</h3><p><a href="https://aistudio.google.com/models/veo-3"><strong>Veo 3</strong></a><br> I like to make films and videos, so the Veo 3 release was a pretty big moment for me. I’d seen earlier video generators — they were fascinating — but I never seriously considered using them since I wasn’t making AI short-form content or anything. Then Veo 3 came out, and it kind of changed my mind. I’m still not using it to <em>replace</em> live-capture videos, but I do use it to augment them.</p><p>Most recently, I used it to create a show intro clip that’s a parody of a ’90s TV show. I only had screenshots of the original intro as references, and I played around with describing and prompting (basically acting like a film director) how the intro should look and play out. It did a fantastic job recreating the intro in the style I was going for.</p><p>A good Veo user is:</p><ol><li>someone who understands how Veo interprets and processes prompts (the Hollywood equivalent of a director who really knows their actors and what nudges work best), and</li><li>someone who can clearly prompt <em>and</em> iterate on those prompts (the equivalent of adjusting direction for the actors and crew).</li></ol><p><a href="https://apps.apple.com/us/app/metronome-tempo-lite/id599833596"><strong>Tempo</strong></a><br> This might be an odd one, but it’s very specific to my hobby. I play drums in a church worship band, and Tempo is the metronome app I use. There are hundreds of metronome apps out there, but this one feels like the <em>standard</em> among session musicians for a few reasons:</p><ul><li><strong>Low floor:</strong> Set a BPM, add a time signature, and it clicks on the right beat. You hit the core value in literally 2–3 taps.</li><li><strong>High ceiling (for a metronome app):</strong> Plenty of useful customization — accent placement, presets, different click sounds, display options…</li><li><strong>Network effect:</strong> I discovered it by looking at what other session musicians were using and asking around. They were <em>all</em> on Tempo. It clearly crossed critical mass. Hard to beat that.</li></ul><h3>Projects I had fun with this year</h3><p>At work, rebranding what was once an app for participating in health research studies into a more general health data-tracking app. It’s been a fun journey thinking through value propositions, ideal customer profiles, what would actually resonate, and which UI/screens would speak to people. It was more than just altered copywriting and a new landing page; it was all about rethinking about what pain points that these health-conscious users would feel in the current health data ecosystem, finding where our solutions fit into the market, and rebranding the app with new product marketing pieces that could echo those features.</p><p>Outside of work, I built a movie-logging tool. My personal pain point after watching movies is that I’m terrible at remembering takeaways. Right after the movie (or closing a Netflix tab), my feelings are vivid — but a few weeks later, or after a few more movies, I can’t even remember what I liked or disliked. So I made a quick logging app where I write a one-sentence reaction right after watching, plus a memorable line from the movie. It helps me remember <em>how I experienced the movie</em>, not how others framed it. It’s really just a utility for myself — but maybe it could turn into something more.</p><h3>Movies I enjoyed this year</h3><p>Speaking of movies, here are a few I watched this year that I loved (not necessarily released this year).</p><p><strong>The Phoenician Scheme (2025)</strong><br> Another great Wes Anderson film. It feels like an adventure game with multiple stages and quests — and that feeling comes through not just in the plot, but in the differently themed colors, art/design, sets, and characters. Wes Anderson’s signature humor cues and rhythms feel especially refined here. I laughed a lot.</p><p><strong>The Killer (1989)</strong><br> John Woo’s Hong Kong film, released at the tail end of the golden age of Hong Kong noir. I watched this because IFC Center — New York’s art-house theater — was running a Hong Kong noir series. Chow Yun-fat’s portrayal of a cold-looking killer with a warm heart pairs beautifully with John Woo’s iconic style: slow motion, extreme close-ups, dramatic music, and intentional silence.</p><p>The silence stood out the most — it heightens tension by deliberately stripping away dialogue and music at key moments.</p><h3>Books that inspired me this year</h3><p><strong>How to Become Famous: Lost Einsteins, Forgotten Superstars, and How the Beatles Came to Be</strong><br> I talked about this book in my <a href="https://medium.com/p/0a2b2a6ba339">previous article</a>, but it argues that there’s no fixed “recipe” for success — and that success often can’t be replicated under the same conditions. Timing, exposure, and serendipity matter far more than we like to admit.</p><p>It made me think about how “origin stories” and “success recipes” are always written in retrospect. Maybe outcomes aren’t as controllable as we hope, so the best move is to increase the number of attempts and stay ready for that rare, lucky break.</p><p><strong>The Singularity Is Nearer</strong><br> Ray Kurzweil’s breadth and depth of insight into artificial intelligence is phenomenal. He lays out progressive yet credible predictions around the singularity — when AI surpasses human comprehension. I’m still working through the book, but I’m just fascinated by the story of the groundwork that has already been laid to get us here, and how that shapes what comes next.</p><p>Ironically, as a tech PM, I often default to a narrow view of AI — at a feature-level or a tech solution to “tech” pain points. This book forces me to zoom out and think much bigger, about how humanity itself might change.</p><p>I often feel a little empty at the end of the year, looking back and struggling to pinpoint clear growth moments or big achievements. But writing this reflection makes me realize that maybe a “good year” isn’t just about obvious growth — it’s about the ideas I have absorbed along the way, through work, content, writing, experiences, and the quieter shifts in how I think.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9154702d3686" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>