<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Writing by Scott Clark</title><description>Essays from Scott Clark on startup lessons and building things.</description><link>https://scottclark.io</link><language>en-us</language><item><title>Making New Mistakes Faster as a Second-Time Founder</title><link>https://scottclark.io/blog/make-all-new-mistakes-faster</link><guid isPermaLink="true">https://scottclark.io/blog/make-all-new-mistakes-faster</guid><description>Lessons from a hard pivot: overfitting to my first company&apos;s successes, vision-market fit vs product-market fit, and making new mistakes faster.</description><pubDate>Tue, 28 Jul 2026 16:30:00 GMT</pubDate><content:encoded>
&lt;p&gt;When I started &lt;a href=&quot;https://distributional.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Distributional&lt;/a&gt; in 2023 I thought I had it all figured out. I had sold my first company, SigOpt, to Intel in 2020 and had spent the previous 3 years as an executive learning from the inside of one of the most iconic tech companies of all time. I had built SigOpt from my PhD thesis in 2014 and ran it for 7 years before the acquisition. I made many, many mistakes along the way as I learned company building, management, and enterprise sales mostly by trial and error. After reflecting on a decade of mistakes and learnings I was ready to embark on a new adventure with all of my experience earned through blood, sweat, and tears.&lt;/p&gt;
&lt;p&gt;I thought I was going to be able to accelerate through the first few stages of company building because I would be able to avoid old mistakes, repeat what worked, and make all new mistakes faster. What I didn&amp;#39;t account for was that the entire market and world was fundamentally shifting, so many old lessons didn&amp;#39;t apply directly. I also overfit to my previous successes, which turned them into mistakes, &lt;a href=&quot;https://distributional.com/blog/distributional-is-now-talaria&quot; rel=&quot;noopener noreferrer&quot;&gt;forcing us to pivot multiple times along the way&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had to learn the hardest lesson again: startups are hard, there are no shortcuts to product-market fit, and you need to do it the hard way for it to have any chance of working. There is nothing like the free market to humble you, but the upside is that there is still so much to learn. Here is what I did right, wrong, and what I will do differently &lt;a href=&quot;https://talariasci.com/blog/why-im-building-talaria&quot; rel=&quot;noopener noreferrer&quot;&gt;as I keep building&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;what-worked-the-first-time&quot;&gt;&lt;a href=&quot;#what-worked-the-first-time&quot;&gt;What worked the first time&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On paper, SigOpt was a great run. We went through Y Combinator in Winter 2015, raised from top investors like a16z and SV Angel, took the Bayesian optimization tooling I&amp;#39;d built in grad school and open sourced at Yelp and turned it into an enterprise product, grew the team, stood up a sales motion, and sold the company to Intel in 2020. Underneath those highlights was a first-time founder figuring it out as we went, often via trial and error. The thing that saved us over and over again was the incredible team and culture I was able to build with my co-founder.&lt;/p&gt;
&lt;p&gt;But the big timing calls mostly worked: when we hired, when we scaled, when we leaned into go-to-market, when we sold. I took some of our luck and attributed it to skill, forgetting some of the misfires along the way. Hiring ahead of product-market fit had worked, because the ML-infrastructure market grew into the capacity we built. Standing up sales early had worked, because buyers were already forming budgets around our category. Eight years later, none of that felt like a playbook I was choosing to re-run. It felt like knowing what I was doing.&lt;/p&gt;
&lt;h2 id=&quot;success-is-a-worse-teacher-than-failure&quot;&gt;&lt;a href=&quot;#success-is-a-worse-teacher-than-failure&quot;&gt;Success is a worse teacher than failure&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mistakes are often obvious immediately or at least in hindsight. You miss the quarter, you lose the deal, you watch a launch land flat, and the lesson arrives with a timestamp and a bruised ego. Failure hands you a signal to reinforcement learn from.&lt;/p&gt;
&lt;p&gt;Success gives you almost no information about why it worked. Was it the play? The timing? The market regime? Luck? A single evaluation on one company outcome can&amp;#39;t separate those variables. Even SigOpt&amp;#39;s ending made the point: we were mid-raise, term sheets all but verbally agreed, when the news broke in a fundraising meeting with one of our current investors that the NBA had suspended its season due to COVID. The pandemic changed the world, the round evaporated, and we sold the company later that year. A good outcome by any startup standard, and the variable that timed it appears in nobody&amp;#39;s playbook. A founding career is a training set with a few samples per company, and I fit a confident model to mine. Overfitting is roughly the first danger you learn to fear in getting a PhD, and I did it anyway, with my own resume as the training data.&lt;/p&gt;
&lt;p&gt;It gets worse, because the environment isn&amp;#39;t stationary. The AI market between 2015 and 2023 didn&amp;#39;t drift, it monotonically grew, and by the end it was jumping several times a year: categories forming and dissolving in months, buyers rethinking budgets mid-cycle. My old plays weren&amp;#39;t wrong in some universal sense; they were fit to a distribution that no longer existed. Success can often tilt your policy from exploration all the way toward exploitation. You&amp;#39;ve found high ground before, so you march straight at where it was. When the terrain moves, the value of exploration goes back up, and your own experience is the voice insisting you don&amp;#39;t need it. And when building a startup the terrain is always moving, sometimes catastrophically.&lt;/p&gt;
&lt;h2 id=&quot;what-re-running-the-playbook-looked-like&quot;&gt;&lt;a href=&quot;#what-re-running-the-playbook-looked-like&quot;&gt;What re-running the playbook looked like&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ll always remember what one of our board members said after we went through our first pivot and reduction in force: &amp;quot;Every great company needs to figure out product, sales, operations. But you need to do it sequentially and in that order.&amp;quot;&lt;/p&gt;
&lt;p&gt;The first few years of Distributional were about me trying to do it all at once. I wanted to skip past the parts I had already done and get to new ground as fast as possible. In doing so I starved the part that mattered the most: building something people actually want. By trying to scale up sales and operations I thought I was &amp;quot;spring loading&amp;quot; the business for the second we found product-market fit. But in reality I starved our ability to focus on product or iterate as fast as the changing market demanded.&lt;/p&gt;
&lt;p&gt;I hired and scaled ahead of product-market fit, because last time that timing had been right. This mistake compounds quietly, step by step. You hire ahead of fit, and the new team needs a roadmap to build and sell. A roadmap demands conviction you don&amp;#39;t actually have yet, so you commit to your best current guess. But the team also grows so big that you need to operationalize things that should be fluid. Once the org is executing on that process, changing it costs a reorg, so each piece of contrary evidence gets discounted a little. Momentum and process start being about the machine instead of the market. From inside, it looks like execution, but it really is starving innovation and speed. The result is all of the stress of a growing startup, with none of the results.&lt;/p&gt;
&lt;h2 id=&quot;naming-the-quadrant&quot;&gt;&lt;a href=&quot;#naming-the-quadrant&quot;&gt;Naming the quadrant&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We had vision-market fit more than once. Smart, senior people in our ideal customer profile agreed the problem was real and coming: AI systems need testing you can trust. People were excited to try the product when we were pitching. When we repositioned the product, the excitement was even greater. People agreed it was obvious and inevitable and we had a unique and valuable take on the problem. Every signal a founder wants to see, except the one that pays. Getting close is worse than not being close at all, because close is exactly the feeling that keeps you funding the push.&lt;/p&gt;
&lt;p&gt;It took me too long to treat that pattern as a distinct false positive with a name, and that turned out to be the lesson.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vision-market fit&lt;/em&gt; is resonance: people with real budgets and real problems agree that what you see coming is coming, and interest shows up wherever you push. The tell is what never happens next, if anything. The interest stays excitement instead of execution: nothing gets deployed because it wasn&amp;#39;t a real pain. I remember in the early days of SigOpt, when we were selling hyperparameter optimization as a service to firms just learning about ML, we would sometimes get the response, &amp;quot;I can&amp;#39;t wait until we have this problem, that will mean we have a system worth optimizing.&amp;quot; In SigOpt we just had to go up market to find product-market fit, but with Distributional the whole field and concept we were pushing was so nascent that it meant there was no up market to chase, even the most advanced firms of the ML era were still figuring it out as they went.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Product-market fit&lt;/em&gt; is pull: buyers you didn&amp;#39;t call show up, budgets form around your category without you in the room, and customers put you in their architecture diagram without being asked.&lt;/p&gt;
&lt;p&gt;From inside any single good meeting, the two are indistinguishable. Vision-market fit is dangerous precisely because it looks like the opening scenes of product-market fit. The two are different, and scaling on top of the first one means scaling a hypothesis. The difference only shows up in what happens when you stop pushing, which is exactly the experiment a scaling company never runs.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://scottclark.io/images/blog/make-all-new-mistakes-faster/make-all-new-mistakes-faster.png&quot; alt=&quot;The map I was actually on, drawn with axes I could only name later. Vision-market fit is the top-left quadrant: resonance keeps climbing, the pull line never gets crossed, and the quadrant keeps you alive exactly long enough to matter. Rooms lean in, rounds come together, pilots start, and none of it compounds on its own.&quot; /&gt;&lt;figcaption&gt;The map I was actually on, drawn with axes I could only name later. Vision-market fit is the top-left quadrant: resonance keeps climbing, the pull line never gets crossed, and the quadrant keeps you alive exactly long enough to matter. Rooms lean in, rounds come together, pilots start, and none of it compounds on its own.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Naming the problem is what makes it escapable. An unnamed false positive just feels like early traction running a little late. A named one is checkable: you can ask, every quarter, what moved this quarter that we didn&amp;#39;t push, and write the answer down.&lt;/p&gt;
&lt;p&gt;In our case, the answer had been on the page for a while: the doubts that eventually proved decisive were sitting in the margins of our own strategy decks, in our own words, well before I acted on them. Strategy documents archive your disconfirming evidence whether you mean them to or not. And there&amp;#39;s an irony worth saying plainly: I spent those years building software to catch the gap between how people assumed their AI systems behaved and how they actually behaved, but people were still figuring out these systems or just YOLOing them into production. The assumption I tested least was the one my own company was standing on: whether people had enough data, risk, and cared enough to actually test rigorously. I still believe the AI-testing market will mature the way I believed it would, but it wasn&amp;#39;t maturing on the clock we were running.&lt;/p&gt;
&lt;p&gt;Naming the trap also names the way out. &lt;em&gt;The honest process&lt;/em&gt; is what you run when the answer keeps coming back &amp;quot;nothing pulled&amp;quot;: you test the company against the real market instead of against your own hopes, with real conversations, serious diligence, and real alternatives on the table. You run it not because you&amp;#39;ve already decided to sell or to stop, but because a choice made against real alternatives is a decision, and a choice made against imagined ones is a story you tell yourself.&lt;/p&gt;
&lt;h2 id=&quot;the-accounting&quot;&gt;&lt;a href=&quot;#the-accounting&quot;&gt;The accounting&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So here&amp;#39;s the honest version, without spin in either direction. Distributional did real work on a real problem, with a fantastic team and investors I&amp;#39;m grateful for, and the plays I imported didn&amp;#39;t convert vision into product-market fit. The job of the CEO is to make the business successful and I was burning cash without making enough progress.&lt;/p&gt;
&lt;p&gt;I can date the moment the pattern finally clicked into place for me. We were at an onsite with the team and had just had the best sales call in the company&amp;#39;s history. They were basically pitching us the whole time, they had our problem, they were looking for our solution, they wanted to pilot as fast as possible. They shared our vision for the future. But when I got back to my room I started doing the math. If this deal went perfectly, if we hit every milestone and didn&amp;#39;t catch any enterprise sales drag, then we could convert the pilot in 6 months and lock in our quoted rate. But I knew from SigOpt that there were dozens of things that would need to go right for that to happen, and we would need a dozen deals just like it to hit the numbers we needed, and every other deal in the pipeline was worse than this one. Even if we did great, it wasn&amp;#39;t going to be good enough. If the best isn&amp;#39;t good enough, you need to play a completely different game.&lt;/p&gt;
&lt;p&gt;This led to our first reduction in force and pivot, after 2 years of hard sprinting. Then a similar thing happened again after we pivoted from pre-production testing to post-production analytics. (&lt;a href=&quot;https://distributional.com/blog/distributional-is-now-talaria&quot; rel=&quot;noopener noreferrer&quot;&gt;Read the pivot story here&lt;/a&gt;.) So I tried to run a process to find the company a home. We ran the process instead of arguing with it, all the way to the end: term sheets on the table, an offer for the whole team. At the end of the day, that&amp;#39;s what made what came next an intentional decision instead of a drift.&lt;/p&gt;
&lt;p&gt;We chose a hard pivot over both real alternatives: the exit on the table and the slow burn into nothing. We cleaned it up as well as we could: commitments honored, most of the team landing well together via one of the acquihire offers, and the company coming out the other side pointed at something I believe in even more.&lt;/p&gt;
&lt;p&gt;That something is &lt;a href=&quot;https://talariasci.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Talaria Scientific&lt;/a&gt;, still under the Distributional banner, just a new brand and hard pivot. The short version of the mission: A multi-agent harness for computational science, helping computational scientists research faster, better, and cheaper with AI.&lt;/p&gt;
&lt;h2 id=&quot;new-mistakes-on-purpose&quot;&gt;&lt;a href=&quot;#new-mistakes-on-purpose&quot;&gt;New mistakes, on purpose&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What I&amp;#39;m doing differently this time around is not &amp;quot;avoiding mistakes.&amp;quot; The goal isn&amp;#39;t fewer mistakes; it&amp;#39;s newer ones, made faster, against current evidence instead of old wins.&lt;/p&gt;
&lt;p&gt;Staying lean: Talaria Scientific today is a team of one plus contractors. Not because scale is bad, but because scale buys speed at the price of rigidity, and rigidity is what slowed my updating last time. Headcount converts hypotheses into commitments. I want my hypotheses cheap to kill for as long as possible, just like I did when building open source from my PhD before starting SigOpt.&lt;/p&gt;
&lt;p&gt;Being my own customer: this time the ideal user is me. I spend my days running computational research on PDE neural operators and Bayesian optimization through the product I&amp;#39;m building, and when it&amp;#39;s slow or wrong I feel it the same afternoon. The feedback loop went from quarters to hours, which means my gradient information finally comes from the present instead of from 2016.&lt;/p&gt;
&lt;p&gt;Sequencing truth before scale: vision-market fit opens doors, and I&amp;#39;m glad for every one, but it isn&amp;#39;t the signal to hire against. Product truth first, then pull, then scale, in that order, with the order enforced by keeping the company too small to fake it.&lt;/p&gt;
&lt;p&gt;That being said, the answer isn&amp;#39;t to invert every play that worked before. Inverting still lets the old data drive: overfitting with a minus sign in front. Some SigOpt lessons transfer just fine. The discipline is holding the old playbook as a prior instead of gospel, weighting it by how much the world has moved, and letting present evidence make the calls. In a market moving this fast, the honest weight on eight-year-old experience is smaller than feels fair.&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a bigger question underneath all of this, about when to keep climbing the mountain you&amp;#39;re on and when to change mountains entirely. Careers have many paths up many mountains, and that idea gets its own post.&lt;/p&gt;
&lt;p&gt;For now, the all-new mistakes are underway. I can&amp;#39;t tell you which ones they are yet, which is the point: if I could name them, they&amp;#39;d be the old kind. The new map is mostly blank, but one quadrant on it is already named. In a few years Talaria Scientific will have its own list of what worked, and I&amp;#39;m sure I&amp;#39;ll look back with all new lessons learned.&lt;/p&gt;</content:encoded><category>Startup Lessons</category><category>proof</category></item><item><title>Building this blog: Part II</title><link>https://scottclark.io/blog/building-this-blog-part-ii</link><guid isPermaLink="true">https://scottclark.io/blog/building-this-blog-part-ii</guid><description>How agents turned a decade-old blog backlog into a live site built for two readers: people, and the AI agents they send to read about you.</description><pubDate>Tue, 28 Jul 2026 16:00:00 GMT</pubDate><content:encoded>
&lt;p&gt;Twelve years ago I published a post on this domain called &lt;a href=&quot;https://web.archive.org/web/20141025075605/http://www.scottclark.io:80/blog/2/building-this-blog%253A-part-i&quot; rel=&quot;noopener noreferrer&quot;&gt;&amp;quot;Building this blog: Part I&amp;quot;&lt;/a&gt;. There was never a Part II. This is Part II, twelve years late, and the reason it finally exists is also the reason it might be worth your time: agents changed the economics of owning your own corner of the web, right as owning one started to matter again.&lt;/p&gt;
&lt;p&gt;When someone wants to know who you are now, they often don&amp;#39;t search; they ask an AI, whether that is a web chat app or &lt;a href=&quot;https://claude.com/product/claude-code&quot; rel=&quot;noopener noreferrer&quot;&gt;Claude Code&lt;/a&gt;. A conference organizer asks a model whether you&amp;#39;d make a good speaker. An investor asks for a brief before a call. A hiring manager asks what you&amp;#39;ve actually shipped. The answer comes back assembled by an agent reading the public web on their behalf, and for that reader the front page isn&amp;#39;t a search results page. It&amp;#39;s whatever the agent can find, parse, and trust.&lt;/p&gt;
&lt;p&gt;I want those answers shaped by what I&amp;#39;ve actually written (ie by my own record rather than by whichever fragments of it leak through other people&amp;#39;s platforms). Writing that lives only inside a walled garden is at the platform&amp;#39;s mercy twice over: the feed decides which humans see it, and the crawler policy decides whether agents see it at all. Ask a model about someone whose whole record sits behind those walls and you get an answer stitched from press mentions and stale bios, an answer about them that they don&amp;#39;t own.&lt;/p&gt;
&lt;p&gt;The alternative has a name in the same spirit as SEO. People are starting to call it AIO: optimizing your presence for the AI systems that read the web on people&amp;#39;s behalf. It feels like early SEO, and the mechanics are simple: a canonical site you control, a markdown twin of every page so an agent gets clean full text instead of your layout, structured data so the answer engine doesn&amp;#39;t have to guess, and a robots.txt that says yes. Whatever the discipline ends up being called (the SEO crowd already says GEO and AEO), the mechanical version is a few hours of work, and the agents people actually send already fetch it.&lt;/p&gt;
&lt;p&gt;Engineers have been told to own their own site for twenty years. Most of us never finish. I know because I&amp;#39;m most of us.&lt;/p&gt;
&lt;h2 id=&quot;why-this-used-to-be-a-tax&quot;&gt;&lt;a href=&quot;#why-this-used-to-be-a-tax&quot;&gt;Why this used to be a tax&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In 2014, while I was at Yelp, I built scottclark.io from scratch on Pyramid, because Yelp was standardizing on Pyramid and I wanted to learn it. I deployed it to DigitalOcean. I wrote exactly two posts. The second one was titled &amp;quot;Building this blog: Part I.&amp;quot;&lt;/p&gt;
&lt;p&gt;What killed it was the maintenance tax. Every post required a context switch from research into web infrastructure: dependency upgrades, design, theme fights, deploy scripts. The site was supposed to be a writing surface and became a side project that ate the writing time. It was the woodshop problem: the first project in a new shop is always a workbench, and some of us sand the workbench for years and never build the furniture (and I tend to fall victim to yak shaving, bike shedding, and all the colloquial variants of this). My workbench had a comment system, but it only had two posts.&lt;/p&gt;
&lt;p&gt;So the site went dark, and the pattern held for a decade. My resume repo tells the same story in commit history: steady updates through 2016, then nine and a half years of nothing public.&lt;/p&gt;
&lt;h2 id=&quot;the-unlock-and-the-new-tax&quot;&gt;&lt;a href=&quot;#the-unlock-and-the-new-tax&quot;&gt;The unlock, and the new tax&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What changed isn&amp;#39;t that web frameworks got easier. The frameworks have been good for years. What changed is that the scaffolding tax became an agent&amp;#39;s problem: the dependency upgrades, the build pipeline, the infrastructure, the long tail of small decisions that used to stand between &amp;quot;I should write this down&amp;quot; and a live page. This was the same realization that led me to start &lt;a href=&quot;https://talariasci.com/blog/why-im-building-talaria&quot; rel=&quot;noopener noreferrer&quot;&gt;Talaria Scientific&lt;/a&gt; to accelerate computational science research.&lt;/p&gt;
&lt;p&gt;Agents don&amp;#39;t get you off the hook, though. They are very good at rapid prototyping, and there is still a lot of art and craft in making the prototype into the thing it was prototyping. Point an agent at &amp;quot;build me a personal site&amp;quot; and you get a generic landing page with rotating gradient blobs. What you actually owe the project is judgment (or what many people are calling taste): which tools do which jobs, what the contracts between them say, what stays open and what stays private, which way a fact propagates when it changes. The tax moved up a level, from scaffolding to composition, and composition is a much better use of the human.&lt;/p&gt;
&lt;p&gt;Three repos came out of that judgment for me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/sc932/content_finder&quot; rel=&quot;noopener noreferrer&quot;&gt;content_finder&lt;/a&gt;&lt;/strong&gt; is a small, still-pre-v0.1 Claude Code-driven crawler that walks the public web for a person, verifies what it finds against stable identifiers, and produces a dossier on yourself: markdown files with citations and raw captures of every primary source it can find on the internet. I ran it on myself first. The output is the closest I have to a verified record of my public existence: twelve years of articles, every podcast and talk transcript I could recover, patents, papers, and press, each with the raw artifact saved so nothing has to be re-derived.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;resume&lt;/strong&gt; is my old LaTeX &lt;a href=&quot;https://github.com/sc932/resume&quot; rel=&quot;noopener noreferrer&quot;&gt;resume repo&lt;/a&gt;, modernized in a single April session after its long sleep. It now carries a markdown twin that is the source of truth for bio facts, a PDF build, and an AGENTS.md that defines the propagation order when a fact changes: dossier, then resume, then site, never the other direction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;scottclarkio&lt;/strong&gt; is the published surface &lt;a href=&quot;https://github.com/sc932/scottclarkio&quot; rel=&quot;noopener noreferrer&quot;&gt;as a repo&lt;/a&gt;: an Astro static site behind S3 and CloudFront, provisioned by Terraform, deployed by a GitHub Action on every push. It reads facts from the other two repos. And it ships the full agent-facing surface: a JSON-LD entity graph on every page, a markdown twin of every page and post, an &lt;a href=&quot;https://llmstxt.org&quot; rel=&quot;noopener noreferrer&quot;&gt;llms.txt&lt;/a&gt; and a concatenated llms-full.txt, a full-content RSS feed, and a robots.txt that explicitly welcomes AI crawlers by name, with a Content-Signal line that says yes to search, yes to AI input, yes to training. Building in the open means being fine with getting baked into the models, and getting baked in is the goal, not a concession: whether a model learns about me at training time or looks me up at answer time, the record it finds should be the one I wrote.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://scottclark.io/images/blog/building-this-blog-part-ii/fig1-two-readers.png&quot; alt=&quot;A site written for two readers. The dossier repo holds verified public facts, the resume repo holds bio truth, and the site composes both into two surfaces: HTML for the person, and a machine-readable stack (markdown twins, an entity graph, llms.txt, a full-content feed) for the agent they sent. The connective tissue between repos is markdown contracts. Facts flow one direction.&quot; /&gt;&lt;figcaption&gt;A site written for two readers. The dossier repo holds verified public facts, the resume repo holds bio truth, and the site composes both into two surfaces: HTML for the person, and a machine-readable stack (markdown twins, an entity graph, llms.txt, a full-content feed) for the agent they sent. The connective tissue between repos is markdown contracts. Facts flow one direction.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;The composition lesson is in the boundaries. Each repo does one job, none of them tries to be a CMS, and the connective tissue is markdown: CLAUDE.md and AGENTS.md files that tell the next agent session what&amp;#39;s true, what to read first, and what not to touch. When a fact about me changes, I know exactly which repo to edit, and the rest follow. There is no client-side JavaScript on the site; the only script tags carry JSON-LD data. There&amp;#39;s no analytics tracker either, just the CDN&amp;#39;s own logs: watching a live dashboard is fun, and fun isn&amp;#39;t signal; I don&amp;#39;t need to peek at an experiment on a minute-by-minute basis.&lt;/p&gt;
&lt;h2 id=&quot;what-i-didnt-build&quot;&gt;&lt;a href=&quot;#what-i-didnt-build&quot;&gt;What I didn&amp;#39;t build&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The list of what I didn&amp;#39;t build matters more than it used to, because the old constraint no longer enforces it.&lt;/p&gt;
&lt;p&gt;I built content_finder because the artifact didn&amp;#39;t exist: there was no off-the-shelf way to produce a verified, citable corpus of my own public footprint, so the only path to the dossier was the tool. Halfway through drafting a post, I also started designing a markdown collaborative-editing tool in my head, because pair-editing prose with an agent in a terminal has real friction. Then I caught myself: editors exist, and the artifact I was trying to ship was the post.&lt;/p&gt;
&lt;p&gt;When the marginal cost of building a tool approaches zero, &amp;quot;can I build it&amp;quot; stops being the question, and &amp;quot;should I build it for this artifact, in this moment&amp;quot; is the question that remains. That&amp;#39;s an explore/exploit tradeoff at the tool layer, the same one I spent years on in Bayesian optimization at SigOpt. Exploit, ie use what exists, is still the right default for almost everything, but the reason changed: it used to be that building (exploration) was too expensive, and now it&amp;#39;s that your judgment is the scarce input and the backlog of artifacts is long. I built content_finder because I needed the dossier. I didn&amp;#39;t build the editor because I just needed the post and Google Docs does just fine.&lt;/p&gt;
&lt;h2 id=&quot;it-compounded&quot;&gt;&lt;a href=&quot;#it-compounded&quot;&gt;It compounded&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The site turned out to be the trailhead, not the destination. This July, the same composition pattern shipped two more sites in one night: a company site with its own blog for &lt;a href=&quot;https://talariasci.com&quot; rel=&quot;noopener noreferrer&quot;&gt;Talaria Scientific&lt;/a&gt;, the company I&amp;#39;m building now, and a rebuilt &lt;a href=&quot;https://distributional.com&quot; rel=&quot;noopener noreferrer&quot;&gt;distributional.com&lt;/a&gt; that restored years of the old company&amp;#39;s technical archive at the original URLs. Every post on all three ships with the same agent-facing surface this site has. The same night, this site got the blog section you&amp;#39;re reading, which is how a post titled Part II finally acquired a place to exist.&lt;/p&gt;
&lt;p&gt;The build discipline scaled with it. Before these posts go live, the diffs are reviewed by frontier models from five different labs (Anthropic, OpenAI, xAI, Moonshot, and Thinking Machines), and the union of their findings, most found by only one of them, becomes the fix list. How that review loop works is a post of its own; the short version is that agents wrote the estate, different agents attacked it, and I adjudicated.&lt;/p&gt;
&lt;h2 id=&quot;the-speed&quot;&gt;&lt;a href=&quot;#the-speed&quot;&gt;The speed&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The receipts are what still surprise me.&lt;/p&gt;
&lt;p&gt;The resume repo is the cleanest one: regular commits through October 2016, then silence, then a single commit in April 2026 titled &amp;quot;Modernize resume; align CV/md; add AGENTS.md and fork guide&amp;quot; that did more than the previous five years combined. When the company &lt;a href=&quot;https://distributional.com/blog/distributional-is-now-talaria&quot; rel=&quot;noopener noreferrer&quot;&gt;pivoted to Talaria Scientific&lt;/a&gt;, the resume, the CV, the PDF, and the site all updated the same afternoon, because a fact now has one home and agents carry it everywhere else.&lt;/p&gt;
&lt;p&gt;This site went from first commit to live behind CloudFront in about ten weeks of part-time sessions, including the AWS infrastructure, the DNS migration, and the whole agent-facing surface. The AIO endpoints are the part I would never have gotten to alone; JSON-LD schema authoring is exactly the kind of yak-shaving that kills a research week, and it&amp;#39;s exactly what an agent eats without complaint. On a normal weekday I have a handful of agent sessions open, and the one working on this site is rarely the one I&amp;#39;m watching.&lt;/p&gt;
&lt;p&gt;At the end of the day, the work I did is the work that was supposed to be there all along: every design decision, every fact, every editorial call, every judgment about what not to build. What the agents ate was the tax that used to stop the project before that work could start.&lt;/p&gt;
&lt;p&gt;In 2014 I wrote &amp;quot;Building this blog: Part I&amp;quot; and then went quiet for twelve years. This is Part II. It didn&amp;#39;t feel 10x faster to make; it felt 100x faster, and somewhere in that gap is escape velocity: the difference between a backlog item that survives another decade and the post you&amp;#39;re reading right now. Part III should take less than twelve years. If you&amp;#39;ve got a workbench of your own gathering dust, it might not need another decade for you to own your slice of the web too.&lt;/p&gt;</content:encoded><category>Building Things</category><category>proof</category></item></channel></rss>