1<!doctype html><html lang="en"data-bs-theme="light"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e"><meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover" ><meta name="generator" content="Jekyll v4.3.4" /><meta property="og:title" content="Product" /><meta property="og:locale" content="en" /><meta name="description" content="Doctor turned ML Engineer/Founder" /><meta property="og:description" content="Doctor turned ML Engineer/Founder" /><link rel="canonical" href="https://chrislovejoy.me/tags/product/" /><meta property="og:url" content="https://chrislovejoy.me/tags/product/" /><meta property="og:site_name" content="Chris Lovejoy" /><meta property="og:type" content="website" /><meta property="og:image" content="https://chrislovejoy.me/assets/images/CL_social_preview.jpg" /><meta name="twitter:card" content="summary_large_image" /><meta property="twitter:image" content="https://chrislovejoy.me/assets/images/CL_social_preview.jpg" /><meta property="twitter:title" content="Product" /><meta name="twitter:site" content="@ChrisLovejoy_" />
1<script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Doctor turned ML Engineer/Founder","headline":"Product","url":"https://chrislovejoy.me/tags/product/"}</script>
1<title>Product | Chris Lovejoy</title><link rel="icon" type="image/png" href="/assets/img/favicons/favicon-96x96.png" sizes="96x96"><link rel="icon" type="image/svg+xml" href="/assets/img/favicons/favicon.svg"><link rel="shortcut icon" href="/assets/img/favicons/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicons/apple-touch-icon.png"><link rel="preconnect" href="https://fonts.googleapis.com" ><link rel="dns-prefetch" href="https://fonts.googleapis.com" ><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="dns-prefetch" href="https://fonts.gstatic.com" ><link rel="preconnect" href="https://cdn.jsdelivr.net" ><link rel="dns-prefetch" href="https://cdn.jsdelivr.net" ><link rel="stylesheet" href="/assets/css/jekyll-theme-chirpy.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7/css/all.min.css">
1<script src="/assets/js/dist/theme.min.js"></script>
1
1<script defer src="https://cdn.jsdelivr.net/combine/npm/simple-jekyll-search@1/dest/simple-jekyll-search.min.js,npm/dayjs@1/dayjs.min.js,npm/dayjs@1/locale/en.js,npm/dayjs@1/plugin/relativeTime.js,npm/dayjs@1/plugin/localizedFormat.js"></script>
1
1<script defer src="/assets/js/dist/misc.min.js"></script>
1
1<script async src="https://gc.zgo.at/count.js" data-goatcounter="https://chris-lovejoy.goatcounter.com/count" ></script>
1
1<script defer src="https://eu.umami.is/script.js" data-website-id="305c5fad-6699-48b0-a8e3-8329cc884bf5" ></script>
1
1<script> document.addEventListener('DOMContentLoaded', () => { var _paq = (window._paq = window._paq || []); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); var u="//chrislovejoy.matomo.cloud/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', 1]); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); }); </script>
1<body><aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end"><header class="profile-wrapper"> <a href="/" id="avatar" class="rounded-circle"><img src="/assets/images/CL_small_square_2.jpg" width="160" height="160" alt="avatar" onerror="this.style.display='none'"></a> <a class="site-title d-block" href="/">Chris Lovejoy</a><p class="site-subtitle fst-italic mb-0"></p></header><nav class="flex-column flex-grow-1 w-100 ps-0"><ul class="nav"><li class="nav-item"> <a href="/" class="nav-link"> <i class="fa-fw fas fa-home"></i> <span>HOME</span> </a><li class="nav-item"> <a href="/writing/" class="nav-link"> <i class="fa-fw fas fa-pencil"></i> <span>WRITING</span> </a><li class="nav-item"> <a href="/speaking" class="nav-link"> <i class="fa-fw fas fa-microphone-alt"></i> <span>SPEAKING</span> </a><li class="nav-item"> <a href="/notes/" class="nav-link"> <i class="fa-fw fas fa-file-text"></i> <span>NOTES</span> </a><li class="nav-item"> <a href="/email" class="nav-link"> <i class="fa-fw fas fa-inbox"></i> <span>EMAIL</span> </a></ul></nav><div class="sidebar-bottom d-flex flex-wrap align-items-center w-100"> <a href="https://github.com/chris-lovejoy" aria-label="github" target="_blank" rel="noopener noreferrer" > <i class="fab fa-github"></i> </a> <a href="https://twitter.com/ChrisLovejoy_" aria-label="twitter" target="_blank" rel="noopener noreferrer" > <i class="fa-brands fa-x-twitter"></i> </a> <a href="javascript:void(location.href = 'mailto:' + ['hi','chrislovejoy.me'].join('@'))" aria-label="email" > <i class="fas fa-envelope"></i> </a> <a href="/feed.xml" aria-label="rss" > <i class="fas fa-rss"></i> </a> <a href="https://www.linkedin.com/in/dr-christopher-lovejoy/" aria-label="linkedin" target="_blank" rel="noopener noreferrer" > <i class="fab fa-linkedin"></i> </a> <a href="https://www.youtube.com/chrislovejoy" aria-label="youtube" target="_blank" rel="noopener noreferrer" > <i class="fab fa-youtube"></i> </a> <a href="https://scholar.google.co.uk/citations?user=g3MOrpcAAAAJ" aria-label="academic" target="_blank" rel="noopener noreferrer" > <i class="fas fa-graduation-cap"></i> </a> <a href="https://chris-lovejoy.medium.com/" aria-label="medium" target="_blank" rel="noopener noreferrer" > <i class="fab fa-medium"></i> </a></div></aside><div id="main-wrapper" class="d-flex justify-content-center"><div class="container d-flex flex-column px-xxl-5"><header id="topbar-wrapper" class="flex-shrink-0" aria-label="Top Bar"><div id="topbar" class="d-flex align-items-center justify-content-between px-lg-3 h-100" ><nav id="breadcrumb" aria-label="Breadcrumb"> <span> <a href="/">Home</a> </span> <span> <a href="/tags/">Tags</a> </span> <span>Product</span></nav><button type="button" id="sidebar-trigger" class="btn btn-link" aria-label="Sidebar"> <i class="fas fa-bars fa-fw"></i> </button><div id="topbar-title"> Tag</div><button type="button" id="search-trigger" class="btn btn-link" aria-label="Search"> <i class="fas fa-search fa-fw"></i> </button> <search id="search" class="align-items-center ms-3 ms-lg-0"> <i class="fas fa-search fa-fw"></i> <input class="form-control" id="search-input" type="search" aria-label="search" autocomplete="off" placeholder="Search..." > </search> <button type="button" class="btn btn-link text-decoration-none" id="search-cancel">Cancel</button></div></header><div class="row flex-grow-1"><main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4"><article class="px-1"><div id="page-tag"><h1 class="ps-lg-2"> <i class="fa fa-tag fa-fw text-muted"></i> Product <span class="lead text-muted ps-2">3</span></h1><ul class="content ps-0"><li class="d-flex justify-content-between px-md-3"> <a href="/sour-lesson">The Sour Lesson: A Guide to Building AGI-Pilled Products</a> <span class="dash flex-grow-1"></span> <time class="text-muted small text-nowrap" data-ts="1770854400" data-df="ll" > Feb 12, 2026 </time><li class="d-flex justify-content-between px-md-3"> <a href="/llm-native-vs-traditional-ml">The new AI playbook: why LLM-native beats traditional ML in verticals</a> <span class="dash flex-grow-1"></span> <time class="text-muted small text-nowrap" data-ts="1761782400" data-df="ll" > Oct 30, 2025 </time><li class="d-flex justify-content-between px-md-3"> <a href="/lessons-ai-verticals">Lessons on applying AI in vertical industries</a> <span class="dash flex-grow-1"></span> <time class="text-muted small text-nowrap" data-ts="1751673600" data-df="ll" > Jul 5, 2025 </time></ul></div></article></main><aside aria-label="Panel" id="panel-wrapper" class="col-xl-3 ps-2 text-muted"><div class="access"><section id="access-lastmod"><h2 class="panel-heading">Recently Updated</h2><ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2"><li class="text-truncate lh-lg"> <a href="/ai-agents-for-enterprise">Why enterprise tech stacks aren't ready for AI agents â and the primitives that can unlock them</a><li class="text-truncate lh-lg"> <a href="/startup-equity">Why your startup equity offer is worth less than you think - and what to do about it</a><li class="text-truncate lh-lg"> <a href="/domain-native-ai-org">The Domain-Native AI Organization: How to Leverage Domain Expertise</a><li class="text-truncate lh-lg"> <a href="/sour-lesson">The Sour Lesson: A Guide to Building AGI-Pilled Products</a><li class="text-truncate lh-lg"> <a href="/llm-native-vs-traditional-ml">The new AI playbook: why LLM-native beats traditional ML in verticals</a></ul></section></div></aside></div><div class="row"><div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 px-md-4"><footer aria-label="Site Info" class=" d-flex flex-column justify-content-center text-muted flex-lg-row justify-content-lg-between align-items-lg-center pb-lg-3 " ><p>© <time>2026</time> <a href="https://twitter.com/ChrisLovejoy_">Chris Lovejoy</a>. <span data-bs-toggle="tooltip" data-bs-placement="top" title="Except where otherwise noted, the blog posts on this site are licensed under the Creative
1Commons Attribution 4.0 International (CC BY 4.0) License by the author." >Some rights reserved.</span></p><p></p></footer></div></div><div id="search-result-wrapper" class="d-flex justify-content-center d-none"><div class="col-11 content"><div id="search-hints"><section><h2 class="panel-heading">Tags</h2><div class="d-flex flex-wrap mt-3 mb-1 me-3"> <a class="post-tag btn btn-outline-primary" href="/tags/medicine/">Medicine</a> <a class="post-tag btn btn-outline-primary" href="/tags/weekly-email/">Weekly email</a> <a class="post-tag btn btn-outline-primary" href="/tags/machine-learning/">Machine Learning</a> <a class="post-tag btn btn-outline-primary" href="/tags/productivity/">Productivity</a> <a class="post-tag btn btn-outline-primary" href="/tags/coding/">Coding</a> <a class="post-tag btn btn-outline-primary" href="/tags/entrepreneurship/">Entrepreneurship</a> <a class="post-tag btn btn-outline-primary" href="/tags/careers/">Careers</a> <a class="post-tag btn btn-outline-primary" href="/tags/perspectives-and-reflections/">Perspectives and Reflections</a> <a class="post-tag btn btn-outline-primary" href="/tags/product/">Product</a> <a class="post-tag btn btn-outline-primary" href="/tags/building-in-public/">Building-in-public</a></div></section></div><div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div></div></div></div><aside aria-label="Scroll to Top"> <button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow"> <i class="fas fa-angle-up"></i> </button></aside></div><div id="mask" class="d-none position-fixed w-100 h-100 z-1"></div>
1<script> document.addEventListener('DOMContentLoaded', () => { SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('search-results'), json: '/assets/js/data/search.json', searchResultTemplate: '<article class="px-1 px-sm-2 px-lg-4 px-xl-0"><header><h2><a href="{url}">{title}</a></h2><div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1"> {categories} {tags}</div></header><p>{content}</p></article>', noResultsText: '<p class="mt-5">Oops! No results found.</p>', templateMiddleware: function(prop, value, template) { if (prop === 'categories') { if (value === '') { return `${value}`; } else { return `<div class="me-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`; } } if (prop === 'tags') { if (value === '') { return `${value}`; } else { return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`; } } } }); }); </script>
vendor: 1 bytes, line 1
1
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.