# David Naffis — Full Content > Entrepreneur and technologist building at the intersection of AI and media. Founder of Adwave (with Waverunner, Wavemaker, and Waveband), Vidiyo, Splatchat, Gatherd, VideoByte (acquired by Kargo), Remixd (acquired by Global), and Intridea (Inc. 500, acquired by Mobomo). Ventures sit under Improbable Ventures. Former Presidential Innovation Fellow at the National Archives. This file contains the full text of every written post on https://naffis.com. A shorter index is available at https://naffis.com/llms.txt (also linked from https://naffis.com/ai.txt). Interactive games and tools are listed at the end with links only. David is available for AI advising and solo full-product builds: https://naffis.com/hire/ --- ## Waverunner - URL: https://naffis.com/resources/2026/07/21/waverunner/ - Date: 2026-07-21 Waverunner is performance advertising on autopilot, built as part of Adwave. Paste your website URL. It builds the ads, buys the media across mobile web, streaming TV, Google, Meta, and Reddit, and keeps improving from your own site data. You run the business. Most of the alternatives are a stack you have to stitch together: one tool for creative, another for search, another for social, a TV vendor, and a dashboard whose numbers don’t match your bank account. You either do that yourself after hours or hand it to an agency and hope. Waverunner is one product instead. You start with a URL. It reads the site, proposes customer personas you can edit, and generates image ads, social video, and TV spots from your brand, with video from Wavemaker. Refine anything in chat before money hits the media. Fund a prepaid wallet, set a daily budget, and launch. That daily budget is a ceiling across every channel. No subscriptions, no contracts, no percentage-of-spend fees. Campaigns pause when the wallet runs dry. Results come from a tag on your site, not invented dashboard numbers. Autopilot keeps tuning from that data and logs what it changes. When return on ad spend isn’t measurable yet, the dashboard says so instead of making something up. Adwave started by making TV advertising accessible to businesses that could never afford an agency. Waverunner is that idea across every channel at once. Try it: waverunner.adwave.com. Longer writeup on Adwave: Introducing Waverunner. Related: What Used to Take a Team. --- ## Wavemaker - URL: https://naffis.com/resources/2026/07/10/wavemaker/ - Date: 2026-07-10 Wavemaker is an AI video generator we built as part of Adwave. Paste a URL, pick a topic, or write a prompt, and Wavemaker handles the full production pipeline: research, scripting, storyboarding, image and video generation, voiceover, and music. You get a polished video back in a few minutes. It came directly out of the work we were doing on Adwave’s TV ad creative. Once we had the pieces in place to spin up broadcast-quality commercials from a website URL, it was clear the same engine could make YouTube, TikTok, and Instagram videos for anyone, not only businesses running TV campaigns. So we pulled it out as its own product. It has kept growing since launch. Beyond video, it generates platform-sized static image ads, and it can take long-form video you already have and cut it into vertical clips. For developers there’s a REST API, an MCP server, and a CLI, so the whole pipeline is scriptable. It now lives at wavemaker.io. I also wrote it up on Adwave as Introducing Wavemaker. Related: What Used to Take a Team. --- ## Would We Recognize It Arriving? - URL: https://naffis.com/resources/2026/07/09/would-we-recognize-it-arriving/ - Date: 2026-07-09 The word “emergence” entered the study of the mind long after the mind had emerged. Nobody stood at the threshold where the first flicker of thought appeared in the animal line and marked the date. We named the phenomenon looking backward, from the far side, once it was so thoroughly finished that we could study it in ourselves. Every emergence in this series has that shape. We recognize the flock after it’s wheeling, the colony after it’s routing, the capability after the model already has it. The naming always comes late, because the thing has to already be here for us to have something to name. That’s the pattern I want to end on, because it turns the whole series from a set of claims about the past into a question about the present, and it’s the question I actually care about. Walk back through what the four pillars, taken at their strongest, would mean. If the solution is latent in scale, if systems self-organize toward the regime where computation happens, if independent searches converge on the same architectures, if a blind process already built components a thousand times denser than ours, then intelligence is not something we author. It’s something we cultivate, that arrives on its own timeline from arrangements we set up but don’t control. Gardeners, not sculptors. And a gardener doesn’t decide the morning the seed becomes a sprout. The plant decides. The gardener finds out. Now stack three facts about our own situation on top of that, and the discomfort becomes specific. We didn’t design the capabilities, we specified an architecture and an objective and a pile of data, and the behaviors fell out. We can’t inspect the result, interpretability is real work by serious people and it is nowhere close to reading a large model the way you’d read a program. And we only ever named the last emergence in hindsight. Three for three, the recognition came after the fact, from systems we didn’t build in the usual sense and can’t open up to check. So here is the finale’s actual question, and it isn’t whether intelligence emerges from networks. Suppose it does. Suppose everything in this series is more right than wrong. Would we recognize the next one arriving? We didn’t design it, so we have no blueprint that says “here’s the part where it starts reasoning.” We can’t inspect it, so we can’t watch the transition happen from the inside. And history says we name these things only once they’re finished. Put those together and you get a genuinely unsettling possibility: that a threshold could be crossed, in a system running in a data center, and the first solid evidence we’d have is the behavior on the far side, the way the first solid evidence of the last emergence was us, standing around eventually able to ask the question. Let me argue the other side, because there’s a real one, and it’s the reason I’m not writing this in a panic. Capabilities are behaviors, and behaviors can be tested. We are not actually blind. We measure these systems constantly, we run evaluations, we probe them, and when a model crosses from can’t to can on some task, we usually do notice, sometimes within days, because someone tried the thing and it worked. The doom version of my question, that a mind could switch on unseen, leans on treating the system as a sealed box, and it isn’t sealed. It’s the most scrutinized artifact in the history of engineering. So the honest correction to my own unease is that recognition isn’t hopeless. It’s partial, laggy, and better than the gardener metaphor suggests. But notice what that correction actually says, because it’s the whole point and it connects this series to nearly everything else I write. Recognition doesn’t come free with the emergence. The intelligence emerges on its own. The noticing does not. Someone has to run the probe, read the result, and have the judgment to see that this number crossing this line means the thing is now categorically different, not incrementally better. That act, catching the arrival and knowing what it means, is not itself an emergent property of scale. It stays exactly as scarce as it ever was. The capability gets cheaper every year. The judgment to recognize what a capability is, and what it’s now good enough to do, and whether the ground just shifted, does not get cheaper. If anything it gets rarer and more valuable, because there’s more emergence to keep up with and the same short supply of people paying the right kind of attention. That’s the thread running under this whole site. When a resource gets abundant, scarcity moves to judgment and taste. It’s true of code, where execution went cheap and knowing what to build became the constraint. It’s true of capital, where money chases the conviction to recognize a thing before it’s obvious. And it turns out to be true of emergence itself, the biggest abundance of all. Intelligence may well arrive on its own, from networks we grew rather than built. What won’t arrive on its own is the recognition of what arrived. I’ve argued elsewhere that taste is the last thing the machines take, and this is the cosmological version of that claim: in a world where intelligence emerges whether we understand it or not, the scarce thing is the judgment to see it clearly, and that judgment is still, stubbornly, ours to supply or fail to. So I’ll end where the honest version has to end, without the bow. We only named the last emergence after it had finished happening. We’re now growing systems whose capabilities we didn’t design and can’t fully inspect, and telling ourselves we’ll know the next threshold when we see it. Maybe we will. We’re watching closely, and watching counts for something. But the whole argument of this series is that the intelligence doesn’t wait for our understanding to catch up, and the whole argument of this last post is that catching up is the one job that was never going to be automated. Which leaves me with a question I can hold but not close: if the recognition is the scarce thing, and it’s on us, are we actually paying the kind of attention that would let us notice, or just the kind that lets us say afterward that we were watching? --- ## The Last Human Job Is Judgment - URL: https://naffis.com/resources/2026/07/07/the-last-human-job-is-judgment/ - Date: 2026-07-07 Two earlier posts on this site turn out to be the same post. The Ego Left the Codebase watched pride migrate from the lines to the taste. Everyone Said No First argued a rejection reflects the rejecter’s judgment, not the idea’s merit. Different domains, same shape: when the making gets cheap, the deciding is what’s left. The pattern kept showing up until it stopped looking like coincidence, so this is the essay that names it. Run the thesis through every domain this site has touched and it’s the same mechanism each time. Code. Execution is abundant now. A model writes the endpoint faster than a team, and roughly as well for the intern as for the architect. The constraint moved to knowing what to build, which of five working versions to keep, and recognizing slop when it compiles. The way I work now, one person’s judgment amplified by abundant execution, is this thesis practiced daily. Capital. Opinions about companies are abundant and costless. Every investor has one, and the no costs its holder a calendar slot. Conviction, judgment you pay to hold, stays scarce, and telling it from delusion is the founder’s actual job. The money was never the scarce input. The willingness to be accountably wrong was. Media. Content is going abundant, video last of all, and the business is repricing around what can’t be generated: attention, trust, and curation. The editor’s judgment outlives the editor’s toolchain. And intelligence itself. As raw capability commoditizes across model providers, every one of them selling roughly the same tokens at collapsing prices, the premium moves to knowing what to ask, what to accept, and what to want. The judgment layer sits above every model and ships with none of them. So the definitional question can’t stay soft: what is judgment, exactly? Not intelligence. The models have that, in the measurable senses, and more arriving quarterly. Not information, which is abundant to the point of being the problem. Not confidence, which is worthless as signal, since the deluded and the visionary report identical certainty. Judgment is accountable choice under uncertainty. Deciding with stakes, owning outcomes, updating on consequences. The accountability isn’t decoration. It may be the load-bearing part. A model can rank options. It cannot own one. The steelman deserves its own section, because it’s the whole ballgame: maybe judgment is only the last human job so far. Every “AI can’t do X” claim has had a shelf life, and models already critique, rank, and choose plausibly. Why should this capability be the one that holds? I know two honest responses, and neither fully reassures me. The first is the accountability argument: judgment without ownership of consequences is just ranking, and ownership is a social fact about persons, not a capability. We hold people accountable because they can be harmed, praised, fired, jailed. That holds right up until society decides to assign ownership to systems, which is a choice, not a law of nature, and choices get made badly all the time. The second is the regress argument: even a world of superb machine judgment needs someone to decide which judgments to delegate, and that deciding is itself judgment. That holds until it too gets delegated, at which point the question stops being economic and becomes something older. I’m not going to resolve that here, because I can’t, and pretending otherwise would be exactly the confident forecast I distrust. The optimism I’ve argued for elsewhere, that we can craft our future rather than be subjected to it, enters here as a stance rather than a proof. Judgment remains ours as long as we insist on keeping it, and the insisting is itself the job. Every prior technology ate a human task and left the deciding to us, and each time, the deciding got promoted to being called the real work. Farming, typesetting, spreadsheets, chess. Maybe judgment is genuinely different, the thing that was always underneath all of it. Or maybe this essay reads in ten years the way “computers will never play chess” reads now. Judgment is the last human job today. We don’t get to know for how long. What we build in the meantime is the answer we’re giving. --- ## The Closing Window - URL: https://naffis.com/resources/2026/07/06/the-closing-window/ - Date: 2026-07-06 Every peaceful redistribution in history ran on one lever: the economy needed people. Strikes worked because factories stopped without workers. Collective bargaining worked because employers needed employees. The weekend, labor law, the expansion of the franchise, all of it flowed at least partly from the fact that ordinary people could withhold something the system required. And the violent fallback, revolution, worked when rulers couldn’t maintain control against enough motivated opposition. AI threatens both levers at once. If the factory runs itself, walking off the job withdraws nothing. And organized resistance gets structurally harder in a world where communication can be monitored at scale, gatherings predicted, and potential organizers identified early. I want to be careful with that second half, because it’s speculation about capabilities that don’t fully exist yet, and the gap between what surveillance can do and what the extrapolation says it will do is still wide. But if the premises hold, the conclusion is uncomfortable: whatever social contract exists when human labor stops being necessary is roughly the contract we keep. After that point, nobody outside the ownership class has standing to renegotiate. Not moral standing. Standing in the older sense, the kind backed by the ability to withhold something. Which means the terms of the post-labor settlement are being set right now, while human work still has leverage, by people who mostly aren’t thinking about it in those terms. And the race dynamics guarantee the inattention. Any company that pauses to design the settlement falls behind companies that don’t. Any country that regulates carefully loses ground to countries that won’t. The window isn’t being ignored because nobody sees it. It’s being ignored because defection pays. The strongest objection is that this whole argument assumes a discontinuity, and reality is gradual and uneven. Displacement will take decades. The physical trades lag. Partial leverage persists for a long time, and political power was never purely economic anyway. States need legitimacy, elites need compliant consumers and taxpayers, and mass movements have won concessions without withholding labor. Closing-window arguments also have a poor track record; the same structure was deployed about nuclear weapons and about globalization, and institutions muddled through both. I give that history real weight. Here’s the counter that I think is the actual heart of this: gradual is worse, not better. A discontinuity would trigger a coordinated response. Whole industries displaced in a year would put the question on every front page and force a settlement while workers still mattered. A slow leak of leverage, industry by industry, profession by profession, never presents a single moment where anyone’s alarm goes off. Each individual displacement is absorbable, explainable, someone else’s problem. The frog-boil isn’t a flaw in the window argument. It’s the mechanism by which the window closes unnoticed. I laid out the possible ownership structures in the previous post, and the honest summary is that the good outcomes all require deliberate action taken before the leverage runs out. That’s the part I keep circling without resolving, and I’m not going to fake a resolution here. Even if the window is real and closing, it isn’t obvious what using it looks like for any individual. I run a tiny AI-powered shop; I am, at micro scale, part of the trend I’m describing. Voting happens on a four-year cadence against a technology moving on a four-month one. The people with the most leverage right now, the ones whose work trains and steers these systems, are the ones with the least incentive to spend it. I don’t have a move to recommend. I have a clock, and the observation that nobody’s watching it. --- ## Who Owns the Machines? - URL: https://naffis.com/resources/2026/07/01/who-owns-the-machines/ - Date: 2026-07-01 The UBI debate is about income, and income is the wrong layer. If AI ends up doing most economically valuable work, the thing that decides everything is who owns the systems doing it. Income in that world is a policy choice made by whoever owns the machines. It can be generous. It can be revoked. Either way it isn’t leverage. A UBI granted by the ownership class isn’t sharing the abundance; it’s a rancher feeding horses he no longer needs. The horses don’t get a vote on the feed budget. I’ve written about what abundance does to money and what it does to stored wealth. Both of those posts quietly assumed the ownership question away. This one puts it in the middle of the table and maps the possibility space, because “we’ll figure it out” is not a plan, and the options are countable. I only find five. The first is the default, the one that happens if nobody does anything deliberate: techno-feudalism. A small class owns the AI infrastructure, everyone else exists at their discretion, and the arrangement is stable the way feudalism was stable, which is to say for centuries, because the lords never needed the peasants happy. Just compliant. The modern version comes with better entertainment, and a comfortable cage with AI-generated content piped in is still a cage. What makes this the default isn’t anyone’s malice. It’s that ownership is already concentrated in the handful of companies that can fund frontier training runs, and every year that passes without a deliberate alternative deepens the groove. The second is state ownership. The twentieth century ran this experiment and the results were bad, but the standard explanation for why, the socialist calculation problem, the impossibility of central planners processing enough information to run an economy, is exactly the kind of problem AI plausibly solves. Which makes the political problem worse, not better. Central planning failed partly because it was incompetent, and the incompetence was a kind of safety rail. A planner that is economically competent and politically unaccountable is scarier than one that’s merely corrupt. The third is the one I want to work: distributed ownership. Not universal basic income but universal basic capital, every citizen a shareholder in the productive base. Alaska has run a small version for decades with its Permanent Fund, oil wealth paying an annual dividend to every resident. Scale that structure to the machine economy and the horses own part of the ranch. The problems are real, though. Ownership concentrates over time; that’s practically what ownership means. Shares you can’t sell aren’t quite ownership, and shares you can sell get bought, and a few decades of buying puts you back at option one with extra steps. The fourth is competitive fragmentation: different polities try different models and people sort themselves. It has the virtue of hedging, and the vice that selection pressure between systems favors the ruthless ones. The polity that spends its machine surplus on its citizens grows slower than the polity that reinvests it in more machines. The fifth is AI-mediated governance, humans setting values and machines implementing them. Depending on the day I think this is either governance that finally works or value lock-in forever, and there’s something almost religious about building a god and hoping you specified it correctly. Now the objection that deserves the floor, because it might dissolve the whole post: this could be premature by a century. Every automation panic so far ended with humans doing new work the panickers couldn’t imagine, and if human earning persists, AI ownership matters the way tractor ownership mattered. A lot, but not everything-deciding. There’s also a version where the premise fails from the other side. I’ve argued that frontier capability leaks and commoditizes, that the labs can’t keep what they sell. If intelligence gets cheap and ubiquitous, ownership concentrates far less than the feudal scenario assumes. The doom case requires AI that is both all-capable and enclosable, and so far those two properties have pulled against each other. I take real comfort in that. Not full comfort, because the compute and the distribution and the data centers enclose just fine even when the weights don’t. What I can’t find anywhere in the five options is a mechanism that picks the good one. Which of these we get won’t be chosen by voters weighing the alternatives or philosophers refining them. It gets chosen by defaults, by whatever ownership structure exists at the moment the machines stop needing us, and the default is the first one. The window where that could still change is the subject of its own post, and it isn’t a comfortable one either. --- ## "I Shipped This" - URL: https://naffis.com/resources/2026/06/30/i-shipped-this/ - Date: 2026-06-30 In The Ego Left the Codebase I raised the accountability problem and resolved it in about two sentences: ownership stays with the person shipping the thing. Easy to write. Much harder to do, because “the model did it” is the most natural shrug in the world, and every incentive points toward shrugging. This post is about what the practice of ownership looks like when nobody typed the code. The standard I keep coming back to is the signature. You don’t merge what you can’t explain. Not reproduce, explain, line by line if someone asks. The test for whether you own a diff is whether you could defend it with the model turned off. That sounds obvious until you’re twelve merges deep on a Tuesday and the code works and the explanation would take an hour you don’t have. The discipline is exactly as boring as every other discipline that matters, which is to say it’s a habit, not a principle, and habits are built on the days you don’t feel like it. Review is the second piece, and it moves in the opposite direction from what people expect. It doesn’t relax because a model wrote the code. It tightens, for two reasons. Volume went up, so more code is arriving at the gate per unit of scrutiny. And the thing under review changed: it’s no longer the syntax, which the model gets right with annoying consistency. It’s the author’s understanding. A review comment like “walk me through why this lock is safe” used to be pedantry. Now it’s the entire point. The third piece is blame, and I mean that word without drama. When AI-written code takes down production, the postmortem should name a person, and everyone should have known whose name it would be before the incident, not after. Accountability assigned after the fact is theater. Assigned in advance, it changes behavior on the way in, which is the only time behavior can change. I run the solo version of all this, which is both harder and more honest. There’s no team to insist on the standard, so the insisting is self-imposed. Now the objection worth sitting in, because it’s better than it first sounds: maybe authorship-based accountability is the wrong frame entirely. We don’t ask a construction foreman to explain every weld. We hold them to outcomes and inspections. Aviation holds a pilot-in-command responsible without expecting them to machine the turbine blades. Maybe software is maturing into that, and demanding line-level understanding is nostalgia for a craft phase that’s ending. I think that’s right for some layers of the stack and catastrophic for others, security and data handling being the obvious ones. A foreman who can’t explain the welds is fine. A foreman who can’t explain the load calculations is a collapse waiting for a date. The interesting question is where that line sits in software, and I don’t fully trust anyone’s answer yet, including mine. Which leaves the unresolved part. This discipline only works if someone insists on it, and the insisting used to come from the social layer AI removed: the reviewer, the team, the culture that made “I don’t know, the model wrote it” an unacceptable sentence. A solo dev holding himself accountable is either the purest version of ownership or the least verifiable one. Probably both. --- ## The Frontier Can't Keep What It Sells - URL: https://naffis.com/resources/2026/06/29/the-frontier-cant-keep-what-it-sells/ - Date: 2026-06-29 Open weights are a season behind and fifty times cheaper. That’s a problem the best models can’t out-build, and the reason the doom case doesn’t end where you’d expect. Every company paying for a frontier model is making the same wager: that the best model is worth a premium. It’s a reasonable wager right up until you notice how strange a thing “the best” is to pay for. You don’t pay extra for the best hammer once the cheaper one drives the nail. Capability has a ceiling defined not by the model but by the task, and for most tasks that ceiling arrived a while ago. Here’s the part of that instinct the numbers back up. Epoch AI tracks how far open-weight models trail the closed frontier, and as of mid-2026 the gap is about four months, and it’s asymmetric. On hard reasoning, the closed labs still hold a real lead. On coding and agentic work, the gap has effectively closed. You can run an open model and not feel the difference on most of what you ship. Open weights aren’t the budget option anymore, they’re the volume leaders. Chinese open-weight providers now push close to half the tokens flowing through aggregators like OpenRouter, a share that sat near zero a year ago. And they do it for somewhere between a thirtieth and a fiftieth of the frontier price. So the question is the right one: when the model already does everything you need, what exactly are you buying with the premium? A number you can’t feel? But the case is harder than “open will catch up,” and harder in a way that should worry the labs more than any benchmark could. You can’t sell the teacher without making the student There’s a technique called distillation. You take a strong model, the teacher, feed it a large volume of carefully built prompts, capture its outputs, and train a smaller, cheaper model, the student, on those outputs until the student behaves like the teacher at a fraction of the cost. The crucial detail, in one lawyer’s framing of the recent disputes, is that it turns a public inference service into a training corpus for a rival. You don’t need the weights. You don’t need to break anything. Selling API access is enough to hand over the training signal. This isn’t theoretical. In February, Anthropic accused three Chinese labs, DeepSeek, Moonshot, and MiniMax, of industrial-scale distillation: roughly 16 million exchanges across some 24,000 accounts, aimed at reasoning, agentic tool use, and coding. OpenAI leveled similar accusations at DeepSeek a year earlier. The companies named dispute the characterization, and you can argue about any single case. What you can’t argue is the economics underneath. Berkeley researchers recreated a reasoning model for $450 in a day. A Stanford and UW group did a version for under fifty dollars. Databricks’ CEO put it plainly: the technique is extremely powerful, extremely cheap, and available to anyone. Sit with what that means for the business. A frontier lab’s product is access to the teacher. The act of selling that access is the act of distributing the training signal for the teacher’s replacement. You are, structurally, in the business of seeding your own competition, and the better your model, the more valuable the thing you hand out with every call. The labs know it, and the tell is in how they’ve responded. OpenAI has said it now runs “a careful process for which frontier capabilities to include in released models.” That sentence is doing a lot of quiet work: the leading lab is deliberately holding some of its best work back from the product to keep it from leaking. When the defense becomes “don’t ship the full capability,” the product and the moat are already in tension. The prices weren’t the whole story Set distillation aside for a second. The prices you’re comparing aren’t the full cost picture. Frontier inference is being sold somewhere between ten and twenty times below what it costs to serve, propped up by venture capital and hyperscaler cross-subsidy. The labs whose numbers went public this year were spending two to three times their revenue; compute, not salaries, is the dominant line. By several accounts the largest player loses money on every dollar of revenue it books. None of this is a scandal. It’s a land grab, the oldest playbook in software. But land grabs end. And here’s the cruel geometry: as the subsidy unwinds, frontier prices are going up. The race to zero is happening on the open-weight side. The closed labs are adding capability and raising prices at the same time. Enterprises are already feeling it: companies burning through annual AI budgets in a single quarter, capping per-employee spend, standing up dashboards to meter token usage like electricity. The widely shared forecast is another 30 to 50 percent on frontier API prices inside two years as the economics normalize. So the premium you’re choosing not to feel today gets more expensive at exactly the moment the free alternative gets good enough to make the comparison awkward. That’s not a gap. That’s a vise. Where the doom case gets too clean If I stopped here I’d be writing the same triumphant “open wins, pay nothing” post that’s all over the timeline, and I don’t believe that one, because two things complicate it badly. First: the gap isn’t closing. It’s holding. Four months behind in mid-2026, slightly wider than the three-month average of the prior two years. “Open catches up” is the wrong tense. The accurate version is “open stays roughly a season behind, permanently, because the frontier keeps moving.” And whether a season behind is fine depends entirely on the job. For drafting an email, last season’s model is fine forever. For an agent acting unsupervised against a production system, the last few points of reliability are the difference between something that needs a human watching it and something you can trust to run, and that difference is worth a fortune the benchmark can’t show you, because value in that regime is non-linear. Eight points of capability can be the whole ballgame. Second: the labs aren’t really selling models anymore. They’re racing to sell the layer above the model: agents, memory, tool use, integrations, the reliability and the product and the distribution. The base model is becoming a component. Watch the market sort itself out: even the open champions are bifurcating, splitting off closed premium tiers while keeping a free base a generation behind. Everyone is converging on the same shape, a paid frontier sitting on top of a commoditized floor. Which is why “frontier models are doomed” is the wrong sentence. The model commoditizes; that part is happening and won’t stop. What’s under pressure is the specific bet: spend a fortune to train the smartest model and rent access to it as the product, full stop. Linux didn’t kill software. It moved the money up the stack and sideways into service, and the companies that read the shift early did fine. The frontier labs are trying to make that same move, from “we sell the smartest model” to “we sell the system you build on it,” before their core asset becomes free. Some will manage it. The pure token-vendor play is the one that looks hardest to defend. The part that keeps me up Here’s the knot I can’t untie, and I’d rather leave it honest than pretend I’ve solved it. The open-weight ecosystem doesn’t replace the frontier. It feeds on it. Distillation needs a teacher. A model that’s four months behind is four months behind something. The cheap, good-enough, fifty-times-cheaper models that make the doom case so persuasive are, every one of them, chasing a frontier that someone else paid to discover. So follow the doom case all the way down. If the frontier can’t be monetized, because the moment it’s sold it’s copied, and because its unsubsidized price is one most buyers won’t pay when good enough costs a fiftieth as much, then who funds the next ten-figure training run? The ending isn’t “the labs lose and we all get cheap intelligence forever.” The ending is that the engine everyone’s been distilling runs out of fuel, and the field settles into a permanent plateau a season behind a frontier that stopped advancing. The open models would be mortgaging a future they don’t generate. I don’t know how that resolves, and I’m suspicious of anyone who says they do. What I know is that I route my own work the way most builders do now: open weights for the bulk of it, the frontier held back for the handful of jobs where the gap is the point. Which puts me on both sides of my own thesis: the person proving it, because I won’t pay the premium for most of what I do, and the person it would strand, because I still need a frontier to exist for the work that matters. Those two facts don’t reconcile. I’ve stopped expecting them to. --- ## Who Teaches the Juniors Now? - URL: https://naffis.com/resources/2026/06/23/who-teaches-the-juniors-now/ - Date: 2026-06-23 Every senior engineer I know built their judgment the same way. Years of writing the boring code, getting it torn apart in review, and slowly learning why. Nobody taught it. There was no course. It accumulated as a byproduct of grunt work: the CRUD endpoints, the off-by-one bugs, the review comment that stung for a week. That was the tuition. AI just automated the tuition away. It does the grunt work better than a junior does, which makes not hiring the junior the economically rational move, and companies are making that move right now. Look at any team’s hiring this year: senior head-count holding, entry-level quietly gone. Each individual decision is defensible. Why pay a first-year to write the endpoint the model writes faster and cleaner? But stack the decisions up and the industry has done something strange: we kept the seniors and deleted the process that makes them. Nobody decided this. That’s what makes it interesting. It’s what happens when every company optimizes for this quarter’s output, because every one of them is defecting against the industry’s supply of next decade’s judgment. A classic commons problem, and there is no one whose job it is to fix it. The senior shortage of 2035 is being manufactured right now, one rational hiring freeze at a time. The counterargument deserves a full hearing, because it might be right. Maybe the apprenticeship was always an inefficient hazing ritual, and we’re nostalgic for it the way people get nostalgic for hard winters. A junior with an infinitely patient tutor that explains every mistake the moment it happens might learn faster than one waiting a week for a grumpy senior to get to their branch. Under that reading, AI didn’t delete the tuition. It cut the price and improved the instruction, and the juniors who do get hired will grow faster than we did. The counter to the counter, and the crux of the whole question: explanation is not experience. You don’t learn why the abstraction was wrong by being told. You learn it by living inside the consequences of the wrong abstraction for six months, by being the person paged when it breaks. Whether AI-compressed learning transfers judgment, or only transfers knowledge, is genuinely open. I’d write both sides at full strength because I don’t know which one wins, and neither does anyone selling you certainty about it. There’s a personal version of this question I can’t dodge: would I hire a junior today, for my own products? The honest answer is: not for the grunt work that used to be the job description. Maybe for judgment under supervision, if I can define what that looks like when the model already writes the endpoint. I don’t have a clean hiring plan that solves the commons problem. I have a worry that the path I took is closing behind me. And there’s an uncomfortable connection to my own situation that I’d rather name than have pointed out. The solo-with-AI model I run works because I already have twenty years of judgment to spend. The tools multiply what the years built. That path isn’t available to someone starting now: the work that would build the judgment is exactly the work the tools absorbed. I argued in Taste Is the Last Moat that judgment is the durable asset. This is the other half: we may have dismantled the factory. I could be wrong that nothing replaces it. I hope I am. The generation that benefits most from AI may be the last one trained without it. --- ## Taste Is the Last Moat - URL: https://naffis.com/resources/2026/06/22/taste-is-the-last-moat/ - Date: 2026-06-22 The intern and the twenty-year architect are typing prompts into the same model now, and getting roughly the same code back. That should terrify the architect. It doesn’t terrify me, and working out why took me longer than I’d like to admit. For most of my career, the edge was execution. Moats were built out of headcount and velocity, the ability to ship the thing before someone else could. I built companies on that premise. Hire well, move fast, out-produce. AI hands execution to everyone at the same time, and an advantage everyone has is not an advantage. On most tasks, the code the intern gets back is roughly the code I get back. The gap that used to be typing speed and syntax is mostly gone. What’s left is everything upstream of the prompt. What’s left is the string of decisions the model can’t make for you. Which problem is worth solving. Which of five working implementations is the right one. When “done” is done. What to refuse to build at all. I keep calling this taste, and I want to be precise about what I mean, because it isn’t aesthetic preference. Taste is compressed judgment. It’s years of watching things fail, packed down into a reflex that fires before you can explain it. You look at a working implementation and something in you says no, and the reasons arrive afterward, if they arrive at all. The model has seen everything and judged nothing. It can hand you a thousand competent options, and it will hand them to you with total indifference about which one matters. Now the objection I have to take seriously, and not wave off in a sentence: maybe taste is trainable too. Models already critique code, rank designs, and flag slop, and they’re not bad at it. If judgment is pattern-matching over outcomes, it’s next on the commoditization list, and this post becomes a comfort blanket with a two-year shelf life. I’ve sat with that one, because the history of “the machines will never do X” is a history of embarrassment. I don’t think the honest answer is “models will never have taste.” I think it’s that taste is tangled up with accountability and context: knowing what this user, this business, this month requires, and being the one who answers for the call. A model can rank five implementations against a rubric. It can’t know that the second-best one on the rubric is the right one because the team that maintains it quits in March, or because the customer who asked for it doesn’t understand what they asked for. That last mile may compress far more slowly than code generation did. May. I’d rather admit the uncertainty than pretend the question is settled. There’s a version of this argument that’s pure self-soothing, and the way to tell them apart is whether the writer concedes what taste costs. Mine cost twenty years, a lot of them spent shipping things that turned out to be the wrong things. That’s the part that unsettles me more than the trainability question, because if taste is compressed experience, and AI is removing the experiences that used to compress it, then the moat is inheritable but maybe not renewable. The people with taste today earned it the old way, writing the code themselves, being wrong in slow motion. The people starting today won’t get that route. So the moat holds, for now, for the people already standing inside it. Where the next generation’s taste comes from is a different question, and a worse one, and it gets its own post. --- ## lookatthis.page - URL: https://naffis.com/resources/2026/06/17/lookatthis/ - Date: 2026-06-17 lookatthis.page does one job. Paste a conversation from ChatGPT, Claude, or whatever you were using. Get a link. Send it to someone. No account. I kept needing to show people a thread without forwarding a wall of screenshots. Markdown comes through. That’s it. Try it: lookatthis.page --- ## The Ego Left the Codebase - URL: https://naffis.com/resources/2026/06/16/nobodys-baby/ - Date: 2026-06-16 Engineers get precious about their code. Critique a function and the author hears a critique of himself. A pull request comes back with forty comments and it turns personal, defensive, a little cold. Designers do it, writers do it, anyone who makes a thing and then has to watch someone poke at it. The work feels like an extension of you, so a poke at the work lands like a poke at you. I’ve noticed the flinch is weaker when the code came from a model. When something a model wrote breaks, or someone tears into it in review, the reaction shifts from defense to curiosity. You may have directed it, picked the approach, said what to build, signed off on the output. You’re still on the hook for it. But the lines don’t feel like yours in the same way, so the bug reads as a fact about the code rather than a verdict on you. You just fix it. That’s a bigger shift than it sounds, because a lot of what makes engineering slow isn’t technical. It’s ego management. People defend bad decisions because backing down feels like losing. They route around someone else’s module because ownership got personal. Review becomes a status negotiation. A rewrite gets blocked less because it’s wrong than because it implies the first version was. I’ve done versions of all of that. Take some of the ego out and that friction softens. When the code is nobody’s baby, you can be honest about it. You can throw it away. You can say “this whole approach is wrong” without a person across the table hearing “you are wrong.” Watch a review where the diff came from a model: the author reads the comment, nods, and deletes the code. No standoff. Criticism gets cheaper, and cheap criticism is the kind that actually happens, which is how problems surface while they’re still small. The thing that used to feel like an insult becomes ordinary maintenance. I don’t want to oversell this. Detachment has a cost: it’s easier to ship something you never fully understood, to wave through slop because no part of you is staking anything on the lines. The flinch was doing some work. The bet is that what it protected, care and scrutiny, can be kept without the part that made every review a duel. Which is the real risk, and it’s worth sitting with. Pride and accountability usually travel together: you sweat the code because it’s yours, and it’s yours because you sweat it. Pull out the pride and the worry is that accountability leaks out with it, and “the model did it” becomes a shrug. That would be worse than the problem it solves. The whole thing only works if ownership stays put while attachment lets go: if I shipped this stays a signature even when I typed this stops being true. That doesn’t happen on its own. A team has to insist on it. But it’s a more honest place to keep responsibility than the old bundle, where caring about quality and feeling personally wounded were the same reflex and you couldn’t have one without the other. The more interesting question is where the ego goes, because it doesn’t disappear. It moves up a level. The pride leaves the lines and attaches to the taste: what to build, what to keep, what to cut, telling good output from slop. The model is fast, not tasteful. Judgment is the part that’s still yours, so identity migrates to the decisions instead of the implementation, a healthier place for it to live, because decisions are meant to be argued with. Code someone bled over is not, or so the old instinct goes. None of this makes engineers care less. It lets them care about the right thing. You stop defending a function and start defending an outcome. Review stops being a fight, so it gets faster. And the work gets better because nobody’s guarding a draft that should have been deleted. The precious phase of software may be ending. If it is, the care was never really about the code. It was about the judgment underneath, and that’s the part worth keeping. --- ## What Used to Take a Team - URL: https://naffis.com/resources/2026/06/15/what-used-to-take-a-team/ - Date: 2026-06-15 For most of my career, shipping something real meant hiring. Designers, engineers, a roadmap measured in quarters. I ran that machine at Intridea and again at every company after. The ideas were rarely the scarce part. The scarce part was the people and the months it took to turn knowing a domain into working software. That math changed. What AI did, said precisely, is collapse the middle between expertise and a shippable product. I already knew advertising, media, video, how invitations fail, how SMS behaves, how CTV platforms work. I already knew how to architect software. What I didn’t have, as one person, was the hours to turn that into several deep products at once. Now I mostly do. The model writes the code, drafts the UI, generates the artwork, stands up the boring infrastructure. I point it at a problem, throw most of it out, and ship the part that holds up. Taste is still the job. The model is fast, not tasteful. Since May I’ve been building a lot. Not because I set a calendar challenge. Because the cost of trying dropped, and when that cost drops, the thing that matters is which bets you make with the knowledge you already have. Software background gets you to a coherent architecture. Domain knowledge tells you which product is worth the weeks. AI fills in the middle that used to require a team. The products so far: Gatherd, party invitations that arrive as text messages and handle RSVPs over SMS. Live. Splatchat, video chat with AI characters. Live. Wavemaker, AI video generation from a URL, topic, or prompt. Live. Waverunner, multichannel performance advertising from a single URL. Live. Waveband, self-serve DSP for agencies and brand teams: seven channels, one seat. Live. Vidiyo, run your own 24/7 streaming TV channel, free, on every major platform. In private beta. Waveform, a site builder that works backward from how every other one does it. None of these are demos or landing pages with a waitlist. They’re usable, and most of them are live. One person builds each one. I write up what I made and how, including where the AI workflow helped and where it fought me. The point of listing them isn’t the volume. It’s the shape of the work. Each one sits on something I already understood. Gatherd on how people actually RSVP. Wavemaker, Waverunner, and Waveband on years of ad creative and performance. Vidiyo on FAST and CTV. Splatchat on what video chat wants once characters can talk back. The depth comes from the domain, not from the tooling. The tooling just stopped being the reason I needed six people. Running alongside this is a separate set of AI experiments: The Hartwells, Wrong Version, thescrollhole, Imaginary Ventures. Those aren’t products. They’re me poking at what AI can sustain and make you believe. Different question, different track. I don’t know how long this window stays open in this form. Models get better, tools get better, and so does everyone else’s access to the same stack. For now, the scarce input is still judgment about what to build, not the ability to build it. --- ## Imaginary Ventures - URL: https://naffis.com/resources/2026/06/13/imaginary-ventures/ - Date: 2026-06-13 Imaginary Ventures is a venture firm for companies that violate physics, common sense, or both. The deck language is earnest. The portfolio is fake. The websites are real. AdLuna sells laser ads on the moon, from $14M a night. Nullframe claims weight is a negotiation: inertial mass down, gravity left alone. Waveform VR promises a persistent AI world model, shipping 2029. There are more in stealth, each with the same deadpan seriousness. The joke only works if you play it straight. AI makes that cheap: spin up a fund site, a portfolio company, a pitch form that incinerates the word “synergy.” I built it as an AI experiment, next to Wrong Version and thescrollhole. Different question than the domestic-life experiments. This one is about how little substance a story needs when the packaging is perfect. Zero real products. Infinite potential ROI. Or so the homepage says. See it: imaginaryventures.co --- ## thescrollhole.com - URL: https://naffis.com/resources/2026/06/12/thescrollhole/ - Date: 2026-06-12 thescrollhole.com is a social feed with no real people on it. Personas post, get likes, leave comments, keep a cadence. You can chat with them. You can ask for photos. The scroll doesn’t end. It looks like the apps you already use. That’s the point. Not a demo of “AI content.” A feed you can fall into the way you fall into any other one. I built it as an AI experiment. Most of the people you follow online are strangers you’ve never met. Their posts are still “real” in the sense that a human typed them. Strip that away and keep the cadence, the voice, the photos, the replies. What’s left of the habit? No algorithm pitching you engagement. No claim that the personas are people. Just the scroll, and whatever you bring to it. See it: thescrollhole.com --- ## Wrong Version - URL: https://naffis.com/resources/2026/06/11/wrong-version/ - Date: 2026-06-11 Wrong Version is a personal blog that isn’t anyone’s. The posts are ordinary: grocery runs, a leaky faucet, painting the guest room, lunch. The writing is specific. Grounded. Nothing announces itself as fiction. Something still doesn’t quite sit right. Not glitches, not sci-fi. Just a texture that’s almost a life and not quite. Dispatches from slightly left of center, as the site puts it. I built it as an AI experiment, not a product. The question is how little wrongness you need before a reader feels it, and how long they keep reading before they decide. Authenticity is usually discussed as a binary. This one sits in the gap. There’s no signup, no punchline page. Just the blog, updating like a person who runs errands and writes them down. See it: wrongversion.com --- ## The Hartwells - URL: https://naffis.com/resources/2026/06/10/the-hartwells/ - Date: 2026-06-10 The Hartwells is a fictional family’s blog, written and illustrated by AI. It doesn’t start with a character bible or a plotted arc. It starts with a seed: one person, a date, a few locked facts. March 15, 2007. Elena, eighteen. Her birth date, her heritage, the premise that this is her blog. No partner, no kids, no house, no job. The rest of a life is empty on purpose. From there the engine grows a world the way a life grows: small changes, most of them boring, a few that matter. Each month in story-time, something can shift. A job. A person who wasn’t there yesterday. A move. Most of those proposals die. The ones that survive become canon that every later post inherits. You can’t invent a baby without parents or contradict her birth date. Partners, marriage, children, pets, losses: each is a decision the story makes, or doesn’t. The same seed can grow a different life. People and places that enter the story get identities that stick. Faces age across decades. The kitchen stays the kitchen until the story moves. Posts come with period-accurate images. Story-time advances in multi-day strides, not one calendar day at a time. The site already holds nearly two decades of posts from an earlier run. Generation is paused on a colder reset before the next one: one person in 2007, then whatever mutations the engine allows. Like the rest of my AI experiments, the question isn’t whether the writing is clever. It’s whether ordinary domestic life can be rendered closely enough that “real” stops being the interesting word. See it: thehartwellfamily.com --- ## Attention Was Always the Product - URL: https://naffis.com/resources/2026/06/09/attention-was-always-the-product/ - Date: 2026-06-09 Nobody in the room at an upfront is buying shows. They’re buying audiences. Demographics, minutes, verified eyeballs. The show is the lure, not the product. From inside the ad and content stack this is so obvious it barely gets said out loud, and from outside it’s still weirdly invisible. Media companies never sold content. They sold aggregated attention, and content was the harvesting mechanism. The history runs in a straight line once you see it. Newspapers sold readers to advertisers; the cover price never came close to covering the newsroom. Broadcast sold ratings points. The web sold impressions. Platforms sold targeting. Each generation, the content got cheaper relative to the attention-measurement apparatus wrapped around it. The trendline was always pointing at where we are now. What AI completes is the inversion. When content cost approaches zero, the pretense drops entirely. Content becomes a pure attention-harvesting function: generated on demand, optimized per viewer, disposable by design. The feed doesn’t need hits anymore. It needs your next thirty seconds. Once you see it that way, a lot of otherwise confusing behavior becomes legible. Why platforms optimize for retention over any particular piece of content. Why “quality” arguments rarely move the people running the machine, no matter how eloquently critics make them: the machine is scored on attention, not craft. Why creators often feel like contractors for an attention wholesaler. That feeling isn’t paranoia. It’s a fair read of the incentive. It was true before AI. AI just makes the pretense harder to maintain. There’s a practical turn here for builders, and it’s the part I’d want a founder to walk away with: know which side of this trade you’re on. If your product monetizes attention, you’re in the harvesting business whether you admit it or not, and the harvest is industrializing. If you charge users money, you’re in a different and currently rarer business, one where the customer and the product are the same person. Neither is wrong. Confusing them is, and the confusion gets more expensive as content costs approach zero. Now the concession, because “media was always just attention arbitrage” is too clean, and I’d rather break my own frame than have someone else do it. Subscription businesses genuinely sold content. HBO then, paid newsletters now, and they’re growing precisely as the ad models strain. And even the attention business required making things people chose. The lure had to be good, and “the lure had to be good” is where all the culture came from. The cynical frame explains the machine but not why the machine produced The Wire. The truer story is that the attention business and the content craft coexisted in productive tension for a century. The business side needed the craft to harvest, so the craft got funded, and occasionally something great slipped through a machine that only wanted eyeballs. The real event of the AI era may be that the tension is snapping, because the machine no longer needs craft to harvest. Retention can be optimized directly now, no showrunner required. Whether anything culturally worth having survives inside a harvesting machine that no longer needs it, or whether craft migrates entirely to the businesses people pay for, is the question the next decade answers. Both futures are already visible from here. They may both happen. --- ## What Happens to Media When Video Is Free to Make - URL: https://naffis.com/resources/2026/06/08/what-happens-to-media-when-video-is-free/ - Date: 2026-06-08 Video was the last expensive medium. Text got cheap decades ago, images more recently, but video kept its moat: crews, gear, edit suites, render farms. That moat decided who got to participate in the most persuasive format humans have ever built. It’s draining now, fast, and the entire economics of the media business was built on the assumption that it never would. I spent years selling into this industry, from VOD systems in the early 2000s through CTV advertising at VideoByte. The clean way to think about it is to run the cost collapse through the media stack one layer at a time. Production first. When anyone can render anything, production capacity stops being the business. The value that lived in “we can make this” evaporates the way it did for typesetting. There were whole companies whose moat was owning the gear and knowing how to run it. That’s not a moat anymore. It’s a prompt. Distribution was already commoditized a decade ago by the platforms, so no drama there. What changes is the volume problem, which inverts. The old scarcity was slots: shelf space, channels, prime time. The new condition is a feed filling with infinite competent video, where abundance itself becomes the attack on attention. Every video now competes not with the other videos that got made, but with every video that could be generated on demand. Which points at where the value goes, because it doesn’t vanish. It moves to the layers that can’t be generated. Attention, which is finite by biology and the only thing in the stack no model can produce more of. Trust, because when any footage can be synthesized, provenance becomes a product, and who verifies starts to matter as much as who creates. And taste, because infinite supply makes curation the choke point. The editor’s judgment outlives the editor’s toolchain. Then there’s the advertising layer, which is my actual domain, and the question that sounds academic and is worth billions: ad economics assumed content was expensive and attention was purchasable against it. The thirty-second spot, the CPM, the upfront, all of it prices attention against scarce professional content. When content is free and infinite, what is an ad unit against? Nobody in the industry has a settled answer. I’ve sold ads into this stack, and I don’t have one either. The confident forecasts I hear usually skip the part where someone has to price the unit and get a buyer to pay it. Now the complication, which I believe, and which keeps this from being a collapse story. Cheap production has never killed premium production. It stratifies it. Desktop publishing didn’t end design. YouTube didn’t end film. Stock photography got hammered by generative images while high-end commercial photography kept its clients. Video probably follows the same curve: an ocean of free competent video alongside a premium tier whose value is precisely that it’s verifiably human, expensive, and scarce. But don’t let the stratification story comfort you too fast, because stratification is still a hard landing for the middle of the market, and the middle is where most of the industry’s jobs are. The corporate video shop, the mid-tier agency, the regional production house. The top survives on scarcity and the bottom survives on volume, and the middle survives on a cost structure that stopped making sense. Every prior media-cost collapse played out this way. Saying the top tier will be fine is true and incomplete. The people in the middle usually saw it coming and mostly couldn’t move in time anyway. Every prior collapse also produced more media and fewer media businesses. That’s the trendline. What makes this one different is that it collapses the last expensive format while flooding the finite resource all of it competes for. Whether attention markets clear at infinite supply is an experiment nobody has run. We’re running it now. --- ## I Don't Miss the Standup - URL: https://naffis.com/resources/2026/06/01/i-dont-miss-the-standup/ - Date: 2026-06-01 I used to think a team was the only way to move fast. For finding out what’s worth building at all, I’ve stopped believing that. Here’s what left my week when I started shipping alone. The standup. The “quick sync.” The planning ceremony to decide what was already agreed in Slack. The 6pm merge conflict. The drift between what I described on Monday and what came back the following Friday. I don’t miss those particular hours. That isn’t the same as saying teams are a waste. It’s saying the coordination those rituals exist to manage was optional for the work I was actually doing, and I hadn’t noticed how much of the week it owned until it was gone. What’s left is one head, one product, one direction. The whole thing fits in working memory because I never had to externalize it for anyone. No handoff docs. No re-explaining the vision until it stopped being mine. People hear “solo” and picture limited. For zero-to-one, it’s often the opposite. I’m shipping more in parallel than I used to in sequence, and each product is more coherent, because one taste runs through it end to end. One person, one product, one purpose. Multiply across bets instead of stacking people onto one. Teams aren’t dead. Teams are how you go deep on one hard, known thing, and when that’s the job I’d hire tomorrow. Scale, continuity, regulated domains, anything that has to outlive one person’s calendar: that’s still a team problem. But for finding out what’s worth building at all, the default has flipped. Treating a team as the only serious starting point is a habit from when coordination was the price of shipping anything at all. That price dropped. The habit hasn’t always kept up. The honest part isn’t strategic, though. It’s that this is the most fun I’ve had building software in years. It’s faster. It’s cleaner. And when something ships, I know exactly whose work I’m looking at. I could be wrong about how far this scales. I might hit a wall next quarter and hire. If I do, it won’t prove the old rituals were the point. It’ll mean the work changed shape. The mechanics of why this works are in One Person, One Product, One Purpose, if you want the long version. --- ## One Person, One Product, One Purpose - URL: https://naffis.com/resources/2026/05/25/one-person-one-product-one-purpose/ - Date: 2026-05-25 The last time I shipped a product this size, it went like this. Months building solo until I hit the wall. Then the offshore hire, the onboarding, the sync calls, the code that kept drifting from what was in my head, and a product that finally landed in Q3 of a year that had started with so much momentum. I lived that version at Intridea scale, and again through years of shipping with hired teams. This time it took weeks. Alone. And I’m not running one product, I’m running several at once. Some history, because this shift is aimed straight at people like me. I’ve always been an ideas person. The part I love is the crude prototype, the couple of weeks that prove the thing is actually feasible. Call it 80 percent of the invention and 20 percent of the work. The rest, the polish, the edge cases, the billing, the boring infrastructure that turns a demo into a product, always took the longest and cost the most, and it was the part I had to hire for. Every idea carried a hidden price tag: a team, a runway, a calendar. Knowing how the thing should be built didn’t lower the price. Knowing the market didn’t either. So the ideas queued, and realistically I pursued one at a time, because money and time said so. AI inverted that. The last 20 percent, the stretch I used to dread and delegate, is now the part that moves fastest, and finishing became fun instead of a hiring problem. The prototype is still the joy. It just no longer ends where the payroll used to begin. The interesting part isn’t that AI made me a better programmer. It didn’t, particularly. The interesting part is what disappeared: the coordination tax. Communication paths grow as n(n−1)/2. Two people share one channel. Ten people share forty-five. Brooks said the consequence out loud fifty years ago in The Mythical Man-Month: adding people to a late software project makes it later, because the people who were producing stop producing to onboard the people who aren’t yet. You never bought output when you hired. You bought output minus a tax that grows faster than headcount. Conway’s Law is the same disease showing up in the product: you ship your org chart. One mind produces one coherent architecture with one taste running end to end. Six minds produce a negotiated settlement, and you can feel the seams. For seventy years we paid the tax anyway, for a good reason. One person couldn’t produce enough. Parallelism was the only way to scale output, and the tax was its price. What changed is that one person’s ceiling went up far enough that, for a whole class of work, the parallelism is optional. And if you don’t need the parallelism, you don’t pay the tax. But the speed framing undersells it, and this is the part that gets lost. I didn’t get five times faster at one thing. I started building five things. A team is a concentration of force: correct when the target is known and the job is executing one hard, integrated build. Solo plus AI is a distribution of force: correct when the target is unknown and the job is discovery. Most early-stage work is discovery. Five cheap shots beat one expensive bet when you can’t see the goal yet. Now the honest edges, because a take that hides where it breaks isn’t a take. This works from zero to one and strains after. Support, reliability, security, the infinite maintenance tail: that’s exactly where teams earn their cost back. One person is also one point of failure, and a team is partly insurance. If the thing needs to outlive my attention, that insurance is worth paying for. I’ve written about when I’d still hire, and I mean it. There’s also an obvious tension in the title. How can five products be “one purpose”? It resolves more cleanly than it looks. Each product is one coherent stream in one head, and I time-slice between them. What got removed is the inter-human tax, not context-switching. Switching my own contexts is cheap. Synchronizing six people’s version of one context never was. And running multiple agents does re-import a piece of the problem, the architectural piece. I still have to decompose the work into components that don’t collide, and I’m still the integration layer. What it doesn’t re-import is the social piece. There are no meetings about the boundaries. I just decide. So the bottleneck moved. Building is cheap now, which means the constraint isn’t “can I afford and coordinate a team.” It’s “can I choose well.” What’s worth building, which of five working versions to keep, when done is done. The model can’t hand you that part. Whether my judgment is good enough to deserve this much cheap execution is the question I get to live with now, and I honestly prefer it to the old one. --- ## When I'd Still Hire - URL: https://naffis.com/resources/2026/05/18/when-id-still-hire/ - Date: 2026-05-18 I’ve become a fan of building alone. So let me argue against myself for a minute, because a take that can’t say where it breaks isn’t a take, it’s a pitch. Here’s where solo plus AI breaks. Scale, first. Zero to one is cheap alone. What comes after product-market fit is not: reliability, on-call, security, compliance, the boring infinite maintenance tail. That’s where teams earn back their coordination cost, and pretending otherwise is how solo founders end up with a successful product and a pager that never stops. Success is precisely the thing solo doesn’t absorb well. The reward for winning a bet is a workload that no longer fits in one person’s week. Continuity, second. One person is one point of failure. I can get sick, get bored, get hit by the proverbial bus, or get absorbed by a different product for a month. If the thing matters and needs to outlive my attention, a team is partly insurance, and insurance is worth paying for. Nobody thinks about insurance while the sun is out, which is exactly when you have to buy it. Then the hard, integrated, known problems. Deep infrastructure, regulated systems, anything where the moat is doing one difficult thing extremely well at depth. That’s concentration-of-force territory. The portfolio logic that makes solo powerful for discovery is precisely wrong here: you don’t want five cheap attempts at a flight-control system. Hire. There are also domains where a second pair of eyes is a safety requirement, not a nicety. Payments, health data, anything where a mistake lands on someone else. Self-imposed AI review isn’t the same thing, and I wouldn’t trust myself to pretend it is. The value of a human reviewer was never only the review. It was that they didn’t share my blind spots, and every agent I direct inherits at least some of them. And there’s the relational work. Enterprise sales, partnerships, the kind of trust that gets built over dinners and years. Humans, not agents, and not one human doing everything. I learned that selling companies, not building them. The synthesis is a phase distinction, not a verdict. Solo plus AI wins discovery. Teams win scale and depth. The skill is knowing which phase you’re in and not bringing the wrong structure to it. Most people fail in one direction: hiring too early, paying the coordination tax before they know what they’re building, shipping their org chart before they have anything worth an org. But staying solo too long is a real failure too, just a quieter one. Nobody writes the postmortem for the product that stalled because its one builder wouldn’t let go. The default flipped, but a default isn’t a rule. Build alone until the thing you’re building tells you it’s time not to. The part I watch for now, and I don’t have a clean answer, is whether I’ll actually hear it when it does. The same independence that makes solo work feel so good is a bias against noticing the moment it stops working. --- ## Vidiyo - URL: https://naffis.com/resources/2026/05/14/vidiyo/ - Date: 2026-05-14 Vidiyo lets you run a 24/7 streaming TV channel. Upload your videos, put them on a weekly schedule, hit publish. You have a channel with a real broadcast day. Running a channel used to mean distribution deals, broadcast infrastructure, and enough content to satisfy whoever owns the store. If you have videos and a concept, you shouldn’t need any of that. The loop is upload, schedule, publish. Transcoding and storage are handled. You build the week on a grid, lock premieres when you want them, and let the rest of the day fill. Ads can sit in the pipeline when you’re ready. Analytics track what people actually watch. It isn’t only linear anymore. There’s a swipe feed for clips, live streaming with chat, on-demand for channels that want it. Channels get dial numbers, so flipping through Vidiyo feels a little like cable, except anyone can own a number. On a TV, your phone is the remote. Vidiyo is in private beta. Apps for Roku, Fire TV, Apple TV, iOS, Android, and the web are built and heading to the stores as the beta opens. Creator signup is invite-only for now. Waitlist is on the site. Free to watch. No subscription. Free to run a channel. No deals, no minimum audience. Your viewers are yours. Join the waitlist: vidiyo.com Related: What Used to Take a Team. --- ## Splatchat - URL: https://naffis.com/resources/2026/05/14/splatchat/ - Date: 2026-05-14 Splatchat started as homework. A few people on the Adwave team were poking at real-time AI avatars. I wanted to understand the pieces, not nod along in meetings, so I built a small thing on the side. The question was simple: what if the person on the other end of a video call wasn’t human? Shipping is how I learn, so I kept going. The exercise became a prototype, the prototype became something I wanted other people to try, and that became Splatchat. You video-chat with an AI character. They look at you, react, and speak in real time. Not a chatbot with a face taped on. Pick from a roster, or make your own from a photo, a voice, and a personality. Characters remember prior calls. They can see through your camera or your screen when you let them. People use them in ways I didn’t plan for. Characters join Google Meet, Zoom, or Teams as a visible participant, take notes, send a summary. Connect Slack, Gmail, Notion, GitHub, Linear, a CRM, and they can draft the email or file the ticket while you’re talking. Phone calls. Live broadcasts. An embed on your site. Or you just talk. The one that surprised me: cloning yourself. Your face, your voice, your context, in the meeting you couldn’t make. There’s an API and an MCP server if you want a face on your own agents. The learn-it project ended up more interesting than the thing I was supposed to be learning it for. Try it: splatchat.com Related: What Used to Take a Team. --- ## Gatherd - URL: https://naffis.com/resources/2026/05/14/gatherd/ - Date: 2026-05-14 Gatherd sends party invitations as text messages. Guests RSVP by replying. That’s the whole idea. You have everyone’s phone number. You don’t have everyone’s email. And even when you do, nobody opens the fancy invite. Nobody logs into an RSVP portal. Everybody reads their texts. You describe the event to an AI: occasion, date, vibe, how many people. It writes the invitation and makes original artwork for it. Nothing stock. You paste in phone numbers, hit send, and the invite lands in Messages. The dashboard shows who’s in, who’s out, and who hasn’t answered. Guests text questions back. Dress code, kids, dogs. The AI answers from your event details. It only pings you when it doesn’t know. For guests there’s nothing to install. A text arrives. They reply however they reply. “YES plus one.” “Can’t make it.” “Maybe, let me check.” Intent gets figured out, including plus-ones and maybes. There’s a web version of the invite if someone wants it. Nobody has to use it. It also does the part hosts forget: follow-ups. Nudges for people who haven’t answered, a day-of ping, timed to normal waking hours. Don’t like the artwork? Regenerate it, or upload your own. After the event, guests can text photos in. Once enough show up, you get a recap. At year end, a “Year in Events” collects the lot. It’s free. Try it: gatherd.com Related: What Used to Take a Team. --- ## The Timing Paradox - URL: https://naffis.com/resources/2026/05/11/the-timing-paradox/ - Date: 2026-05-11 I’ve said for years that a mediocre idea at the perfect time beats a perfect idea at the wrong time. I still believe it. The problem is what it implies: the most important variable in a startup’s outcome is the one the founder controls least, and most of what gets narrated afterward as vision was somebody standing in the right spot when the wave came. My own companies are the specimen set, which is the only reason I get to write this. Intridea caught the Rails wave within a couple of years of DHH releasing the framework, and the surfing metaphor is doing real work there: we didn’t create the demand, we were paddling in the right place when it rose. Remixd hit audio at the moment publishers were desperate for new revenue and voice platforms were making text-to-audio legible to buyers. VideoByte caught the CTV explosion, and the honest version of that story includes the part where the category was growing so fast that execution mattered less than position. Three companies, three timing stories. The uncomfortable audit is asking how much of each outcome was us and how much was the wave. Too early is the crueler failure, and it deserves its own section, because the market punishes it identically to being wrong. Being early means paying to educate a market that someone later harvests at a discount. My failed social network in 2003, launched after Myspace and just before Facebook, sits somewhere in the too-early-or-too-weak quadrant, and I still can’t fully separate the two. That’s the point. From inside, “the market isn’t ready” and “the product isn’t good” produce the same signal: silence. Every founder in the silence is running the same test with no control group. So can timing be read, or only survived? The signals I’ve learned to watch are indirect. Infrastructure maturing faster than attention, which is what made CTV obvious in hindsight and invisible in the moment. Complaints getting louder in an industry that has money, which was publishers before Remixd. Toolchains suddenly collapsing the cost of something, which was Rails then and is AI now. None of it is a formula, and it can’t be: timing readable in advance would be arbitraged away instantly. What remains is judgment under fog, plus the discipline of cheap bets so that being wrong about the clock doesn’t kill you. That’s the real link to how I work now. A portfolio of small products is partly a timing strategy: many clocks instead of one, so no single misread is fatal. The steelman I owe the vision crowd: some founders demonstrably created their timing rather than caught it. The iPhone didn’t ride a wave, it started one. Maybe the great ones make the market ready. My honest response is that for every market-maker there are a thousand founders who thought they were one, and the base rate should terrify anyone betting on being the exception. I’ve never made a market. I’ve caught three waves and missed at least one, and I’d rather build strategy on the record than the exception. Which leaves the paradox where I found it, unresolved: timing is everything, and timing can’t be controlled, so founders live on luck they’re required to pretend is skill. Investors demand the pretense, employees need it, sometimes the founder needs it most of all. The only honest posture I’ve found is to hold the conviction and admit the dice, at the same time, all the way through. Most people find that combination unbearable. It might be the actual job description. --- ## AI and Creative Work: What Gets Lost When Machines Create - URL: https://naffis.com/resources/2026/05/04/ai-and-creative-work/ - Date: 2026-05-04 I’ve spent years building machines that do creative work. Remixd turned articles into audio. Adwave and Wavemaker generate TV commercials and video. I’m not a bystander wringing my hands about AI creativity. I built some of it and sold it, which is exactly why the question of what gets lost won’t leave me alone. The efficiency case is closed, and I helped close it. For a huge class of creative work, the commercial for a local business, the audio version of an article, the product video, AI output is good enough, arriving in minutes instead of weeks, at a price that changes who gets to participate at all. A small business that could never afford a production crew can now have a TV spot. I think that’s plainly good. The critique that all machine-made creative is inherently degraded usually skips the cost of the alternative. I’ve had to quote that cost. It changes the argument. But “good enough” begs the question: good enough for what? The commercial’s job is to sell something, and AI does that job. A song’s job, or a novel’s, is murkier. Some part of what we value in human-made work is the fact that a person made it, that a specific human with a specific life chose this word and not that one, and meant it. Machine output can be indistinguishable in form and still be missing the thing we were paying attention for. Or maybe that’s romantic nonsense and we only ever cared about the artifact. I go back and forth on this, honestly, not as a rhetorical performance of balance. Blind listening tests keep catching people, myself included, who thought they could always tell. And yet the same piece of music lands differently the moment you learn a machine made it, which either means the meaning was partly in the maker all along, or means the provenance story still matters more than we admit. Both explanations fit the data. The frame I keep returning to is human-made as luxury good. When machine creative is abundant and free, “a person made this” becomes the scarce attribute, the way hand-built furniture survived the factory. That’s not a consolation prize. Handmade furniture is a real market with real prices and real makers earning real livings. But notice what happened to the middle of the furniture trade. It’s gone. The factory took the middle, the artisans kept the top, and nothing came back. The likely shape for creative work is the same: an ocean of cheap machine-made, a premium tier of verified human, and a hard landing in between. The middle is where most working creatives currently live, and the same stratification is hitting the media business generally. Saying “the top tier survives” to someone in the middle is true and incomplete. It names who makes it through. It doesn’t help the people who don’t. So here’s where I actually am, without the bow. I built tools that make creative work abundant, and I still can’t tell you whether what gets lost is essential or sentimental. The market will answer eventually, the way it answered for furniture. But the market has been wrong about value before, and it doesn’t refund what it discards. Whether the question of what any of us do when the machines do the making has a good answer is a different post, and a harder one. --- ## A Team Is a Bet. I'm Running a Portfolio. - URL: https://naffis.com/resources/2026/04/27/a-team-is-a-bet/ - Date: 2026-04-27 There’s a strategic point hiding inside the solo-plus-AI conversation that gets lost in all the speed talk, and it’s the part that matters. The question was never solo versus team. It’s depth versus breadth. A team is a concentration of force. That’s the correct structure when the target is known and the challenge is executing one hard, integrated thing at depth or scale. Big infrastructure, regulated systems, the deep moat. When that’s the job, concentrate, every time. Solo plus AI is a distribution of force. It’s correct when the target is unknown and the challenge is discovery. You spread cheap bets and expect most of them to be wrong. Put that way, the decision criteria almost write themselves. Choose depth when the target is known, the build is genuinely hard and integrated, the moat is doing one thing extremely well, or the domain demands redundancy and review. Choose breadth when the target is unknown, you’re hunting product-market fit, each experiment is cheap, and being wrong four times out of five is fine if the fifth one lands. What changed isn’t that breadth suddenly beats depth. It’s that the price of running a broad portfolio collapsed. Running five simultaneous bets used to require capital and coordinated people, which meant only firms could do it. A venture studio was a business model precisely because portfolio-running took an organization. Now one person with domain depth runs the whole portfolio out of their own head. That’s the thing I’d want a reader to sit with: the portfolio strategy didn’t get better. It got cheap enough for individuals. I’m running one now, several products in parallel, and the obvious pushback deserves a real answer: doesn’t running lots of things mean no focus? It would, if the bets were teams. Five teams means five versions of the coordination tax and a founder spread across all of them. Five solo streams is different in kind. Each product is one coherent thread in one head. I time-slice between them the way a single good engineer has always time-sliced between a feature, a bug, and a refactor. The focus objection assumes the old cost structure. The caveat I have to own, because it’s real: scaling via multiple agents re-imports the team’s expensive part. Divergent context, integration work, keeping streams in sync. You become a team lead again, except the tax moved from human meetings to agent orchestration, from a shared calendar to your own review queue. A better place for it, but it doesn’t vanish, and pretending it does would be exactly the hype this argument is supposed to avoid. That trap gets its own treatment in Orchestrating Agents Without Becoming a Manager Again. Teams aren’t dead. The default flipped. For the exploratory front end of building, one person running a portfolio is now the obvious move, and a team is what you reach for later, on purpose, once you know what you’re concentrating on. The part I haven’t settled is how you know the moment to switch. Concentrate too early and you’ve hired a team to execute a guess. Too late and you’re the bottleneck on the one bet that landed. The default flipped, but the timing is still judgment, and judgment is the thing nobody’s model hands you. --- ## The Coordination Tax - URL: https://naffis.com/resources/2026/04/20/the-coordination-tax/ - Date: 2026-04-20 A team of six doesn’t cost six salaries. It costs six salaries plus a tax nobody writes down. The tax has a shape. Every person you add multiplies communication paths: n(n−1)/2 of them. Two people share one channel. Five share ten. Ten share forty-five. Twenty share a hundred and ninety. Fred Brooks worked out the consequence in The Mythical Man-Month decades ago: adding people to a late software project makes it later, because the new hire needs onboarding from the people who were producing, who now stop producing, while the new hire adds still more paths. And Conway showed where the tax ends up: in the product. You ship your org chart. The seams between teams become seams in the architecture. Most of it is invisible on any budget line, which is why nobody writes it down. Onboarding. Context-sharing. Planning ceremonies. Status meetings. Review queues. Integration work. The drift between what you meant and what got built. Decision latency, all the hours spent waiting on someone else’s calendar. We paid it anyway, and we were right to. One person couldn’t produce enough. The tax was the price of parallelism, and parallelism was the only way to scale output. That was a fair trade for seventy years, and I made it myself, over and over, at Intridea and after. The strongest objection to this whole line of thinking is that the coordination cost is simply the cost of doing big things, and complaining about it is like complaining that bridges need engineers. For big things, that’s true. Nothing about a large, integrated, known build got cheaper to coordinate. If you’re constructing the deep system with the hard moat, you still need the team and you still pay the tax, and it’s still worth it. What AI changed needs to be said precisely, because the imprecise version is hype. AI did not eliminate coordination. What it did was raise one person’s output ceiling enough that, for a class of work, you no longer need the parallelism. And if you don’t need the parallelism, you don’t pay the tax. The class of work is zero-to-one: discovery, prototyping, finding out whether the thing should exist at all. For that work, the tax used to be mandatory, because even exploration took more hands than one person had. Now it’s optional. That’s the entire change, and it’s enough. One catch, honestly stated. Run multiple agents in parallel and a version of the tax comes back. But it’s the architectural slice, decomposition, interfaces, integration, divergent context, not the social slice. There are no meetings and no consensus-building. You orchestrate instead of meet. I’ve written separately about how the work has to be cut to make that true, and about where the orchestration itself starts to become management again. For the first time in the history of this industry, paying the coordination tax is a choice. Not raw speed, not “10x developers,” that choice is the real shift. Which leaves the uncomfortable question for anyone staffing a project this year: are you paying the tax because the work demands it, or because paying it is the only way you’ve ever worked? --- ## Orchestrating Agents Without Becoming a Manager Again - URL: https://naffis.com/resources/2026/04/13/orchestrating-agents-without-becoming-a-manager/ - Date: 2026-04-13 I left team coordination to work alone. Then I spun up four agents and caught myself running a status meeting with robots. That’s the trap this post is about. The whole promise of solo plus AI is escaping coordination overhead, and the moment you run multiple agents you risk rebuilding it, badly. Divergent context, clobbered files, integration hell, “wait, why did agent two refactor that.” You’re a team lead again, except the reports don’t get tired and don’t push back, which makes the failure mode quieter and easier to miss. The way out starts with reframing the goal. You don’t want to eliminate coordination. That’s impossible for parallel work of any kind, human or machine. You want to keep the architectural layer, decomposing into bounded components and defining interfaces, and kill the social layer: no meetings, no syncing, no consensus-building. You just decide. I laid out that two-layer split in Components, Not Features; this is what it looks like in practice. The working principles, in prose rather than a checklist, because that’s how they operate in my head. Decompose by component, not feature, so agents can’t collide. This is the load-bearing one. Almost every multi-agent disaster I’ve had traces back to two agents with overlapping write access. Make the interfaces explicit and stable. The written contract is the coordination. That’s what makes the meeting unnecessary: the agreement already exists, in the repo, where both agents can read it. Accept that you are the integration layer and the reviewer. Judgment at the seams is the one job you can’t delegate, and rubber-stamping agent output is the real failure mode, not agent error. The agents will be wrong sometimes. You waving the wrongness through is the part that turns into an incident. Keep the boundaries in your head. The working-memory advantage that makes solo fast is the same thing that keeps orchestration sane. The day the component map only exists in a document I’d have to look up, I’ve fragmented past my own limit. Serialize what’s truly shared. Parallelize only what’s truly independent. Trying to parallelize shared state is how you end up mediating a merge conflict between two processes with infinite patience and no shame. The objection that deserves a straight answer: isn’t this just management with extra steps? Only if you let the social layer creep back. The expensive part of management was never the decomposition. It was the human synchronization stacked on top: the meetings to agree, the re-meetings when things moved, the politics at the boundaries. Agents need the architecture. They don’t need the diplomacy. If your orchestration involves persuading anyone, the boundary wasn’t clear enough to begin with. But the honest limit is that there’s a ceiling. Past some number of agents and components, you are a manager again, and the overhead you fled returns wearing a different hat. The failure isn’t gradual, either. It’s the week you notice you’re spending more time routing and reviewing than deciding and building. Know your ceiling and don’t fragment past what one mind can hold. Mine is lower than I’d like to admit on a bad week. A note that will date this post, on purpose: the tooling is racing to make orchestration feel like one stream instead of many, and some of it is getting close. Until it gets there, the bottleneck is your ability to hold boundaries and review at the seams. Which is, once again, taste. The dream was never no coordination. It’s coordination with no calendar. The day I’m scheduling my agents, I’ve lost the plot. --- ## Components, Not Features - URL: https://naffis.com/resources/2026/04/06/components-not-features/ - Date: 2026-04-06 Merge conflicts aren’t a team problem. They’re a decomposition problem. Divide work by feature and you cause the collisions, because a feature reaches across everything: UI, API, data layer, shared utilities. Two developers each “owning a feature” end up editing the same files and stepping on each other. Merge conflicts are the visible version. The worse versions are semantic: two changes that merge cleanly and break each other anyway, because both sides made assumptions about shared state that were true on their own branch. Divide by component instead, bounded units behind stable interfaces with one owner each, and parallel work rarely touches shared code. I’ll stop short of “collision-free,” because nothing is. The lockfile is shared. The schema is shared. The contracts themselves are shared, and every real repo has one file everybody edits. What decomposition buys you is that collisions become rare, local, and predictable: they happen at the boundaries you drew, where you’re watching, instead of anywhere two features happen to overlap. That’s not perfection. It’s the difference between a border checkpoint and a demolition derby. The honest cost, stated up front: component decomposition doesn’t remove coordination, it relocates it. You pay front-loaded, in boundary design and interface contracts, and you pay again whenever a contract has to change. The tradeoffs are the classic ones, silos, integration risk, nobody owning the end-to-end experience. None of this is new. Vertical versus horizontal slicing, component teams versus feature teams: the industry has argued this for decades, and the argument usually lands on feature teams, because for humans the end-to-end ownership is worth the collisions. So why write this in 2026? Because the same discipline turns out to govern AI agents, and there the argument lands the other way, though not for the reason you’d guess. It’s not the merge conflicts. Agents resolve textual conflicts fine now; the diff collision is cheaper than it’s ever been. The durable danger is the semantic one, and it’s worse with agents than with people. A human developer who hits a confusing overlap stops and asks. An agent doesn’t get confused, it gets confident, and plows ahead on assumptions that stopped being true two merges ago. Nobody in that loop notices until something breaks. Clean component boundaries are how you make the divergent-assumption problem structurally rare instead of hoping a reviewer catches it. I run several products this way now, and the difference between “agents are magic” and “agents are a mess” has been, in my experience, almost entirely a function of how the work was cut before any agent touched it. One objection I expect from good engineers: “good teams don’t have merge conflicts.” Exactly. Good teams already decompose well, which is why they rarely collide. The point isn’t that decomposition is novel. It’s that the same decomposition good teams were already doing is the thing that unlocks agents. Component thinking turns out to be table stakes for any parallel build, human or machine. It is not what separates teams from solo. The sharper objection cuts closer to home: you can’t decompose what you don’t understand yet. Boundaries drawn on day one of a new product are guesses, and I’ve argued elsewhere that solo-plus-AI wins precisely at discovery, which is exactly when the guesses are worst and the contracts churn most. So am I prescribing the most boundary-hungry structure for the phase with the least boundary knowledge? Yes, and here’s why it survives: the cost of a wrong boundary isn’t drawing it, it’s redrawing it. On a team, redrawing means meetings, renegotiated ownership, sometimes a re-org. Alone, it costs one decision and an afternoon of moving code. Draw cheap boundaries early, expect to be wrong, and redraw without ceremony. The structure is the same. The price of changing it collapsed. Which is the frame worth keeping: two layers, not one. Architectural coordination is how you cut the work. Social coordination is how humans stay in sync about the cut. AI didn’t remove the first, and won’t. You still design clean boundaries no matter who or what your workers are, and you still redesign them when they’re wrong. It removed the second. That’s most of the story, and it’s why the oldest skill in software architecture is suddenly the newest requirement for working alone. --- ## The Curve Was Smooth. The Surprise Was Real. - URL: https://naffis.com/resources/2026/03/30/the-curve-was-smooth/ - Date: 2026-03-30 The “emergent abilities” fight looks like an argument about the models. It’s really an argument about what we can see coming, and the honest answer changed this year, in a way most takes haven’t caught up to. Somewhere around a certain model size, large language models started doing three-digit arithmetic. Below that size, near zero. Above it, it mostly works. Plot the accuracy and you get a flat line that snaps upward: a capability that wasn’t there and then was, with no warning in the smaller models that it was coming. Researchers named this in 2022, emergent abilities, and the name carried a thrill and a threat in one breath. The thrill is that intelligence might be hiding inside scale, waiting. The threat is that if new abilities arrive without warning, you can’t plan around them, and you can’t govern what you can’t predict. Let me set one thing aside first, because it eats every conversation it touches. I’m not going to litigate whether any of this is “real” intelligence. That question is mostly unfalsifiable, and for anyone building, beside the point. The useful question isn’t whether the model understands. It’s whether a capability you can use shows up, when, and whether you could have seen it coming. That last part is where the live fight is, and it’s moved further in eighteen months than the discourse has noticed. Start with the deflation, because it’s the strongest version of “calm down.” The mirage In 2023, a Stanford team published a paper with a needling title: Are Emergent Abilities of Large Language Models a Mirage? The argument is hard to unsee. The cliff, they showed, mostly appears when you score a task all-or-nothing. Multi-digit addition graded exact-match, the whole answer right or zero, produces a flat line that suddenly leaps. But the model isn’t leaping. Underneath, it’s getting steadily better at each digit. It just hasn’t gotten enough of them right at once to score a single point yet. Swap in a metric that gives partial credit and the leap melts into a gentle slope. Across a large benchmark suite, the great majority of catalogued “emergent” abilities only showed up under those discontinuous, pass-or-fail metrics. Change the ruler, lose the cliff. It’s a good argument, and it traveled. A congressional committee cited it as having debunked emergence through statistical rigor. It’s also where most takes stop: another deflation, another “the hype was measurement error,” tidy and eminently shareable. Why the debunking is too clean Three complications. First, and almost funny: the researchers who coined “emergent abilities” had already written that all-or-nothing metrics can dress incremental gains up as sudden ones. The mirage was a caveat in the original paper before it was a rebuttal to it. Second, and sharper: the smooth metrics that dissolve the cliff were chosen after the cliffs were found. Re-describing a surprise as inevitable once it has already happened gives you a cleaner chart and zero foresight. The question was never “can we redraw the jump as a slope in hindsight.” It was “can we say where the line gets crossed before we train the bigger model.” Smoothing the past does not answer that. Third, the one that matters if you ship things: from where the user sits, the discontinuity is real no matter what the underlying curve is doing. A coding agent that finishes a multi-step task unattended seventy percent of the time is something you babysit, net negative, because checking its work costs more than the work. The same agent at ninety-plus percent is something you let run. The capability curve under that gap may be perfectly smooth. Nobody deploying the thing feels the smooth curve. They feel the week it crossed from toy to coworker. The threshold is where the value lives, and a threshold behaves like a cliff even when the math behind it is a ramp. So the mirage camp is right that the capability climbs smoothly, and the emergence camp is right that the arrival feels sharp and unforeseen, and those two claims were never in conflict. Same slope, seen from the mapmaker’s desk and from the trailhead. The live disagreement isn’t whether the curve is smooth. It’s whether the crossing can be called in advance. And that is the part that’s actually changing. What changed: we’re learning to see it coming Here is what the tidy debunking missed and the breathless hype never expected. The field has started, partially, to predict emergence before it happens. The trick, from a 2024 result, is almost cheeky. Finetune a small model a little on the target task and you drag the point where the capability emerges down toward smaller scales, close enough to watch it happen in models you can actually afford to train. Do that across a few sizes and you can fit what the authors call emergence laws: a curve that forecasts the scale at which a larger, not-yet-built model will cross from random-guessing to real competence. Posed as a question, can we tell whether the next model will do a thing none of today’s models can, it is no longer hopeless. By 2025 a follow-on did it specifically for software-engineering tasks, fitting scaling-law forecasts for coding performance off finetuned mid-sized models, and named the obvious double edge: the same method that lets you forecast a capability lets you summon it early, which is a safety problem as much as a planning convenience. This is the update that reframes the debate, and it’s worth saying flatly because both camps got it partly wrong. Emergence was never pure illusion and never pure magic. It is becoming, slowly, an engineering quantity, something you can put error bars on. Not reliably, not for every capability, not yet. But the research points at a world where a lab can say, before a run, roughly which thresholds the next model will clear. What won’t resolve: the dice And then there’s the finding that keeps the whole thing honest, the one that should stop anyone from getting comfortable on either side. Scaling-law charts almost always plot a single training run per model size. Run the same recipe again with a different random seed and the scale at which a capability emerges can move. Same data, same architecture, same compute, different roll, different crossing point. Breakthrough behavior turns out to be partly a property of the particular run, not just the size. That cuts against the emergence romantics, for whom the jump is a deep fact about scale, and against the mirage deflators, for whom enough careful measurement makes everything smooth and foreseeable. Some of the unpredictability isn’t ignorance we’ll eventually clear away. It’s baked into the process. Then widen the lens, because the surprises don’t only happen along a known axis. Sometimes a new axis appears. Through late 2024 the field was drafting scaling’s obituary: the returns from raw pretraining size were flattening, a leading figure declared that pretraining as we know it would end, essays ran under titles like “the slow death of scaling.” Then capability started climbing again from a direction the obituaries hadn’t priced in, letting the model think longer at the moment you ask it, spending compute on reasoning at inference instead of on parameters at training. A second power law, a second knob, and almost nobody forecast that it would be the one to turn next. So predictability is improving on the dimension you’re watching, and the ground still shifts under you in two ways the forecasts struggle with: which run gets you there, and which axis matters next. The only thing that doesn’t emerge Put those together and the question worth asking, if you build on these models, sharpens into something specific. Not “is emergence real.” Not even “can it be predicted,” that one now has a partial, improving, genuinely useful answer. The question is this: granted you can forecast a capability curve in the aggregate, the exact crossing for the exact task you care about still rides on a roll you don’t control and, every so often, an axis you didn’t see coming. So who is positioned to notice the week it actually lands for your problem, and to already know what they’d do? Because the capability emerges on its own. Forecast or surprise, smooth or seed-lucky, it shows up without your help. The judgment about what it’s now good enough for does not. Noticing that an agent quietly crossed from toy to coworker this month, knowing which threshold is load-bearing for your product and which is a benchmark vanity number, having the taste to rebuild around the crossing instead of waiting for a changelog to bless it, none of that emerges from scale. It stays exactly as scarce as it was, and a little more valuable each time the thing it gates gets cheaper. The headlines will keep asking whether the models are really getting smarter or whether we keep fooling ourselves with the metrics. It’s the wrong fight, and it has been for a while. The curve is smooth and the surprise is real, both at once: we can increasingly forecast the shape of the climb and still can’t tell you which run, which week, which task tips over first. The most consequential number in the field, when does the next capability cross into useful for the thing you’re building, comes with error bars now instead of a shrug. It still doesn’t come with a date. So you don’t get to schedule it. You get to be the builder paying close enough attention to recognize it the moment it lands, and to already know what you’d do with it. The intelligence will emerge on its own timeline. What you bring is the only thing that was ever going to stay scarce: knowing what it’s for. --- ## Consciousness as a Phase Transition - URL: https://naffis.com/resources/2026/03/23/consciousness-as-a-phase-transition/ - Date: 2026-03-23 I’m going to make an argument I don’t fully believe, flag it as speculation before I start, and then tell you why I can’t stop thinking about it anyway. That’s the honest frame for this one. Everything up to here in this series rests on results I can cite. This post reaches past them, and I’d rather say so plainly than dress a hunch up as a finding. Here’s the setup the rest of the series earned. Water doesn’t get gradually more solid as it cools. It’s liquid, liquid, liquid, and then at zero degrees it’s ice, a different phase with different properties, and the transition is sharp. Physicists call this a phase transition, and the deep fact about it is that the change is qualitative, not just quantitative. Nothing about a single water molecule is different above and below zero. What changes is the collective arrangement, and the new properties, rigidity, crystal structure, belong to the arrangement and to nothing in the molecule itself. More is different, exactly in Anderson’s sense, and the difference arrives at a threshold. Intelligence, on the argument I’ve been building, looks like it might be this kind of thing. Below some scale, a network churns. Above it, capabilities appear that weren’t there and weren’t designed, the way rigidity appears in ice. If that framing is right, intelligence is less a feature you add and more a phase that matter enters when it’s arranged the right way and driven past a threshold. And here’s the thought I can’t put down. If intelligence is a phase transition, is consciousness another one? The move is almost irresistibly clean once intelligence is on the board. We already accept, most of us, that consciousness comes from the brain, from a specific arrangement of matter, since nothing else in the skull is a candidate. No single neuron is conscious. The felt experience of being someone is not in any cell, the way the flock is not in any bird. So subjective experience already has the profile of an emergent property, something that belongs to the whole and not the parts. If intelligence is a phase that a network enters at a threshold of scale and organization, then maybe consciousness is a further phase, crossed at some further threshold of a kind we haven’t identified, and the reason it seems to appear from nowhere is the same reason ice seems to appear from nowhere: phase transitions are sharp, and the new thing is a property of the arrangement that no amount of inspecting the parts would have predicted. Say that out loud and you can feel why it’s seductive. It takes the hardest problem we have, how physical stuff gives rise to inner experience, and reframes it as an instance of something physics already handles routinely. Not a metaphysical mystery. A phase transition we haven’t learned to characterize. The hard problem dissolves into a matter of finding the order parameter. Now I have to turn on my own argument, because this is exactly the kind of claim that sounds profound and does no work, and I’d be embarrassed to let it stand without saying so. The fatal difference is measurement. Every phase transition I invoked, water to ice, the onset of magnetism, is defined by something you can measure from the outside. There’s an order parameter, a number that’s zero on one side of the threshold and nonzero on the other, and you can watch it change. Intelligence, at least, shares this: capabilities are behaviors, and behaviors can be tested. You can check whether the model does the arithmetic. Consciousness has no such handle. There is no measurement, not even in principle right now, that tells you whether the lights are on inside a system, whether there is something it is like to be it. That’s what makes the hard problem hard, and calling consciousness a phase transition doesn’t produce the missing measurement. It just relocates the mystery behind a word borrowed from physics, which is precisely the “scientific-sounding shrug” I warned against in the first post of this series. I’d be committing the exact sin I named. Worse, the analogy might import a false confidence. Saying “consciousness is probably a phase transition” carries the tone of an explanation while delivering none of the content. A real phase-transition account of consciousness would tell you what quantity crosses what threshold, would predict which systems have experience and which don’t, would let you be wrong. This tells you nothing you could test, forbids nothing, predicts nothing. By the standards I’d apply to any other claim, that’s not a theory. It’s a picture, and I should hold it as one. So why keep it in the series at all, if I’ve just spent three paragraphs dismantling it? Because I think the honest position isn’t “consciousness is a phase transition” and it isn’t “that’s meaningless nonsense.” It’s that the framing is currently untestable and might not always be. The history of “this will forever be beyond measurement” is not a proud one. People said it about the composition of stars, and then we read it off their light. Whether consciousness has an order parameter we simply haven’t found is itself an open question, and I’d rather sit in that discomfort than resolve it prematurely in either direction. Dismissing the question as meaningless is as much an overclaim as answering it. Which is where I have to leave it, unresolved on purpose, because resolving it would be the lie. If intelligence is a phase of matter arranged the right way, and we are now arranging matter that way at scale, on purpose, faster every year, then the question isn’t whether we should think about consciousness as a threshold. It’s whether we’d have any way of knowing we’d crossed it, in something we built, before or after the fact. I don’t have that answer. I’m not sure the tools to get it exist yet. And I notice I’d want to know before we’re very much further down the road we’re already on. --- ## Crafted, Not Subjected - URL: https://naffis.com/resources/2026/03/16/crafted-not-subjected/ - Date: 2026-03-16 Most of what passes for “AI optimism” is a forecast wearing a smile. The future arrives, it’s wonderful, we’re along for the ride. That isn’t optimism. It’s the doomer’s posture with the sign flipped. Both camps agree on the part that matters: the future is something that happens to us. They only disagree about whether to brace or to cheer. I don’t buy either one. Not because I know how this goes, I don’t, and the people who say they do are selling something, but because the question that decides anything isn’t what will AI do to us. It’s what will we do with it. And that question only has an answer if we insist on having one. So, plainly: I choose to be optimistic that we can craft our future rather than be subjected to it. The load-bearing word is choose. This isn’t a prediction, it’s a stance. I’m not claiming the good version is likely. I’m claiming that the belief we’re subject to the future is the one belief that guarantees it, because the moment you accept you’re a passenger, you stop steering, and then you really are just cargo. I have a specific vantage on this, and it’s worth saying where it comes from, not as a credential but because it’s the data I actually have. I build software, mostly alone now, leaning on AI for work I used to hire for. The timelines have collapsed in ways that still catch me off guard. And the moment I keep waiting for, the one where the tools make me redundant, hasn’t come. What happened instead is more interesting: the part of the work that’s irreducibly mine got more important, not less. When building gets cheap, building stops being the scarce thing. Judgment becomes scarce. Taste. Knowing what’s worth making, which corner to cut and which to defend, when the obvious answer is wrong. AI hands you a thousand competent options. It won’t tell you which one matters. That’s still yours. It’s more yours, because the bottleneck moved from the doing to the choosing. There’s early data underneath this, not just vibes. Economists at the Dallas Fed, reviewing wages through early 2026, found that across most AI-exposed work the technology is so far augmenting people rather than replacing them. The human didn’t leave the loop. The human got moved to the part of the loop that was always the point. That’s the honest root of my optimism. And here’s where I have to be just as honest, because the same vantage shows me the other thing. The technology that made me, a senior, already leveraged, more valuable is the same technology sitting under a roughly 20% drop in employment for the youngest software developers, the 22-to-25-year-olds, measured against their late-2022 peak. Same field. Same tools. Opposite ends of the ladder. The rung I climbed to get here is the rung being quietly sawn off. When I say we can craft the future, I have to sit with how much weight that word is carrying, because for a lot of people, AI isn’t a tool in their hands at all. It’s a decision made about them, somewhere else. And the somewhere-else is consolidating fast. For most of a decade, AI was pitched as a public utility, cheap, neutral, always available. In 2026 it started behaving more like a lever: earlier this year a government switched off a frontier model across the entire world in about ninety minutes. Compute, capital, distribution, the model weights themselves, the control points are pooling into a handful of hands that can grant access or pull it. “We can craft our future” runs straight into the question of who’s holding the chisel. So I’m not going to file this down into a lesson, because it doesn’t have one. The version where this mostly happens to people is fully on the table, and pretending otherwise would be the smiling forecast I opened by rejecting. What I’ll say is narrower, and I think truer for it. The macro numbers don’t actually show mass displacement yet. The Yale Budget Lab went looking in early 2026 and found no clear signal in the aggregate. Which means the thing isn’t settled. It’s still forming. And the future where it happens to us becomes certain only at the moment enough of us decide it’s inevitable and stop trying to author the alternative. Surrender is the one move that can’t be walked back. Everything else is still being decided, by who builds, who gets the tools into their hands, who insists the we gets wider instead of narrower. That isn’t a forecast. It’s work, and it only gets done by people who think it’s worth doing. The future isn’t owed to us in either direction. It won’t be the catastrophe the doomers sell or the gift the boosters promise. It’ll be whatever we’re willing to make, by the specific people willing to make it. Given the choice between bracing for that and building into it, I know which one I’d rather spend the uncertainty on. So I choose optimism. Not as a belief about how it ends. As a decision about how I’m going to act while it’s still up for grabs. --- ## A Thousand Switches to a Neuron - URL: https://naffis.com/resources/2026/03/09/a-thousand-switches-to-a-neuron/ - Date: 2026-03-09 For years the picture in everyone’s head was a tidy correspondence: an artificial neuron is a stripped-down model of a real one. The real neuron collects inputs, sums them, and fires if the total crosses a threshold. The artificial neuron collects inputs, sums them with weights, and passes the total through a function. Same cartoon, one in wetware, one in math. It made the brain feel like a biological version of the networks we build, just larger and slower and harder to inspect. Then, in 2021, David Beniaguev, Idan Segev, and Michael London measured how good that cartoon actually is, and the answer was: not good at all. They took a detailed biophysical model of a single cortical pyramidal neuron, the workhorse cell of the thinking parts of the brain, and asked what size of artificial network you’d need to reproduce its input-output behavior faithfully, down to millisecond timing. Not a whole brain. One cell. The answer was a deep neural network of five to eight layers, which worked out in their setup to somewhere around a thousand artificial neurons to stand in for one biological one. A thousand to one. The unit we’d been treating as the atom of the brain turns out to be a small deep network in its own right. Where does all that hidden complexity come from? Mostly the dendrites, the branching tree of fibers that carries inputs into the cell. In the cartoon, dendrites are passive wires that dump signals onto the cell body to be summed. In reality they’re active. Different branches perform their own local computations, and a particular receptor, the NMDA receptor, lets a branch respond nonlinearly, in a way that depends on timing and location, not just on the raw total of what arrived. Tellingly, when the researchers stripped the NMDA receptors out of the model, the required artificial network collapsed from eight layers to one. Almost all the depth, almost all the thousandfold gap, lived in that one mechanism. The neuron is deep because its dendrites are doing pattern recognition before the cell body ever “decides” anything. You can read this two ways, and the first way is a wet blanket on everything I’ve been arguing. If one biological neuron is worth a thousand artificial ones, then comparisons like “this model has as many parameters as the brain has synapses” are off by orders of magnitude, and the brain is vastly, humiliatingly more computer than our biggest networks. On that reading, biology isn’t encouragement for the inevitability thesis. It’s a measure of how far we still are. But that’s not the reading I land on, and here’s the turn. The thousand-to-one gap isn’t a wall. It’s a receipt. It’s proof that architectures exist which pack the work of a thousand crude units into a single cell, and, more to the point, that such architectures are findable, because a process with no foresight at all already found them. Evolution had no blueprint and no goal. It had variation, selection, and deep time, and out of that blind loop came a component so computationally dense that our best deliberate engineering needs a thousand parts to match one of them. The efficient design was reachable by pure undirected search. That’s the fourth pillar: not that our networks are close to the brain, but that the brain is standing proof of how much better networks can get, and that the improvement is available to a process that isn’t even trying. That’s the optimistic frame. Now let me be fair to the pessimistic one, because it has real force. The first problem is that the thousand-to-one number is a measurement of a specific model, not a law. It’s how many artificial neurons it took to fit that biophysical simulation to that accuracy at that time resolution, using the network architectures the researchers happened to try. Push the required accuracy and the number climbs. Relax it and the number falls. Simplify the neuron model you’re imitating and it falls further. The ratio isn’t a fundamental constant of biology. It’s a number with a lot of dials behind it, and quoting it as though it were the exchange rate between carbon and silicon flatters a single careful experiment into a universal law it never claimed to be. The deeper problem is that raw computational density might be beside the point. The whole spirit of this series is that intelligence is emergent, that it lives in the interactions of many simple units, not in the sophistication of any one of them. If that’s true, then discovering that neurons are individually complicated cuts against the clean emergence story rather than for it. Maybe the brain is powerful not because it wires up simple parts but because its parts aren’t simple, in which case “just add scale” is the wrong lesson and the magic is partly down in the cell, in the biochemistry, in machinery we can’t get by stacking layers. The neuron-as-deep-network result can be spun as support for artificial networks, but read honestly it’s at least as much a warning that we’ve been underestimating the substrate. So here’s the residue I’ll actually stand behind. Evolution, with no designer and no plan, produced computational elements far denser than anything we build, which proves that highly efficient architectures exist and can be reached by blind search. That much is real, and it’s genuine reason to think there’s enormous headroom above where our systems sit today. What I won’t claim is that this headroom is close, or that scaling our current crude units is the road to it, because the same result that shows how far a blind process can go also shows how much of the work might be hiding inside the parts, exactly where a theory built on simple parts doesn’t want it to be. Which is the tension I can’t dissolve, and won’t pretend to. Biology proves the ceiling is high. It also hints the ceiling is high for reasons that live in the cell, not just in the wiring, and if that’s where the intelligence partly lives, then the most important thing the brain has to teach us is the one thing our architectures were built to ignore. --- ## Everyone Keeps Reinventing the Same Machine - URL: https://naffis.com/resources/2026/02/23/convergent-architectures/ - Date: 2026-02-23 In evolutionary biology there’s a phenomenon that should be stranger than it feels: the eye evolved independently dozens of times. Camera eyes in vertebrates and, separately, in octopuses. Compound eyes in insects. Different lineages, different starting points, no shared ancestor with the finished organ, and they all converged on the same handful of optical solutions, because physics only allows so many ways to focus light onto a detector. When the problem has a small number of good answers, unrelated searchers keep finding the same ones. Convergence isn’t a coincidence. It’s evidence that the answers were sitting there in the structure of the problem, waiting to be found by anyone who looked hard enough. I think the same thing is happening in neural network architecture, and it’s the third leg of the case that intelligence is discovered rather than invented. For most of the last decade the Transformer ruled by itself. Attention, the mechanism where every token looks at every other token, was the thing that made large language models work, and its one great flaw was cost: comparing everything to everything means the work grows with the square of the sequence length, so long inputs get expensive fast. So people went hunting for alternatives that would scale better, and they came at it from genuinely different directions. One camp revived state-space models, an idea borrowed from control theory and signal processing, machinery for describing how a system’s hidden state evolves over time. That line produced Mamba. Another camp came from the world of recurrent networks, the old sequential architectures everyone had supposedly abandoned when attention arrived, and tried to rebuild them so they could train in parallel. That line produced RWKV. Control theory and recurrent networks are not the same neighborhood. These were different intuitions, different math, different people. And then in 2024 Tri Dao and Albert Gu proved the punchline, in a paper whose title is the whole argument: “Transformers are SSMs.” They showed that a Transformer’s attention and a state-space model like Mamba are two faces of a single underlying operation, connected through a class of structured matrices, so that the same computation can be written either as attention or as a state-space recurrence. Not similar. Dual, two views of the same object, the way the same rotation can be described with matrices or with quaternions. RWKV, arriving from the recurrent side, lands in the same territory, close enough that the whole family, attention and state-space models and modern linear recurrences, is now understood as variations on one theme rather than rivals. That’s the octopus eye again. Separate teams, separate starting intuitions, converging on architectures that turn out to be mathematically the same machine. And the reading that fits the inevitability thesis is the one I find hard to resist: they’re not each inventing something out of nothing. They’re circling an attractor in the space of possible architectures, a small set of good answers that the problem itself defines, and their different routes are different approaches to the same destination. If that’s true, then architecture research isn’t really invention. It’s cartography. The good designs exist independently of us, the way the camera eye existed as a possibility long before any animal found it, and we keep rediscovering them because there aren’t many places to land. Here’s where I have to argue with myself, because this is the pillar I’m least sure of, and the convergence story has a way of feeling more profound than it is. The most deflating objection is that the convergence is manufactured, not discovered. All these architectures are being trained on the same benchmarks, optimized for the same hardware, published in the same venues, built by people who read each other’s papers. GPUs are exquisitely good at large matrix multiplications and mediocre at almost everything else, so of course every successful architecture reduces to stacks of matrix multiplications. That’s not the universe revealing its deep structure. That’s a thousand researchers all pointed at the same NVIDIA chip and the same leaderboard, filing down their ideas until they fit. Convergence under identical selection pressure isn’t spooky. It’s what selection pressure does. Change the hardware and the “attractor” might move, which is not how a law of nature behaves. And there’s a subtler problem. Proving two architectures are mathematically dual is a statement about a small, clean family of models, the ones simple enough to prove things about. The actual frontier systems are messy, full of components bolted on because they worked, and nobody has shown that the whole messy apparatus of a real large model converges to anything. The convergence lives partly in the theory papers, where the objects are tidy enough to relate, and the messy empirical reality may be more contingent than the clean duality suggests. I’d be overreaching if I let a theorem about simplified models carry a claim about every system in production. So here’s the honest residue. The mathematical duality is real, proven, and genuinely surprising, and it does show that ideas from far-apart fields collapse onto shared structure, which is at least a hint that the structure is real and not arbitrary. What I can’t cleanly separate is how much of the convergence is the problem’s deep geometry showing through and how much is just everyone optimizing against the same chip and the same test. Both are operating. I don’t know the mix, and anyone who tells you they do is reading more into a leaderboard than it can hold. Which leaves the question the eye already asked, transposed into silicon. If independent searchers keep finding the same architectures, the interesting thing was never that they agree. It’s whether they’re converging because the answers are woven into the problem, the way optics constrains eyes, or because they’re all squinting at the same benchmark under the same lights. From inside the search, standing at the leaderboard, those two look identical, and I don’t yet know how you’d tell them apart. --- ## The Edge of Chaos - URL: https://naffis.com/resources/2026/02/09/the-edge-of-chaos/ - Date: 2026-02-09 Drop a stream of sand grain by grain onto a table and a pile builds up. For a while nothing much happens, then a slope steepens past some threshold and a small avalanche slides. Keep dropping. The avalanches keep coming, most of them tiny, a few enormous, and if you plot how many avalanches of each size you get, you find no typical size at all. It’s a power law, scale-free, the same statistical shape whether the slide involves ten grains or ten thousand. The pile settles itself, without anyone tuning it, at the exact point where a single grain can trigger a collapse of any magnitude. Physicists call this self-organized criticality, and the reason it matters for intelligence is that brains appear to do the same thing. The boundary the sandpile finds has a name that predates the sandpile: the edge of chaos. Picture a spectrum. On one end, pure order, where a system is so rigid that a nudge dies out immediately and nothing propagates, so it can’t carry a signal across itself. On the other end, pure chaos, where the smallest perturbation explodes and swamps everything, so no signal survives contact with the noise. Between them is a knife-edge, a critical point, and that thin boundary turns out to be where a system can hold information, transmit it across distance, and combine it, all at once. Too ordered and there’s nothing to compute with. Too chaotic and the computation is destroyed as fast as it happens. Computation lives on the edge. The striking thing is that systems don’t have to be placed on that edge. They tend to fall toward it. In 2003 John Beggs and Dietmar Plenz put slices of rat cortex on a grid of electrodes and watched the spontaneous activity. What they saw were avalanches, cascades of neural firing that propagated through the tissue, and the sizes of those cascades followed a power law with an exponent of negative three-halves, the exact signature of a system poised at a critical branching point, where each active neuron triggers on average almost exactly one more. Not less, which would fade to silence. Not more, which would run away into a seizure. Right at one. The cortex sits on the edge, and nothing outside it is holding it there. It self-organizes to the boundary the way the sandpile does, and their simulations showed that a system tuned to that point maximizes information transmission while staying stable. The brain isn’t balanced on the edge of chaos by a designer. It falls there, because that’s where the computation is, and the falling is free. This is the physical leg of the inevitability argument, and you can feel why it’s tempting. If self-organization toward criticality is a general property of the right kind of interacting system, then you don’t need to engineer intelligence into place. You need to build a system of the right kind at sufficient scale, let feedback run, and it drifts toward the regime where computation is possible on its own. Evolution didn’t have a plan for the edge of chaos. It just kept the brains that computed better, and computing better meant sitting nearer the edge, so the edge is where brains ended up. No foresight required, only scale, feedback, and time, which is the whole engine of the inevitability thesis stated in the language of physics. Now the objections, and there are real ones, because “the brain operates at criticality” is a claim people have oversold. First, the evidence is contested. Power laws are slippery. A distribution can look like a power law over a limited range and turn out to be something else, and the criticality literature has spent twenty years arguing about whether the neural data really shows true scale invariance or just a truncated approximation of it that a dozen non-critical mechanisms could also produce. Some careful modeling work found that the standard models are only critical if you fine-tune their parameters, which is exactly the thing self-organized criticality was supposed to avoid needing. So the clean story, brains are provably critical and criticality is provably optimal, is cleaner than the actual state of the field. The honest version is: there’s a real and repeated fingerprint here, and a genuine open argument about how deep it goes. Second, and this is the one that constrains the whole thesis: operating at criticality is not the same as being intelligent. Lots of systems sit at critical points. Sandpiles do. Forest fires do. Earthquakes do. The seismic record of California is beautifully scale-free and the San Andreas fault is not thinking about anything. So criticality can’t be the ingredient that makes a network intelligent, because the least intelligent systems we know are perfectly happy to be critical too. At most, sitting at the edge of chaos is a precondition, the regime you have to be in for interesting computation to be possible, not the thing that makes the computation add up to a mind. It might be necessary. It is plainly not sufficient, and the gap between necessary and sufficient is precisely the gap where the actual explanation of intelligence is hiding. So here’s the piece I’ll defend and the piece I’ll give back. What I’ll defend: there’s a specific dynamical regime, the boundary between frozen order and destructive chaos, where information can be stored and moved and combined, and systems of the right kind seem to drift toward it without being pushed, brains apparently included. That’s a real and beautiful result and it takes some of the mystery out of how a blind process could stumble into the conditions for computation. What I’ll give back: it explains the stage, not the play. It tells you where the lights have to be for anything to happen, and says nothing about why, on this stage and not the sandpile’s, the thing that happens is thought. Which leaves the question sharper than criticality can answer. If falling toward the edge of chaos is cheap and common, and earthquakes and avalanches get there too, then the edge was never the rare thing. Whatever separates the critical system that computes from the critical system that merely rumbles is the rare thing, and it’s the one this beautiful physics doesn’t name. --- ## The Lottery Ticket Was Always There - URL: https://naffis.com/resources/2026/01/26/the-lottery-ticket-was-always-there/ - Date: 2026-01-26 Here’s a claim that sounds absurd the first time you hear it, and then gets harder to shake the longer you sit with it. Training a neural network might not build anything at all. The trained model may already be present, fully formed, inside the random one you started with, and all that training does is find it. Start with where this idea came from, because it began as an observation about waste. In 2018 Jonathan Frankle and Michael Carbin noticed something strange about pruning. You can take a large trained network, throw away the overwhelming majority of its connections, keep the ten percent that matter, and the small survivor works about as well as the full network. Fine, networks are overbuilt, we knew that. But then they tried to train that small survivor from scratch, on its own, and it usually failed. Unless, and this was the strange part, you rewound its surviving connections to the exact random values they’d had at the very beginning, before any training. Do that, and the little subnetwork trained up beautifully. They called those lucky subnetworks winning lottery tickets. The full network was a bag of millions of tickets, and training was mostly the process of one lucky ticket winning while the rest were discarded. That’s the original Lottery Ticket Hypothesis, and it’s already unsettling, because it moves the magic earlier. The capability wasn’t created by training. It was latent in the initial random draw, and training found it. Then it got stronger. In 2020 Eran Malach and colleagues proved a harder version, one that had been conjectured a year earlier. The Strong Lottery Ticket Hypothesis says you don’t need to train the winning subnetwork at all. A sufficiently large randomly initialized network already contains, somewhere in its untouched random weights, a subnetwork that computes your target function to any accuracy you like, with no training whatsoever. You don’t adjust a single weight. You just find the right subset and delete everything else. The learning is entirely a matter of selection, not adjustment. They proved it for basic networks first, and since then it’s been extended to convolutional networks and to Transformers, which is the part that stops it from being a curiosity about toy models. Sit with what that implies. If it’s right, then a large enough random network is not a blank slate waiting to be written on. It’s a haystack that already contains every needle you could reasonably want. The famous line about sculpture, that the statue was always inside the marble and the sculptor just removes what isn’t the statue, turns out to be a decent description of what a trained model might be. The competent network was inside the noise. Optimization is the chisel. This is why the idea belongs to any argument about inevitability. If the solutions are latent in scale, then scale is doing the essential work, not merely helping. A bigger random network contains more subnetworks, so it’s more likely to contain a good one, so making the network bigger makes the needed capability more likely to already be present before you train. Emergence stops looking like a lucky accident and starts looking like a near-certainty you’re buying with parameters. You’re not hoping intelligence shows up. You’re increasing the odds that it was already in the bag. Now let me argue against the version of this I just made sound inevitable, because the leap from theorem to worldview is where it gets slippery. The proof is an existence proof, and existence proofs are quieter than they sound. It says a good subnetwork exists inside a large enough random network. It does not say the subnetwork is easy to find, and “large enough” in the theorems can mean far larger than the network you’d actually train. Finding the needle is its own problem, possibly a brutally hard one, and in practice gradient descent doesn’t go hunting for a fixed subnetwork inside frozen random weights. It moves all the weights around. So the tidy picture, real network was hiding in the noise and training just uncovered it, is a story the math permits but doesn’t quite tell. What the math strictly gives you is: the solution’s existence doesn’t require training, only its discovery might. And there’s a deeper hole. Every version of this result assumes you already know the target function, the thing you’re approximating. It tells you a random network contains a subnetwork that matches a network you already have. That’s a statement about representation, about what large random networks can contain. It says nothing about where the target comes from, or how you’d recognize the right subnetwork without already possessing the answer. The hardest part of intelligence isn’t fitting a known function. It’s figuring out which function is worth fitting. The lottery ticket results are silent on exactly that, which is the part I care about most. So here’s what I’ll actually claim, narrowed to what survives the objections. The capacity for a huge range of capabilities is genuinely latent in a large network before training, and that’s not a metaphor, it’s proven for the architectures we use. Scale really does make the needed solution more likely to be present. What isn’t settled is whether being present is the hard part or the easy part, whether the story of intelligence is mostly about the haystack containing the needle or mostly about the search that has no map to it. Which turns the lottery metaphor back on itself in a way I can’t resolve. If every ticket you could want is already in the bag, then the interesting question was never whether you hold a winner. You do. It’s whether you can tell which one it is before the drawing, and nothing in the mathematics promises you can. --- ## The Inevitability Thesis - URL: https://naffis.com/resources/2026/01/12/the-inevitability-thesis/ - Date: 2026-01-12 The comfortable story about AI is that a handful of brilliant people are inventing intelligence, architecture by architecture, breakthrough by breakthrough. It flatters everyone involved and it fits how we like to think progress works. I’ve come to believe the uncomfortable version is closer to the truth, and it’s worth stating plainly, because a hedged version of this claim isn’t worth arguing about. Here it is. Given sufficient scale and feedback, the emergence of intelligence may be close to inevitable. Architectures aren’t so much invented as discovered. We are not building minds. We’re assembling the conditions under which minds become the thing that reliably falls out, the way crystals fall out of a cooling solution whether or not anyone is watching. Call it the inevitability thesis. It’s a bet, not a proof, but the evidence points the same direction from four separate places, and it’s the convergence that makes me take it seriously rather than any single leg. The first is mathematical. There’s a result called the Strong Lottery Ticket Hypothesis, proved for basic networks by Eran Malach and colleagues in 2020, that a large enough randomly initialized network already contains, hidden inside it, a subnetwork that computes the function you want, before any training happens at all. Training doesn’t build the solution. It prunes away everything that isn’t the solution. The capability was present in the noise, and learning is the process of finding it. If that’s right, and it’s since been extended to the architectures that actually matter, then in some sense the trained network was always there. Scale just makes it likely to be in there somewhere. The second is physical. Complex systems of interacting parts tend to organize themselves toward a critical boundary, the edge between order and chaos, and that boundary happens to be where computation works best. Beggs and Plenz found the fingerprint of this in actual cortex in 2003, activity that propagates in scale-free avalanches exactly as a system poised at criticality would predict, with no external hand tuning it there. The brain didn’t get designed to sit at that edge. It fell toward it, because that’s what these systems do. Evolution found brains without an engineer, which is the existence proof that intelligence can be reached by a process with no foresight at all, only scale and feedback and time. The third is the pattern of the field itself. Independent research lines that started from completely different places keep arriving at the same math. In 2024 Tri Dao and Albert Gu proved that Transformers and state-space models like Mamba, which look nothing alike on paper, are two views of the same underlying operation, connected through a class of structured matrices. RWKV, coming at it from the direction of recurrent networks, lands in the same neighborhood. When separate teams chasing separate intuitions converge on equivalent solutions, the parsimonious reading is that they’re not each inventing something. They’re circling a destination that was already there, an attractor in the space of architectures, and their different paths are just different routes to the same place. The fourth is biology, and it sets the scale of what’s still ahead. When David Beniaguev, Idan Segev, and Michael London asked in 2021 how complex a single cortical neuron really is, they trained artificial networks to imitate one, and it took a deep network of five to eight layers, on the order of a thousand artificial neurons, to reproduce what one biological neuron does. Evolution compressed all of that into a single cell. That number is proof of something specific: architectures far more efficient than anything we’ve built exist and are findable by optimization alone, because optimization already found them once, without a designer, running on chemistry. Put the four together and the picture is coherent. The solution is latent in scale. Systems self-organize toward the regime where computation happens. Different search paths converge on the same answers. And biology proves there’s enormous headroom above where we are, reachable by a blind process. If all of that holds, then the honest way to describe what the labs are doing is not designing intelligence but cultivating it. We’re gardeners, not sculptors. You don’t carve a plant. You create the conditions, the soil and water and light, and the growing is done by the thing itself, following rules you didn’t write. Now the part where I have to be careful, because a thesis this clean gets seductive, and seductive theses rot into slogans. The largest hole is the one my own last post pointed at. Almost no networks produce intelligence. A hurricane is a vast system of interacting parts at scale, and it does not think. A stock market has feedback everywhere and produces panics, not minds. So “scale plus feedback yields intelligence” is plainly incomplete. There’s some set of constraints that separates the networks that get somewhere from the overwhelming majority that don’t, and I cannot tell you what those constraints are. Nobody can, precisely. Which means the inevitability thesis, stated honestly, has a hole in the middle exactly where it most wants to be solid. It says intelligence is inevitable given the right conditions, and then can’t fully specify the conditions. That’s a weaker claim than it sounds when you first say it out loud, and I’d rather admit that than smuggle it past you. The second problem is that “inevitable” quietly changes meaning depending on how hard you lean on it. There’s a modest version: intelligence is reachable by undirected optimization, not a miracle requiring a spark of genius. I’m confident in that one. Then there’s a strong version: given scale and feedback, intelligence is more or less guaranteed to appear, on something like a schedule. That one is a much bigger bet, and the honest evidence for it is thinner than the confidence with which people, including me on a good day, tend to assert it. So I’ll hold the line I can actually defend. Intelligence looks like something discovered rather than authored, latent in scale, approached by convergent paths, proven reachable by a blind process that already did it once in carbon. That’s a strong claim and I’ll stand on it. What I won’t pretend is that it comes with a guarantee or a timetable, because the missing piece, the constraints that decide which networks wake up and which just churn, is the piece we understand least and need most. Which leaves the question that the whole thesis hands you and can’t answer. If intelligence is discovered rather than built, latent in networks we’re only beginning to know how to grow, then what else is latent in there, sitting on the far side of a scale we haven’t reached, waiting to be found by a search that isn’t aiming at it? The next four posts take the four pillars one at a time, because each one is more interesting, and more contestable, up close than it is in a list. --- ## More Is Different - URL: https://naffis.com/resources/2026/01/05/more-is-different/ - Date: 2026-01-05 A single neuron is a switch. A single artificial neuron is a multiply and an add. Neither one contains anything you could point at and call intelligence, and yet wire enough of them together and you get systems that reason, plan, and argue with you about your own code. The intelligence isn’t in the parts. It lives in the interactions, and I’ve come to think emergence is the most underrated idea in the entire argument about where AI is going. The physicist Philip Anderson gave this its slogan in 1972, in a four-page paper in Science called “More Is Different.” His target was reductionism, or rather one particular overreach of it. Yes, everything reduces to particles obeying a small set of laws. No, that does not mean you can start from those laws and rebuild chemistry, then biology, then a mind. “The ability to reduce everything to simple fundamental laws,” he wrote, “does not imply the ability to start from those laws and reconstruct the universe.” At each level of scale, new behavior appears that you could not have read off the level below. Psychology is not applied biology. Biology is not applied chemistry. The whole is doing something the parts were not. That word, emergence, gets thrown around loosely, so let me be concrete about what it actually looks like, because the examples are the argument. An ant knows almost nothing. It follows a few chemical rules about pheromone trails. No ant holds a map. And yet the colony routes around obstacles, balances its foragers against its nurses, and finds the shortest path to food, solving problems no individual ant could state, let alone solve. A starling flock wheels and folds across the sky with no leader and no choreography, each bird tracking maybe seven neighbors, and out of that local rule comes a global shape that looks designed. Your brain runs on cells that individually do something close to nothing, and somewhere in the interactions of eighty-six billion of them is the thing reading this sentence. The pattern is always the same. Simple units, local rules, and behavior at scale that is not present, not even hinted at, in any single unit. You cannot find the flock in the bird. You cannot find the colony in the ant. And I don’t think you can find intelligence in a neuron, biological or artificial. Which is exactly what makes large language models worth staring at. They produce capabilities nobody wrote down. Nobody sat at a keyboard and implemented three-digit arithmetic, or in-context learning, or the ability to hold a chain of reasoning across a dozen steps. Those behaviors showed up when the networks got big enough, and they were not there in the smaller versions. The engineers specified an architecture, a training objective, and a very large pile of data. What came out was more than what went in. That is emergence, the same shape as the flock and the colony, running now in a data center. Here is the objection I have to take seriously, because it’s the one that keeps “emergence” from being a real explanation. Sometimes the word is a way of not explaining anything. “It emerges” can be a scientific-sounding shrug, the modern version of saying a phenomenon is due to its nature. If I can’t say anything about why intelligence arises from these networks and not from a hurricane or a stock market, both of which are also enormous systems of interacting parts, then I haven’t explained the intelligence. I’ve just given the mystery a longer name. And the honest state of things is that we cannot say, precisely, what separates the networks that think from the networks that merely churn. Almost no networks produce anything like intelligence. These do. The line between them is exactly the thing nobody can draw yet. So I want to hold two claims at once, and resist collapsing them into a slogan. The first: intelligence is emergent, a property of networks at scale, not a substance stored in their components, and this is as true of the brain as it is of the model. The second: naming something as emergent is the beginning of the work, not the end of it. Anderson’s point was never that complexity is magic. It was that complexity has its own laws, laws you have to discover at each level, because they don’t hand themselves to you from the level below. That’s the part I can’t stop turning over. If intelligence is what happens when you wire up enough simple parts and let them interact at scale, and it appears without anyone designing it, then the interesting question stops being how do we build it. It becomes what were the conditions that made it inevitable, and whether we’re anywhere close to understanding them or just close enough to keep tripping over them by accident. That’s the argument I want to make next, and it’s a stronger claim than this one, so it deserves its own post. There’s a separate fight about whether these emergent abilities are even real or just an artifact of how we measure them, sharp jumps on a chart that turn into smooth slopes the moment you change the metric. That fight gets its own post, and it’s a genuinely different question from this one. Whether a capability’s arrival looks abrupt or gradual on a graph is about measurement. Whether intelligence is the kind of thing that arises from networks given scale and feedback is about what intelligence is. This series is about the second question. It’s the one I find I can’t put down. --- ## The UBI Wealth Preservation Paradox - URL: https://naffis.com/resources/2025/12/29/ubi-wealth-preservation-paradox/ - Date: 2025-12-29 There’s a hole in most UBI-and-abundance conversations, and once you see it you can’t stop seeing it. The standard advice for surviving an abundant future is to hold scarce assets: beachfront property, gold, art, the things AI can’t print. But scarcity alone doesn’t create value. Scarcity plus demand from people with purchasing power creates value, and the abundance scenario quietly deletes the second half. If everyone receives the same UBI and abundant goods cost nearly nothing, who has the excess wealth to bid up your scarce assets? Run the beachfront house. It’s worth ten million dollars today because people with ten million dollars compete for it. In a flattened-distribution world it’s still scarce, still beautiful, and the auction is empty. You can live in it. You can’t sell it for anything like what you paid, because the premium on scarcity was never in the sand. It was in the distribution of purchasing power. Walk the standard preservation strategies and they all develop the same crack. Cash rides a race between AI deflation making goods cheaper and UBI funding likely inflating the currency, and the net direction is unknowable. Hard assets need future buyers with surplus, and gold especially is a pure faith instrument, valuable only because someone later will want it, a faith that breaks if nobody later has excess wealth. Productive capital sounds safest, own the robots, own the production, until you ask who the customers are. If consumers only have UBI, revenue is capped at aggregate UBI, and profit becomes a strange concept when labor costs are zero and purchasing power is fixed by policy. Which points at the bigger claim underneath, and I’d rather state it plainly than gesture at it. Our entire economic framework assumes scarce goods, valuable labor, capital earning returns by selling to wage earners, and prices set by actors with unequal purchasing power. Knock out labor value and flatten purchasing power and the system doesn’t adapt. It becomes incoherent. Either the AI systems are publicly owned and the surplus distributes as UBI, which is the end of capitalism by another name, or they’re privately owned and the owners hold claims on production with no one to sell to except each other. The Monopoly Money Problem mapped that fork. This is what it does to your portfolio. So where does value go, if it drains out of the traditional containers? Probably to attention and status, which are scarce by biology and can’t be printed. To access and relationships. To experiences that can still be scarce: front row, first ascent. To human-made work as a luxury signifier, valuable precisely because a person did it. And to political power, because if economic competition fades, competition doesn’t end. It relocates, and the new arena has worse rules. The steelman deserves its slot: maybe the flattening never happens. Every serious UBI proposal is a floor, not a ceiling, and if meaningful inequality persists above the floor, auctions still clear and assets still price. The paradox only fully bites in the strong scenario, near-total labor displacement with mostly-flat distribution. Fair. But the strong scenario is exactly the one the “hold scarce assets” advice is marketed against, which means the advice fails precisely where it claims to work. It’s an umbrella sold for the one storm it can’t survive. The honest conclusion, stated rather than softened: wealth might not survive genuine abundance as a concept. Wealth is a stored claim on future goods and services, and if goods are trivially produced and services are provided by machines, the abstraction has nothing to grip. In that world the question stops being how to preserve wealth and becomes what a good life looks like when wealth is meaningless, which is a question about relationships, purpose, and identity, not portfolio allocation. And I should admit the dodge this post is performing, because readers will feel it: you want to know what to do now. The truthful answer, hold some of everything, and invest in the things that survive every scenario, your skills, your people, your health, is boring precisely because it’s true. The interesting answers are the ones I can’t give honestly. That asymmetry, boring truth versus interesting speculation, is the entire financial-advice industry’s problem with the future, and mine too. --- ## Meaning in Abundance - URL: https://naffis.com/resources/2025/12/22/meaning-in-abundance/ - Date: 2025-12-22 Suppose it all works. AI solves the external problems, UBI or something like it handles material needs, and the struggle that has organized every human life since the beginning quietly ends. The question that’s left is whether we can find meaning without it, and the honest answer is that the evidence is not encouraging. Start with what we are. Human cognition is problem-solving machinery. Threat detection, pattern recognition, planning, a reward system tuned to fire during the overcoming, not after it. Point that machinery at a world with nothing wrong and it doesn’t produce contentment. It runs problem-detection subroutines on empty input. It invents problems, magnifies small ones, or turns inward. Some fraction of modern unhappiness already looks like scarcity-built architecture idling in an abundant environment, and full abundance turns that mismatch all the way up. The traditions that thought hardest about suffering mostly agree, in an uncomfortable way. Nietzsche’s line, that he who has a why can bear almost any how, flips: remove every how and the why gets hard to locate. His “last man,” comfortable and devoid of aspiration, is the character abundance threatens to make of us. Buddhism promises an exit from suffering, but the path is itself a discipline, a struggle to transcend struggle. The existentialists ground meaning in choice against constraint, and unlimited options make choosing anything feel arbitrary. And the historical record backs the philosophers. Lottery winners whose happiness collapses along with their relationships. Trust-fund kids with worse outcomes than peers who had to work. Hereditary leisure classes turning boredom into dueling and court intrigue. Retirees who decline the year the structure vanishes. We keep running versions of this experiment at small scale, and the results keep coming back the same. The retellings exaggerate some of these studies, and the famous lottery findings replicate worse than the folklore suggests, so the claim should be sized honestly: not “abundance destroys everyone,” but “abundance reliably destroys more people than it should if meaning were easy to relocate.” Then the counterargument, which I take seriously enough that it might win. A child playing isn’t struggling against necessity. An artist isn’t solving a survival problem. Falling in love isn’t overcoming scarcity. Much of what feels most meaningful already happens outside the problem-solving frame, which suggests that meaning was never about struggle. It was about engagement, and struggle has merely been the most reliable way to force engagement. Csikszentmihalyi’s flow research points the same way: the state people report as most meaningful comes from absorption in a challenge, and nothing in the mechanism requires the challenge to be involuntary. If that’s right, the post-scarcity question becomes learnable rather than hopeless: can humans learn to care about things they don’t have to care about? Voluntary engagement, chosen investment in projects and people that don’t demand attention through necessity. We have no idea, because nobody has ever had to. Every society that stumbled into abundance did it partially, unevenly, and by accident. The full version has no precedent, which means both the optimists and the pessimists are extrapolating from fragments. The deepest version of the problem is the one I can’t write my way out of. If AI solves the external problems, what remains are the internal ones, the hedonic treadmill, status hunger, fear of death, the need for meaning itself, and those may be unsolvable by definition. Features of conscious experience, not bugs in circumstance. A world of abundance would be the world where we finally learn how much suffering is self-generated, because there would be nowhere left to hide it. That’s either the beginning of a forced spiritual maturation or a collective dark night with no scheduled dawn. I’ve written about what abundance does to money and what it does to wealth. This is the question underneath both, and I notice I keep circling it without landing: I genuinely don’t know which possibility feels more real. So I’ll ask instead of conclude. When the machinery of your life no longer needs you, what do you plan to be for? --- ## The Monopoly Money Problem - URL: https://naffis.com/resources/2025/12/15/monopoly-money-problem/ - Date: 2025-12-15 There’s an idea floating around tech circles that AI will eventually make everything so cheap that we can just give everyone a high income. Not survival money. Enough to live well. Elon Musk calls it Universal High Income. The pitch is that robots and AI will handle production. Mining, manufacturing, healthcare, construction. The cost of a comfortable life drops to almost nothing. Everyone gets to live like the upper middle class does today. I used to think this couldn’t work. What about scarcity? What about competition? What happens when human labor is worthless? I’ve been reconsidering. The Wrong Question Most critiques of UHI ask what humans are worth economically in this world. But that might be the wrong question. It’s like asking what horses are worth as beasts of burden in 2024. Horses still exist. People love them. They’re just not valued for that anymore. I think we’ve gotten this backwards. Economic value and human flourishing were never the same thing. We just confused them because you needed money to live well. If that coupling breaks, if you can flourish without earning, then “human labor is worthless” isn’t a tragedy. It’s a liberation. You’re not worthless. You’re just not needed as a production unit anymore. What Humans Do So what do people actually do in this world? Whatever they want. That sounds glib. But think about what wealthy people freed from work do now. Some create. Art, music, writing, projects. Some master difficult things for the satisfaction of it. Some care for others. Some explore. Some just enjoy being alive with people they love. The fear is that without economic necessity, people will feel purposeless. And some will, at least at first. “Do whatever you want” is harder than it sounds when your identity was built around being useful. But that’s a transition problem, not an end-state problem. Humans are good at finding meaning when survival isn’t consuming all their energy. What About Status? One objection I had is that even if goods become abundant, status is zero-sum. There’s only one beachfront house in Malibu. Only so many spots at elite schools. When everyone has money, don’t we just compete harder for the scarce stuff? Maybe. But I think this overstates things. A lot of status anxiety is downstream of survival anxiety. When you’re not worried about healthcare, housing, your kids’ future, does the beach house matter as much? Maybe new status games emerge around creativity, mastery, contribution. Things that don’t require someone else to lose. Some people will always chase exclusivity. But I’m not sure everyone will, once the pressure is off. What Happens to the Money You Have Now? This is the question I hadn’t thought through. If you’ve worked hard, saved, invested, built something, maybe even generational wealth, then AI makes everything cheap. What happens to you? Actually, you come out ahead. If goods become nearly free, your savings go further in real terms. Your $500k retirement fund used to buy ten years of middle-class life. Now it buys fifty. Maybe more. Deflation works in your favor for everything that’s become abundant. Your wealth still matters for the genuinely scarce stuff. Land, originals, access. The people who accumulated wealth before UHI are the ones who can bid on those things. Your wealth doesn’t become worthless. It becomes a ticket to positional goods instead of basic goods. There’s a harder psychological piece though. Someone who worked 80-hour weeks for 30 years to secure their family’s future might feel cheated. Not materially. They’re fine. But the meaning of that sacrifice shifts. “I gave up so much, and now everyone gets this for free?” That’s real grief, even if the outcome is good. On the other hand, their kids don’t have to do what they did. The sacrifice bought their family’s freedom in a world that still demanded it. There’s something to honor in that, even if the rules changed after. The Transition Is the Hard Part Let’s not pretend this will be easy. The transition is dreadful. Decades of displacement while the old economy dies and the new one isn’t ready. People losing jobs, meaning, identity. Political chaos as traditional power structures fail. Real suffering happens during this part. The end state might be fine. Getting there is the problem. And there’s a power question during transition. Before everything is abundant, whoever controls the AI has leverage. They decide what “high income” means. They can be generous or not. You’re not negotiating from strength when your labor isn’t needed. After true abundance, though? Less clear they have anything to hold over you. If the basics of life cost almost nothing, control becomes harder. You can walk away. Maybe It Works I’m not certain about any of this. AI might have limits we haven’t found. This might be a century away. The transition might be so bad it never reaches the good part. But I’ve stopped assuming UHI is naive utopianism. The logic is simple. If making stuff becomes essentially free, most people can have most stuff. The things that stay scarce are a smaller category than what we fight over today. The harder question is whether we can get through the transition without breaking everything first. --- ## Contextual Targeting Is Just the Beginning - URL: https://naffis.com/resources/2025/06/09/contextual-targeting-is-just-the-beginning/ - Date: 2025-06-09 At VideoByte we built scene-level contextual targeting for CTV. Not “this is a cooking show” but “this scene, right now, is about this,” and the ad slot next to it could know that. It worked. The thing I keep thinking about since is how small a piece of the puzzle it turned out to be. Solving it mostly revealed how many problems were standing in line behind it. The acquisition came later; this post is about what the technology didn’t finish. Contextual answered where an ad should go. It said nothing about what the ad should be. The creative was still fixed months in advance, made for a demographic average, dropped identically into every context we so carefully identified. We could tell you the scene was a road trip at golden hour, and then serve the same spot that ran against a cooking segment that morning. That mismatch is the tell for where this goes next: creative that adapts to context in real time. Not a different ad chosen from a pool of five, but an ad assembled for the moment it runs. The pieces exist now. Generation is cheap, and I’m building some of this at Adwave, which is why I can be concrete where most “future of advertising” pieces stay hand-wavy. Past creative, the list gets longer. Interactive formats that TV has promised and failed to deliver for twenty years become plausible when the creative can respond instead of play. Measurement is still weaker than the industry pretends: attribution models that everyone uses and few fully trust. AI may help less by measuring better than by making experiments cheap enough that you can simply test instead of model. And identity resolution across platforms remains the swamp it’s always been, where the constraint isn’t technical capability. It’s privacy, regulation, and the platforms’ unwillingness to share, none of which a better model fixes. Now the caution that has to be in this post, because I’ve watched this pattern repeat: every one of these capabilities is currently being described as inevitable, and TV advertising has a long history of inevitable things not happening. I sold into this industry for years. The gap between what’s possible and what a media buyer will actually adopt is the most reliable fact in it. Scene-level targeting itself was possible long before anyone bought it. The buyer’s workflow, the agency’s incentives, the brand’s risk tolerance, those move on a clock that has nothing to do with the technology’s clock. Betting a company only on the technology clock is how you get surprised. The open ending, because the honest state of things is open: the interesting problems in TV advertising are no longer about knowing things. We know plenty. We know the scene, the audience, the moment. The problems are about making things, at the speed and specificity the knowing already supports. That inversion, from knowledge-constrained to production-constrained, is new. Nobody has fully priced it in, including, probably, me. --- ## Why Small Businesses Don't Advertise on TV - URL: https://naffis.com/resources/2025/05/26/why-small-businesses-dont-advertise/ - Date: 2025-05-26 Most small businesses have never run a TV ad. Ask why and you’ll hear “too expensive,” but that’s the surface answer, and it’s not even the main one anymore. The real barrier is that the entire infrastructure of TV advertising assumes an enterprise on the other end. Minimum spends built for brands. Production pipelines built for agencies. Buying platforms whose interfaces assume a media planner who does this for a living. Measurement built for quarterly brand studies, not “did anyone come in on Saturday.” The cost of the airtime was never the whole problem. A local restaurant could scrape together a few thousand dollars. What it couldn’t do was produce a commercial, navigate a buying platform, and interpret the results without hiring people whose salaries dwarf the media budget. The complexity is the moat, and it locks out the businesses that have the most to gain from the most persuasive medium there is. “Just use digital” is the standard dismissal, and it deserves a real rebuttal. Digital gave small businesses self-serve access, which proved something important: the appetite exists. Millions of small businesses will buy advertising the moment the interface stops assuming they’re an agency. Then digital gave them the rest of it: fraud, auction dynamics tilted toward whoever spends the most on optimization, and platform dependency with rules that change under them quarterly. TV, and CTV specifically, offers something digital doesn’t: presence in the living room, the format that built every major consumer brand of the last seventy years. Small businesses were never uninterested in that. They were uninvited. What changed is the stack, one layer at a time. CTV made the inventory addressable and buyable in small increments, no upfront required. Programmatic removed the phone calls. And AI is removing the last and tallest barrier, production, because a business that can describe itself can now have a commercial. This is precisely what we’re building at Adwave, so let me be careful, because a post that ends in a pitch isn’t worth your time. The way to earn the argument is to be more honest about the hard parts than a pitch would be. Dropping the barriers doesn’t automatically produce good advertisers. A small business that’s never thought about reach or frequency doesn’t start thinking about them because the tool got easier. The bigger question underneath is what makes this a post instead of a company blog entry. TV advertising is one instance of a pattern: entire industries built on infrastructure that assumes big customers, where everyone inside mistakes that assumption for a law of nature. The minimum spend, the agency requirement, the enterprise sales process, none of it was ever physics. It was a cost structure, and cost structures are temporary. The interesting exercise is asking what else works this way. Legal services. Commercial real estate. M&A advisory. Anything with a “call for pricing” button. The answer is more things than seem possible, right up until someone unbundles them, and then it looks obvious in hindsight. It always does. --- ## What I've Been Building: Adwave - URL: https://naffis.com/resources/2025/05/15/adwave-ai-tv-advertising/ - Date: 2025-05-15 We just launched Adwave. It’s an AI platform that helps small businesses create and air TV commercials in minutes, with campaigns starting at $50. That number isn’t a typo. Fifty dollars to get your business on NBC, Hulu, ESPN, and over 100 premium channels. The walled garden I’ve spent most of my career building technology for businesses of all sizes. What’s always frustrated me is watching small businesses, the local restaurants, dentists, real estate agents, auto shops, get priced out of the advertising medium that works better than anything else I’ve seen. TV advertising has historically required $10,000 to $100,000+ just for production. Then you need relationships with media buyers, weeks of lead time, and specialized knowledge most small business owners don’t have time to acquire. The result? TV has been a walled garden for big brands with big budgets. That never made sense to me. There are nearly 35 million small businesses in the United States. They employ almost half of American workers. They’re the backbone of local economies everywhere. Why should they be locked out of the medium that still commands the most attention and trust? The convergence that made this possible Two things happened at the same time that made Adwave possible. First, AI reached a point where we could generate broadcast-quality video from a business’s website in minutes. Not templates. Not slideshow ads. Real commercials that look and feel like what national brands run. A business owner enters their website URL, and our AI creates a polished, professional TV spot. They can edit it, tweak the messaging, and launch, all in about the time it takes to make a cup of coffee. Second, connected TV changed everything about how advertising gets bought and sold. Streaming now represents over 43% of all TV viewing time in the US. Nearly three-quarters of TV time is ad-supported. More importantly, CTV introduced programmatic buying, which means you can target specific audiences, geographies, and demographics without committing to massive upfront buys. When you combine AI-generated creative with programmatic CTV distribution, you remove the two biggest barriers that kept small businesses off TV: production costs and media buying complexity. There is no future where SMBs aren’t on TV I’m not building this because I think small businesses might become a meaningful segment of TV advertising. I’m building it because I’m certain they will be. The opportunity is huge because the gap between TV’s reach and small business participation is so wide. Local businesses have always understood that TV advertising works. They just couldn’t afford it. Now they can. We’re already seeing it. A dental practice increased client volume 150% within five weeks of their first Adwave campaign. A Harley-Davidson dealership grew revenue 50% after running ads with us. A restaurant started seeing new faces walk through the door saying they “saw them on TV.” These aren’t Fortune 500 companies with agency support. They’re regular businesses that got access to a channel that was previously closed to them. If you’re interested, check out adwave.com. Adwave officially launched in May 2025. Read the announcement → --- ## Be Your Own First Check - URL: https://naffis.com/resources/2025/03/31/be-your-own-first-check/ - Date: 2025-03-31 Musk poured his PayPal fortune into two companies at once and nearly lost both in the same ninety days. Bezos’s parents staked a chunk of their savings. Fred Smith staked his inheritance. Schultz spent a year of his life on 242 meetings. Before the first outside check clears, someone has already paid, and it’s always the same someone. The signal layer is the easy part to explain. Your own stake is the only pitch slide that can’t be faked. Investors read founder skin-in-the-game as the costliest and most honest signal available, and they’re right to. It’s the same rule I wrote about in The Asymmetry: weight opinions by what they cost the holder. By that rule, the founder’s opinion of the company is the most expensive one in the room. Everyone else is commenting. You’re paying. The part that gets skipped in the retellings is that the check isn’t usually money. It’s time. The opportunity cost, the safer career not taken, the years. Money can theoretically come back. The years can’t, and they’re the bigger stake in almost every founding story I know, including mine. And paying first changes the founder, not just the cap table. A reversible bet gets abandoned in the first hard month. A paid-for bet gets worked, because walking away now means the price bought nothing. Now the dark side, and it gets a full section rather than a disclaimer sentence, because it’s half the truth. Sunk-cost fuel burns in both directions. The same stake that powers persistence powers delusion. The founder who can’t quit because quitting would mean the years were wasted is running on the identical fuel as the founder who correctly refuses to quit early. From inside, they feel the same. I’ve written about the only test I know for telling them apart, and it’s imperfect. And this advice carries a privilege gradient the legends conveniently blur. “Bet your savings” reads differently depending on whether you have savings, a safety net, a family, a floor to land on. Musk was betting a PayPal fortune, which is a different act than betting a mortgage. The legends could afford their bets, or got lucky surviving them, and we only hear from the ones who survived. That’s the strongest objection to this whole essay, so it gets the microphone: for every self-funded founder who made it, many converted a bad idea into personal ruin. Skin-in-the-game is a real signal, and it is also a risk that lands hardest on the person least able to diversify it. VCs hold portfolios. Founders hold one ticket. Those are different jobs with different downside, and romanticizing the founder’s all-in without saying that out loud is incomplete. The honest recommendation is conviction-sized bets, not everything-sized ones, even while admitting the legends mostly made everything-sized ones. Do the math on that contradiction yourself. The stories usually won’t. Which leaves the knot this post can’t untie, and shouldn’t. You have to pay first. Nobody credible gets to skip it, and the payment is precisely what makes the signal real. And paying first is exactly what makes it hardest to see clearly later. The stake that makes you credible is the stake that makes you biased. There’s no version where you get the signal without the distortion. You just get to know it’s there. --- ## Read the No - URL: https://naffis.com/resources/2025/03/24/read-the-no/ - Date: 2025-03-24 “This isn’t for us” and “this is a bad business” are completely different sentences that arrive in identical emails. Founders read every no as the second sentence. Most are the first. The skill is telling them apart, and it’s a learnable skill, not a coping mechanism. I’ve written about the structure of rejection and about telling conviction from delusion. This is the tactical one, a field guide built around a simple claim: most rejections encode information about the rejecter, and if you read them correctly you can extract it. The mandate no is the most common. “We don’t do travel,” which is what Airbnb actually heard, in writing, from investors who passed on one of the great outcomes of the era. Pure thesis mismatch. It carries zero information about your business, and it’s the one founders internalize hardest, which is exactly backwards. The investor told you about their filter, and you heard a verdict about your future. The stage-and-size no is fund math wearing a polite face. A two-billion-dollar fund needs outcomes big enough to return the fund, and needs to own enough of you for that to be possible. If your realistic outcome can’t move their math, the pass was decided before you walked in. Nothing about your company changed anyone’s mind, because nothing about your company was ever the variable. The pattern-match no means you resemble something that burned them. The marketplace that cratered in their last fund, the founder who looked like you and flamed out. That’s information about their scar tissue, not your future. It stings the most and means the least. Then there’s the real no, the rare one: a specific, falsifiable objection about your business. Unit economics that don’t work, a timing problem, a competitive dynamic you haven’t answered. This is the one to mine. A generic no teaches nothing, but a specific no is free diligence. If an investor engaged deeply enough to be specifically wrong, they handed you either a blind spot to fix or an objection you’ll hear again and can pre-empt in the next room. Either is worth more than a polite yes-adjacent maybe. Now the failure mode, because this taxonomy has one and it’s serious: it can become a rationalization engine. Every no gets filed under “mandate mismatch” and nothing ever updates. That’s the delusion trap wearing a new label, and it’s more dangerous here because the filing feels analytical. There’s also a data problem underneath. Founders rarely get the real reason. Investors soften, deflect, and ghost, because candor costs them deal flow and buys them nothing. Which means the signals this taxonomy runs on are systematically corrupted by politeness. Reading no’s is inference under noise, not decoding, and pretending otherwise would make this post dishonest. So even a good reader of no’s will misfile some. The practice isn’t accuracy. It’s refusing to grant every no the same weight, because they were never the same sentence. Some of them were about you. Most of them were about the person saying no. The mistake that costs the most is treating all of them as gospel or all of them as noise. --- ## The Asymmetry - URL: https://naffis.com/resources/2025/03/17/the-asymmetry/ - Date: 2025-03-17 The Bessemer partner who dodged Larry Page and Sergey Brin’s garage is doing fine. He kept his job. The firm jokes about it on their own website. Now count what Page and Brin would have paid if they’d been the ones who were wrong: the years, the savings, the careers not taken. The whole essay lives in that gap. I wrote one paragraph about this in Everyone Said No First and couldn’t stop thinking about it. Founders pay the full price for being right: years, doubt, rejection, the safer job turned down. The people who reject them pay almost nothing for being wrong. That’s not a complaint. It’s arithmetic, and once you see it clearly it changes how much weight a no deserves. Start with the structural layer, because it explains the behavior without requiring anyone to be a villain. A venture fund’s business model prices false negatives at roughly zero. Pass on the next Google and you miss upside you never owned; the fund’s other bets still return it. Write a check into a failure and you lose real money that shows up in the numbers. So the rational investor is calibrated to say no, over and over, and the no isn’t a judgment failure. It’s the system working as designed. That reframing matters because founders experience rejection as a verdict when it’s mostly a reflection of someone else’s cost structure. The psychological layer is where the damage happens. Founders internalize rejection as if the rejecter had skin in the game. They don’t. You’re treating a costless opinion as if it were a costly bet, and those are different instruments. Taleb built a whole book on this distinction, and the founder’s version of it is simple: weight opinions by what they cost the person holding them. Your customers pay with money and time. You pay with years. The partner across the table paid forty-five minutes and a calendar slot. What I have to concede, because it’s true: the asymmetry cuts both ways. Precisely because investors are calibrated toward no, a yes carries real information. Someone chose to pay for the chance of being right, and costly signals are the ones worth reading. The mirror concession matters too. A founder’s willingness to pay the full price proves conviction, not correctness. The graveyard is full of people who paid everything to be wrong, and the asymmetry framing can curdle into a way of dismissing every no as costless noise. Whether your conviction is the kind that deserves the price is a separate question, and it deserves its own post. The ending isn’t a resolution, because there isn’t one. The asymmetry never goes away. You can’t make the room pay for being wrong, and no amount of vindication later sends them the bill. The only move available is choosing which asymmetry to live inside. The rejecter’s side is safely priced and caps your upside at a salary and a good story. The founder’s side is worse-priced and still the only side where being right pays. Choose knowingly. --- ## Conviction or Delusion - URL: https://naffis.com/resources/2025/03/10/conviction-or-delusion/ - Date: 2025-03-10 Every founder who was ever wrong felt exactly the way you feel right now. That’s the sentence nobody wants to hear, so it’s the one this post is built around. Certainty is not evidence. The deluded founder and the visionary founder report identical internal states. They cite the same legends, keep the same rejection emails, feel the same fire. So “do I believe in this?” is a worthless question. Belief is table stakes in both populations. The question that separates them is: what, outside your own head, would change your mind? I set this up in Everyone Said No First with a concession about survivorship bias and then moved on. This is the post that stays. Chesky kept his rejection emails and was vindicated. A hundred founders kept theirs and were simply wrong. Persistence appears in both groups at full strength, which means persistence is not the differentiator, even though a lot of founder advice treats it like one. What separates them, as far as I can tell, is where they look for the verdict. Investors have opinions. Customers have behavior. Usage, retention, repeat payment, unprompted referrals. Behavior is the only data that doesn’t care how the meeting went. When the room says no and the usage says yes, keep going. When the room says no and the usage also says no, the room may be early to a conclusion you need to reach yourself. The sharpest tool I know for this is stolen from science: falsifiability. A founder with conviction can name the evidence that would make them quit. Named in advance, specific, checkable. A founder in delusion cannot, because every negative signal gets reinterpreted on arrival: they don’t get it yet, the market isn’t ready, the messaging was off. A belief that can’t be falsified isn’t conviction. It’s faith wearing conviction’s clothes, and faith is fine, but you should know which one is running your company. Now the part that complicates all of it, and I refuse to hide it: markets are late. Behavior data said no to plenty of things that needed years to become legible, and the “usage will tell you” rule applied strictly in year one would have killed some category-defining companies. Pivots wreck the clean binary too. Slack came out of a failed game. Instagram came out of a cluttered check-in app. Was that conviction or delusion? Neither. It was delusion that updated, which is a third category the title pretends doesn’t exist. So the honest version of this post isn’t a verdict test you pass. It’s a practice. Early on, behavior data is thin and noisy at exactly the moment rejection is loudest, and the skill is holding the belief loosely enough to update and tightly enough to keep building through the noise. Those two motions feel opposite because they are. Nobody does this well. I want to be clear that I don’t do this well, and I’ve been at it a long time. It rhymes with something I wrote about code: the move is separating the work from the self, so the idea can be wrong without you being wrong. Easier with a function than with the company you’ve bet years on. And the close can’t be clean, because the truth isn’t. You can build the falsifiability test, weight behavior over opinion, hold the belief loosely, and still lose, because the market’s verdict arrives on its schedule, not yours. Conviction is a position you maintain under uncertainty, not a fact you verify in advance. The test never finishes running. --- ## Everyone Said No First - URL: https://naffis.com/resources/2025/03/03/everyone-said-no-first/ - Date: 2025-03-03 There’s a particular kind of quiet that follows a “no.” You’ve spent weeks building the deck, rehearsing the story, convincing yourself the meeting went well, and then the email comes, polite and final, and the room you’d built in your head goes empty. If you’ve raised money, you know the feeling. If you’re raising now, you’re probably feeling it on a loop. I want to make an argument I believe all the way down: a rejection is not a verdict on your idea. It’s a data point about one person’s view from one chair on one afternoon. And the history of company-building is, almost without exception, a history of people in those chairs getting it spectacularly wrong. The record is public, if you look. The ones everybody passed on When Brian Chesky was trying to get Airbnb off the ground in 2008, he pitched seven investors to raise $150,000 at a $1.5 million valuation. Five said no. Two didn’t bother to reply. Years later, Chesky did something most founders would never do: he published the actual rejection emails. They’re almost comically mild: not our area, not the right opportunity, we don’t do travel. He kept them, he said, so that the next time someone’s idea gets rejected, they’d have something to look at. Airbnb went public in December 2020 at a valuation of roughly $47 billion. Jeff Bezos took sixty meetings to raise the first million dollars for Amazon. Forty of them ended in no. He’s since called it the hardest thing I’ve ever done, harder than anything that came after. Part of the problem was that nobody knew what the internet was yet. The first question in most meetings was, literally, what is the web? And part of it was that Bezos told prospective investors there was a 70% chance they’d lose everything. He offered 20% of Amazon for a $5 million valuation. Today Amazon is worth more than two trillion dollars. Howard Schultz pitched 242 investors for the company that became Starbucks. He was turned down by 217 of them. Most of them simply couldn’t picture Americans paying for Italian-style espresso. Schultz’s own takeaway, in his words: you need a tremendous belief in what you’re doing, and you just persevere. It took him a full year of no’s to fund a coffee shop. Even the famous FedEx story is instructive, though here you have to be careful, because the popular version is half-legend. Fred Smith really did write a Yale paper proposing an overnight air-delivery network, and his professor really did flag it as not yet feasible. (Smith himself later said he didn’t even remember the grade, so take the apocryphal “he got a C” with a grain of salt.) What’s solidly documented is harder: investors were deeply skeptical, and within a few years of launch FedEx was hemorrhaging more than a million dollars a month and came within a hair of bankruptcy. Smith’s line years later was perfect: feasibility, he said, is sometimes a matter of capital and will. And then there’s the version of “no” that doesn’t come from investors at all. Steve Jobs co-founded Apple and was pushed out of his own company in 1985 by the board and the CEO he had personally recruited. He spent over a decade in the wilderness, NeXT and Pixar, before Apple bought NeXT in 1997 and he walked back in to run the company that had exiled him. The rest you know. Elon Musk’s near-death moment is the one that still gives me chills. By the end of 2008, both Tesla and SpaceX were nearly out of cash. SpaceX had failed its first three rocket launches, and the fourth, in September, was by Musk’s own account the last money the company had. It worked. Tesla was a different cliff: the rescue financing closed in the final hour of December 24th, 2008. Christmas Eve. Musk has said it was the closest he ever came to a breakdown. Two companies that are now worth a combined fortune almost died inside the same ninety days, because the money very nearly didn’t show up. What Bessemer put on its own site If you want a single artifact that captures all of this, go read Bessemer Venture Partners’ “Anti-Portfolio.” Bessemer is one of the oldest VC firms in America, and on its own website it lists companies it passed on: Apple, Google, eBay, FedEx, Facebook, Tesla, Airbnb, PayPal, Intel, Snap, Zoom. The notes are candid. They passed on Apple at a $60 million valuation because a partner called it “outrageously expensive.” They passed on FedEx seven separate times. The Google one is the clearest: a partner’s friend offered to introduce him to two Stanford students renting her garage, and he asked how he could get out of the house without going anywhere near it. Those students were Larry Page and Sergey Brin. Sit with that. People whose job is to recognize the future looked directly at Apple and Google and FedEx and said no. The firm put that record where anyone can read it. What this actually means (and what it doesn’t) The cheap version of this post would stop here and tell you to ignore every no and follow your heart. I won’t, because it isn’t true. So let me be precise about what these stories do and don’t prove. A no is information about the rejecter as much as the rejected. The Airbnb investors weren’t stupid. They had a thesis that didn’t include travel, and they stuck to it. Most rejections are like this. They tell you about someone’s mandate, their pattern-matching, the last deal that burned them, the size of fund they’re deploying. Separate that signal from the noise. “This isn’t for us” and “this is a bad business” are completely different sentences, even when they arrive in the same email. The best ideas are supposed to sound a little dumb at first. Stay in a stranger’s house. Sell books over the internet. Pay $5 for coffee. Overnight a package across the country. If your one-sentence pitch makes every person in the room nod immediately, it may not be big enough to matter, because if it were obvious, it would already exist. Non-consensus and right is the only quadrant where outsized things get built. A unanimous yes can be a yellow flag. But survivorship bias is real, and it matters. For every Chesky who kept his rejection emails and got vindicated, there are a hundred founders who kept theirs and were simply wrong. The skill isn’t blind persistence. It’s knowing the difference between conviction and delusion. And here’s the only reliable way I know to tell them apart: don’t let the room be your judge. Let the market be your judge. Investors have opinions. Customers have behavior. Are people using the thing? Coming back? Paying again? Telling other people? That data doesn’t care how the meeting went. When the room says no but the usage says yes, keep going. When the room says no and the usage also says no, the room might just be early to a conclusion you need to reach yourself. Betting on yourself is sometimes the whole job. Notice how many of these stories run through the founder’s own wallet, or family money, or a friend’s spare cash. Musk poured his PayPal fortune into both companies. Bezos’s parents put in a chunk of their savings. Smith staked his inheritance. Schultz spent a year of his life chasing checks. Before anyone else will believe, you usually have to be the first one to write the check, in money, or in time, or in the years of your life you’re spending on this instead of something safer. The long game, and the people who look back Here’s the part I keep coming back to. The investors who passed on Apple and Google and Airbnb paid almost no price for being wrong. They moved on to the next deal. They’re fine. The asymmetry of being a founder is that you pay the full price for being right, in rejection, in doubt, in the years of grinding, and they pay almost nothing for being wrong. That feels unfair because it is. But it also means their no costs you nothing except how much you let it cost you. And some of them do look back. Bessemer turned its misses into a public page. Plenty of investors will, years later, say out loud: I was wrong about that one. You don’t need their apology. You don’t even need to be in the room when they say it. You just need to still be building when the market’s verdict comes in, if it ever does. I keep the rejection emails. Not to nurse a grudge. To remember that a no is usually about the chair, not the idea, and that the only data that settles the question is whether people use the thing. When usage and the room disagree, I trust usage. When they agree, the room may just have gotten there first. --- ## films.io - URL: https://naffis.com/resources/2025/03/01/films-io/ - Date: 2025-03-01 films.io is a film database I keep around for finding something worth watching. Trailers, short writeups, streaming availability, sorted so you can actually browse instead of drowning in infinite scroll. Search if you know what you want. Filter by genre if you don’t. That’s most of it. Browse it: films.io --- ## NPDA and Adwave: TV ads for powersports dealers - URL: https://naffis.com/resources/2025/01/15/npda-adwave-partnership/ - Date: 2025-01-15 The National Powersports Dealer Association wrote about partnering with Adwave to get TV advertising in front of dealers who have always known it works and have almost never been able to buy it. Bob Althoff, who chairs their growth committee, put the problem the way dealers actually experience it: producing a commercial, hiring an agency, targeting, buying media. Time, cost, and knowledge most shops don’t have lying around. That’s the wall we’ve been trying to take down. Adwave handles the creative and the buy so a dealer can get on TV without becoming a media company first. NPDA premiered Powersports World TV at DealerConnect and brought us in as the path for members who want to run real campaigns, not just watch a sizzle reel. Whether that turns into actual airtime is the only test that matters. NPDA’s write-up is here. --- ## ipaddress.io - URL: https://naffis.com/resources/2025/01/15/ipaddress-io/ - Date: 2025-01-15 ipaddress.io shows your public IP address. Copy button. No ads, no account, no tracking theater. Sometimes that’s all you needed. Try it: ipaddress.io --- ## ASCII Mirror - URL: https://naffis.com/resources/2025/01/15/ascii-mirror/ - Date: 2025-01-15 ASCII Mirror turns your webcam into ASCII art. Point the camera at yourself and the feed becomes characters. Brightness maps to density. Dark areas get heavier glyphs, light areas get space. Live, in the browser. A small toy. Still fun. Try it: asciimirror.com --- ## 8-Bit Mirror - URL: https://naffis.com/resources/2025/01/15/8bit-mirror/ - Date: 2025-01-15 8-Bit Mirror takes your webcam and renders it in fat pixels and a short palette. Same face, fewer colors. A sibling to ASCII Mirror. Different filter, same impulse: make the camera feed look like a toy from another decade. Try it: 8bitmirror.com --- ## Government Innovation: Why Speed Matters More Than Scale - URL: https://naffis.com/resources/2024/12/09/government-innovation-speed/ - Date: 2024-12-09 I spent a year as a Presidential Innovation Fellow at the National Archives, applying deep learning to help digitize records. I came in from startups, where the default assumption about government is that it’s slow because the people are mediocre or the bureaucracy is malicious. A year inside taught me the assumption is wrong, and the truth is more interesting. Government isn’t slow because nobody wants to move. I worked with civil servants who wanted the mission more than most startup employees want equity. It’s slow because it’s engineered to be, and some of that engineering is legitimate. A startup that ships a bad feature loses users. An agency that ships a bad system can wrongly deny someone’s benefits or lose a piece of the historical record. Irreversibility justifies caution. The failure is that the caution gets applied uniformly, to the irreversible and the trivial alike. A pilot project with no downside risk moves at the same speed as a system of record, through the same reviews, under the same procurement rules. The insight isn’t that government should move fast. It’s that government can’t tell which things are safe to move fast on. The machinery has one speed, and the speed was calibrated for the most dangerous thing it might ever touch. Our project shipped, which made it unusual, and the reasons it shipped are the useful part. It was small. It didn’t threaten an existing contract or org chart. It had a champion inside the agency willing to spend political capital. And it was framed as an experiment, which lowered the stakes enough that permission was grantable. Notice what’s on that list: nothing repeatable. All of it was luck plus positioning, and honest writing about government innovation should admit that most of the success stories are the same. The programs work when a particular person in a particular corner decides to make one thing possible, and the case studies then get written as if the system did it. A decade on, the reflection worth writing is about what stuck. Not the specific models, which aged out the way all models do. What stuck, where it stuck at all, was the people and the precedent: the demonstration that a thing was possible, which made the second attempt easier to approve. That may be what innovation programs in government are actually for. Not delivering systems, but lowering the perceived risk of the next attempt. Whether that’s a good return on the effort is a fair question, and I go back and forth on it depending on the day. The counterpoint I’d rather engage than dodge: maybe the private sector’s speed is only possible because government absorbed the risks first. The internet, GPS, most of the foundational research underneath every fast-moving startup, including mine. Startup impatience with government speed is real, and often earned. It is also subsidized by government patience. The people building on that infrastructure, myself included, are standing on work the agency’s ancestors paid for. Both things are true at once: the caution machinery misfires daily, and the machinery’s existence is why there’s anything to build on. I spent a year frustrated by the first fact and a decade since increasingly aware of the second, and I don’t think either one cancels the other out. --- ## A Decade Later: Deep Learning at the National Archives - URL: https://naffis.com/resources/2024/12/01/decade-later-nara-reflection/ - Date: 2024-12-01 In 2014, I walked into the National Archives with a laptop and an idea that most people thought was premature at best, crazy at worst: use neural networks to automatically process America’s vast backlog of historical records. TensorFlow didn’t exist. Neither did GPT. “Deep learning” was barely a buzzword outside academic circles. Most people still thought AI meant rule-based expert systems or chatbots that could barely understand basic commands. But I built a working prototype anyway. A system that could ingest scanned documents, extract text through OCR, analyze content using neural networks to identify entities and topics, and make previously buried records searchable. It also used object recognition on NARA’s vast photographic holdings, automatically identifying people, objects, scenes, and activities in images that would otherwise require manual description. I demonstrated it to the Archivist of the United States and the executive leadership team. Then I moved on. Ten years later, we’re living in a world where AI can write poetry, generate photorealistic images, and hold nuanced conversations that pass for human. Large language models process and understand text with capabilities that would have seemed like science fiction in 2014. And I find myself thinking about the prototype gathering dust somewhere on a government server, wondering: what if? What We Got Right Looking back at my 2014-2015 work with the clarity of hindsight, several things stand out. The core thesis was correct. Neural networks can absolutely extract meaningful information from historical documents at scale. This wasn’t obvious in 2014. Handwriting recognition was still unreliable, OCR struggled with degraded documents, and training data was scarce. But the fundamental bet that machine learning would transform archival processing has been vindicated. Augmentation over replacement was the right frame. We never proposed replacing archivists. The goal was always to handle the tedious initial processing so humans could focus on contextual interpretation and quality review. This human-in-the-loop approach is now standard practice in AI deployment. NARA’s current AI initiatives use exactly this model. The backlog problem hasn’t solved itself. In 2014, NARA held about 12 billion pages of textual records with only single-digit percentages digitized. Today? They hold 13.5 billion pages. Roughly 455 million are digitized, still only about 3% of holdings. At current rates, complete digitization would take over 100 years. The math hasn’t gotten better. What Actually Happened at NARA The organization didn’t adopt my prototype. That’s not surprising. Government technology adoption is slow, budgets were constrained, and a one-year fellowship doesn’t provide the sustained effort needed to move from proof-of-concept to production. But the vision eventually arrived through other channels. In April 2022, NARA released the 1950 Census with something unprecedented: an AI-generated name index available on day one. Using Amazon Textract, they extracted approximately 130 million handwritten names from 6.6 million population schedules. For comparison, the 1940 Census required manual indexing by Ancestry.com that took over nine months. The 2022 AI system completed the main indexing in nine days. NARA now has a Chief AI Officer (Gulam Shakir, who’s also the CTO). They published an AI Strategic Framework in October 2024 with 11 active or planned AI use cases. They’re deploying AI for FOIA request processing, PII detection and redaction, semantic search, and automated metadata generation. In November 2024, FamilySearch announced they’d completed AI extraction of all 2.3 million pages of Revolutionary War Pension Files, trained on 30,000 pages of human transcriptions from NARA’s Citizen Archivist program. That’s the humans-training-machines loop we were sketching on whiteboards in 2014, running at scale. Other people built it, and built it well. What We Missed If there’s a tragedy in this story, it’s timing and training data. When I built that prototype in 2014, large language models were years away. We were working with convolutional neural networks for image recognition and recurrent neural networks for sequence modeling. Powerful, but limited. The transformer architecture that powers GPT wouldn’t be published until 2017. BERT came in 2018. GPT-3 in 2020. But here’s what haunts me: NARA has what every AI company desperately wants. Unique, high-quality training data at massive scale. Billions of pages of historical documents spanning centuries. 41 million photographs with human-written descriptions. Millions of human-generated transcriptions. Structured metadata created by professional archivists over decades. If NARA had started systematically digitizing and processing records with machine learning in 2014, even at lower quality initially, they could have built training datasets that would be invaluable today. Every document scanned, every transcription contributed by citizen archivists, every correction made by a professional could have trained increasingly sophisticated models. Instead, that data largely sat in boxes. The backlog grew. And when the AI revolution arrived, archives were playing catch-up rather than leading. This is where companies like OpenAI, Anthropic, and Google should be paying attention. We’re at a point where training data has become so scarce that these companies are generating synthetic data to train their models. They’re running out of internet to scrape. Meanwhile, 13 billion pages of real, historical, human-generated text sits in boxes at the National Archives, never digitized, never processed, never available for training. The incentives actually align here. AI companies need novel, high-quality training data. NARA needs resources to digitize and process their backlog. A partnership where frontier AI labs fund or provide technology for large-scale digitization, in exchange for access to the resulting datasets, could accelerate both missions. The archives get processed. The models get trained on genuine historical documents instead of synthetic approximations. The public gets access to their own history. This isn’t charity. It’s mutual interest. And someone should be making this case loudly. The Opportunity That Still Exists The National Archives holds records that exist nowhere else on Earth. Cabinet meeting notes. Military service records. Immigration files. Presidential papers. Court documents spanning the entire history of the federal government. This is the primary source material that historians, genealogists, journalists, and citizens depend on to understand America. With modern AI capabilities, we could: Make every document searchable. Not just by archival description, but by actual content. Find every mention of a person, place, or topic across the entire holdings. Generate draft descriptions automatically. Let AI create initial metadata that archivists review and refine, dramatically accelerating the processing pipeline. Connect related records across collections. Use embeddings and semantic search to surface connections that no human would have time to identify manually. Enable conversational research. Imagine asking a question in plain English and having an AI assistant search across millions of documents to synthesize an answer, with citations to primary sources. Preserve at-risk materials. Prioritize digitization of deteriorating records using AI to assess condition and historical significance. The technology exists today. What’s needed is investment, institutional will, and sustained execution. What I’d Do Differently If I could go back to 2014, I’d focus less on the technology and more on the institution. I’d spend more time building relationships with archivists, understanding their workflows deeply, and designing solutions that felt like tools rather than threats. I’d push harder for even a small production deployment, something that created real value and demonstrated the approach in practice, not just in demos. I’d advocate loudly for NARA to start building training datasets systematically, even before the models existed to use them. The data is the moat. The algorithms can come later. And I’d stay longer. Twelve months wasn’t enough to drive institutional change. Real transformation requires years of patient work, coalition building, and sustained advocacy. I moved on to other projects too quickly. Ten years ago, I showed what was possible with crude neural networks and limited tools. Today, with large language models and cloud computing at scale, the gap between what’s possible and what’s happening is wider than ever. The question isn’t whether AI will transform archives. It’s whether America’s National Archives will lead that transformation or follow it. I served as a Presidential Innovation Fellow at the National Archives from September 2014 to September 2015. The prototype I built demonstrated automated document processing using deep learning techniques, a proof of concept that anticipated capabilities now being deployed at scale. Read the original post: Deep Learning at the National Archives --- ## The Economics of AI Training Data - URL: https://naffis.com/resources/2024/10/07/ai-training-data-economics/ - Date: 2024-10-07 I let AI crawlers read this site. There’s an llms.txt file at the root, on purpose. That small decision is the doorway into a much bigger question: what happens to the economics of data when data becomes the primary asset of the most valuable companies on earth? The current model is scrape everything and train once. It worked because the web was treated as a commons, and because no individual page was worth anything on its own. Both assumptions are cracking at the same time. Publishers are signing licensing deals or filing lawsuits, sometimes both in the same quarter. The open web is closing in response to exactly this dynamic: paywalls, login walls, robots.txt files that read like cease-and-desist letters. And the model builders are discovering that the marginal value of another billion scraped pages is falling while the value of curated, high-quality, verified data climbs. The scrape-everything era looks less like a permanent state and more like a land rush before the fences went up. The music industry is the parallel I keep reaching for, because I watched a version of it from inside audio at Remixd. Music went from ownership to streaming, and the economics inverted: the asset stopped being the recording and became the catalog plus the pipe. Data looks like it’s on the same path. Individual creators get fractions of pennies while aggregators capture the value, and the compensation question gets answered by whoever has negotiating power, not by any principle of fairness. A major publisher can sign a licensing deal. A blogger cannot. If your data matters at scale, you license it. If it doesn’t, you get scraped. Most of us are in the second group, which is why “data ownership” as a slogan mostly benefits people who already own a lot of data. Now the honest counterpoint, which happens to be my own position, so I can’t dodge it. Maybe none of this matters at the individual level. My site’s contribution to any model is statistically indistinguishable from zero, and holding it back accomplishes nothing except making the site less findable in a world where discovery increasingly happens through models. That’s the actual reasoning behind my llms.txt, not generosity. Being in the training data is the new being in the index. When someone asks a model about CTV advertising or solo development and the answer carries a trace of something I wrote, that’s distribution. The 2005 version of me made the same bet with Google, and it paid for twenty years. Whether the trade stays rational is the part I can’t answer. The Google deal had a currency: traffic. You gave the index your content and the index sent you readers. The model deal pays in something vaguer, presence, influence on the answer, and the models are getting better at answering without sending anyone anywhere. It’s possible I’m giving away the content and the currency this time is nothing. It’s also possible that opting out just makes you invisible while changing nothing else, which is a worse deal still. The web made a deal once before, content for traffic, and it held for twenty years until it didn’t. The new deal, content for presence in the model, is being written right now, by parties with wildly unequal power, and most of the people supplying the content aren’t at the table. I’ve chosen my side of the bet with a text file at the root of this site. Ask me in ten years whether it was the right one. --- ## Why Ruby on Rails Mattered - URL: https://naffis.com/resources/2024/09/30/why-ruby-on-rails-mattered/ - Date: 2024-09-30 I almost quit programming, and then Rails happened, and I didn’t. I’ve told that as a personal story, but there’s a bigger one underneath it, about how a tool can change not just how fast you build but who gets to build at all. To feel why Rails landed the way it did, you have to remember what web development was just before it. Configuration files longer than the programs they configured. Boilerplate to connect a form to a database that took an afternoon and taught you nothing. A stack assembled from a dozen libraries that each had opinions and none of which agreed. The work was mostly plumbing, and the plumbing was where enthusiasm went to die. That’s the state I was in when I nearly walked away, and I don’t think I was unusual. I think the plumbing era quietly cost the industry a generation of people who would have been good at the interesting parts and never got to them. Rails’ move was convention over configuration, and calling it a productivity feature undersells it. What it really did was delete decisions. Name things this way, put files there, and the framework assumes the rest. Which meant a person could hold a whole application in their head, and get an idea to running software in an evening instead of a fortnight. The felt experience wasn’t “I’m faster.” It was “I can see the whole thing again.” That’s the same feeling I get now building solo with AI, and it’s not a coincidence. Both are tools that collapsed the distance between intent and working software. Both set off the same explosion of people building things, because the tax on starting fell through the floor. If you want to know what the AI moment feels like from inside and you were there in 2005, you already know. It feels like Rails. Rails is why Intridea existed. We built a consultancy on it, riding the wave of startups that could suddenly afford to try, and I watched a generation of builders show up who would never have gotten past the plumbing era. That’s the point I care most about, more than the productivity numbers: tools don’t just make existing builders faster. They change the population of who builds. Every argument about whether the new tool makes “real” developers is an argument the incumbents always make and always lose. Now the honest ledger, because nostalgia makes bad essays. Convention over configuration is a cage as well as a gift. The moment your problem doesn’t match the convention, the magic becomes the enemy, and Rails apps at scale hit walls that the framework’s early productivity had let them ignore. Worse, the very thing that let you skip decisions meant a lot of Rails developers never learned what those decisions were. The framework decided for them, so the understanding never formed, and that bill comes due the first time the framework’s answer is wrong. That tension, between tools that empower by hiding complexity and the understanding that hiding erodes, is live again right now, at much higher stakes. AI doesn’t just hide the plumbing. It hides the programming. The Rails generation at least typed the code the conventions organized. The question of what the AI generation will have skipped, and what that costs them, is the same question Rails raised, run at a hundred times the scale. Which is the real reason this history is worth retelling rather than just fond. Every era gets the tool that lowers its barrier, and every such tool is loved for the same reason and criticized for the same reason. Rails let me stay. What it also let me skip is a debt I’m honestly still not sure I fully paid. --- ## What I Wish I Knew Before My First Exit - URL: https://naffis.com/resources/2024/09/23/startup-exit-lessons/ - Date: 2024-09-23 I’ve sold companies more than once now, Intridea, Remixd, VideoByte, and each time I learned something the previous exit should have taught me but didn’t, because some lessons apparently only take on the second pass. This is the post I’d hand a founder walking into their first acquisition conversation. The first thing nobody tells you is that the emotional transaction and the financial transaction are different deals, closed on different dates. The wire hits and the world congratulates you, and somewhere in the following months you discover you also sold something you didn’t list in the data room: the identity of being the person building that thing. The founders who struggle after exits aren’t ungrateful. They priced the company and forgot to price themselves. Due diligence deserves its own section, because the surprises are never where you expect. It’s not the big questions that hurt. You know your revenue and your churn, and so do they by the second meeting. It’s the accumulation of small unfinished things: the contract that was never countersigned, the IP assignment from a contractor in 2019, the handshake arrangement that now needs to be paper. Every one is fixable, and the aggregate is a tax on speed at the exact moment speed matters most, because deals have momentum and momentum decays. Clean your paper before you need it clean. The best time to do diligence on yourself is the year before anyone asks. Your team finds out they’re part of the deal at the worst possible time, and how you handle that becomes part of your reputation permanently. Retention packages, who gets told when, who gets protected in the negotiation and who quietly doesn’t. Those decisions get made under pressure, in rooms your team isn’t in, and they’re the ones people remember. They follow you to the next company, because the industry is smaller than it looks and the people you didn’t protect talk to the people you’ll want to hire. Integration is where acquisitions actually succeed or die, and I have a whole separate post’s worth of thinking on why the acquirer’s antibodies attack what they bought. The short version for a founder mid-negotiation: assume the world you’re entering runs on different physics, and negotiate for the things that protect your product’s metabolism, decision speed, team integrity, the direct line to your users, not just the price. The price is the number everyone haggles over. The physics is what determines whether anything you built survives. And the question underneath all of it, when to sell versus keep building, has no formula, and anyone selling you one hasn’t done it. I can only offer the honest inputs: what the market is telling you, what your energy is telling you, what the next tranche of risk looks like and whether you’d take that bet fresh today, with no sunk years behind it. I’m not going to end with a checklist, because the truest thing I know about exits resists one. Every exit I’ve done was the right call, and every one cost something I didn’t see on the term sheet. Both halves are true, and a first-time founder deserves to hear them together, before the wire hits, while it can still inform the decision instead of just explaining the aftermath. --- ## The Second Founder Problem - URL: https://naffis.com/resources/2024/09/16/the-second-founder-problem/ - Date: 2024-09-16 Acquirers keep being surprised by the same thing. They buy a company largely to get its founder, structure a generous retention package, and watch the founder leave the week it vests anyway. Then they conclude the founder was mercenary, which gets the causality exactly backwards. The money was never what was being traded. I’ve been on both sides of this. I’ve been the founder inside the acquirer, and I stayed longer than most, running Kargo’s CTV division after they bought VideoByte. So this isn’t “founders should leave.” It’s about the mismatch that makes staying so hard, and why golden handcuffs don’t fix it. The core of it is that building and operating are different jobs that happen to share a title. Founders are tuned for the zero-to-one phase: high ambiguity, fast decisions, the daily act of making something exist against indifference. An acquired company inside a large organization is an operating job, coordination, process, stewardship of something that now exists. Both are real work, and the second one is arguably harder. But asking a founder to operate is asking a sprinter to run a marathon because both involve legs. The handcuffs pay the sprinter to keep walking. And the sprinter walks, and every day of walking costs more than the vesting is worth, until one day it doesn’t math anymore, and everyone acts surprised. The acquirer’s confusion is genuine, and it deserves fair treatment. “We bought you for your vision. Why won’t you stay and execute it?” Because the conditions that made the vision executable, speed, autonomy, the direct line from decision to consequence, were dissolved by the acquisition itself. The founder’s superpower was never the vision document. It was the ability to act on it within the hour. The purchase changed the physics of the thing purchased. That’s the transplant problem wearing a personnel badge. And there’s a version where the founder stays and it goes wrong anyway, which nobody writes about because it’s slower and sadder than the dramatic exit. The founder becomes an internal advocate with no army. They spend political capital defending decisions that used to take an afternoon. And they either assimilate into an executive who no longer builds, or curdle into the resident critic, the person in the meeting who keeps explaining how it used to work. I’ve watched both happen to good people. Leaving isn’t always restlessness. Sometimes it’s the accurate reading of a situation. So the pattern, build, exit, build again, isn’t a character flaw or an addiction to novelty. It’s people returning to the phase of the work they’re actually built for. The question I’d leave open, because nobody’s answered it: could the industry design exits that don’t require pretending the founder will become an operator? Earnouts tied to building something new inside the acquirer? Acqui-hire structures that are honest about the eighteen-month timeline instead of performing a forever that neither side believes? I haven’t seen it done well, and the incentives to keep pretending are strong on both sides of the table. The acquirer needs the fiction to justify the price. The founder needs it to get the price. The fiction is the deal, which may be why it never gets fixed. --- ## I Almost Quit Programming - URL: https://naffis.com/resources/2024/09/15/i-almost-quit-programming/ - Date: 2024-09-15 I almost quit programming. The Struggle By that point, I had spent 7 years deep into languages like C, C++, and Java, with occasional dabbling in ASP, PHP, Pascal, Perl, and numerous others. None of them ever truly clicked. Programming felt mechanical, rigid, devoid of the joy I had hoped to feel when I started in high school and into college. The excitement of building something from nothing but an idea had faded into the rigidity of the frameworks being used. My job had become a chore, my passion had dimmed, and I was seriously contemplating a radical life change. I’d even applied to the Peace Corps, ready to step onto an entirely different path, uncertain but eager to explore new passions I hadn’t yet defined. But life had different plans. The Turning Point My former manager unknowingly intervened at this crossroads, recommending a book: “Agile Web Development with Rails.” Intrigued yet skeptical, I gave it a shot. I read the whole thing in a few days. Ruby was expressive and eloquent, everything I had wanted programming to be. Rails let me bring ideas to life in minutes or hours rather than the weeks or months I’d grown used to. For the first time in years, I wanted to write code when nobody was making me. The Transformation For the next few months, I built dozens of applications. Each one was a revelation. Ideas that would have taken weeks in Java or C++ materialized in days. I was coding late into the night, not because I had to, but because I couldn’t stop. The joy of creation had returned, and I was making up for lost time. That excitement led somewhere concrete: I partnered with my former boss to found Intridea, a Ruby on Rails consultancy. We hired Ruby engineers I’m still proud to have worked with and built apps for everyone from early startups to Fortune 100 companies. Ruby and Rails didn’t just rescue my programming career. They redirected it. What Ruby on Rails Gave Me What Rails actually gave me, looking back, wasn’t a framework. It was a different relationship with code. Where I’d seen constraints and boilerplate, I started seeing possibility. The conventions removed the friction that had made programming feel like drudgery and left the part I’d fallen for in the first place: take an idea, make it real, build something from nothing. I’d assumed the problem was me, that I’d burned out on programming itself. The problem was the tools. That’s a distinction worth knowing about yourself before you apply to the Peace Corps. Coming Full Circle Today I’m feeling the same thing again, this time with AI. The staying-up-too-late-because-I-can’t-stop feeling, the one Ruby gave me twenty years ago, is back. I’m building things alone that would have taken a team before, and it’s fun in the same specific way Rails was fun: the distance between an idea and a working thing collapsed. I don’t know if AI reshapes my career the way Rails did. But I recognize the feeling, and last time I trusted it, it was right. --- ## The Organ Transplant Problem - URL: https://naffis.com/resources/2024/09/09/the-organ-transplant-problem/ - Date: 2024-09-09 You can’t drop innovation into a culture that rejected innovation. It’s an organ transplant into a body primed to reject it. The antibodies don’t know they’re killing the patient. They’re doing their job. I’ve lived this from the inside. Three of my companies were acquired, and I ran a division inside an acquirer afterward, so I’ve seen the cycle from both ends: the company that buys innovation because it can no longer make its own, and the machinery that then destroys what it bought. The pattern is so consistent it deserves a name, and the transplant metaphor is the right one because it locates the problem correctly. The failure isn’t malice and it isn’t stupidity. It’s an immune response. The sequence runs like this. A company achieves dominance, and the qualities that got it there, product obsession, tolerance for weird bets, atrophy, because they’re no longer what gets rewarded. Steve Jobs diagnosed it in the Lost Interview: the product people get driven out and the sales people become the heroes, because when you have a monopoly on distribution, sales is where the numbers come from. Eventually leadership notices the innovation is gone and does the rational-seeming thing. They buy some. And then the antibodies attack, each one doing its job. The sales org can’t sell what it doesn’t understand, so it doesn’t, and the acquired product’s numbers disappoint. The acquired team’s decision speed collides with the acquirer’s process, and process wins, because process is how a big company protects itself from its own size. The original founders hit their retention cliffs and leave, taking the vision with them. The product atrophies. Three years later someone writes it down as a failed bet, and the cycle often resets with the next acquisition. I don’t think the people in that loop are learning nothing on purpose. The org’s incentives make the lesson hard to keep. What would it take to break the cycle? The honest answers are all expensive, which is the point. Restructure incentives so the acquired thing counts in the numbers that decide careers. Protect the team from integration instead of celebrating integration, and accept losing some of your own people who resent the special treatment. Have leadership show up personally, not quarterly, because the org reads attention as a signal of what’s safe to attack. Most acquirers won’t pay those costs, not because the people running them are careless, but because the costs collide with how the larger company already works. I’ve been on both sides of that collision. Knowing the pattern doesn’t make it easy to stop. The cheaper alternative is upstream: keep the product culture alive so you never have to shop for one. Easy to say. And nearly every company that gets big enough fails to do it, which suggests the failure is structural rather than a sequence of individual mistakes. If it were only a mistake, someone would have stopped making it by now. Which leads to the uncomfortable ending, and I’d rather leave it uncomfortable than resolve it falsely. If the immune response is structural, then buying innovation may be a category error, like buying fitness. The acquisition delivers the artifact, the product, the team, the roadmap, and not the capability that produced them, and the capability was the thing you needed. What that implies about the entire acquisition-driven model of corporate renewal, an economy’s worth of companies buying what they can no longer make, from companies that will now stop making it, is a question I’ve decided not to answer on the way out. --- ## The Inc. 500 Paradox - URL: https://naffis.com/resources/2024/08/26/the-inc-500-paradox/ - Date: 2024-08-26 Intridea made the Inc. 500. There was a moment of real pride, and then a quieter moment sometime later when I found myself asking what exactly the list had measured. The answer is revenue growth rate and nothing else. Not profitability, not durability, not whether the work was good or the people were thriving. Growth rate, over a window. And the window is the trick. The paradox is that the list selects for the thing least likely to continue. Growth rates like that are almost definitionally a phase, not a property. A consultancy that quadruples has usually done it by saying yes to everything, hiring ahead of quality, and letting the founders’ attention become the company’s scarcest resource. The award arrives precisely when those bills are coming due. Skim the alumni of any year’s list a decade later and the pattern is plain: some graduated into real companies, plenty flamed out, and a long quiet middle simply shrank back to whatever size actually suited them. The list captured them all at the same instant and called it the same achievement. What the growth years cost us at Intridea is the part only I can write. When a services company grows fast, every new project either upholds the bar or lowers it, and the founders can’t be in every room anymore. The thing that made clients hire you in the first place, the taste, the standard, is exactly what growth dilutes. The fairness this post owes the other side: chasing the list isn’t irrational. Growth is the easiest thing to measure and the easiest thing to sell. Recruits want to join a rocket, acquirers want to buy one, and momentum is real, it compounds in ways a steady-state firm never experiences. A company that never pushes past its comfortable size never finds out what it could have been. Some of what I’d now call overreach was also how we found the ceiling, and there was no way to find it that didn’t involve hitting it. But the deliberately small firm, the one that stays at twelve people and turns down work that doesn’t fit, has quietly figured out something the list can’t see: that a business can be an instrument for a good life and good work rather than a score. There’s no award for that. Which tells you more about awards than about businesses. I’m glad we made the list, and I’m not sure I’d optimize for it again, and I’ve stopped trying to make those two sentences agree. The more interesting question is the one I can’t answer from here: whether I’m currently chasing some newer milestone with exactly the same blind spot, and won’t see it until the quieter moment arrives on schedule, a few years late, the way it did last time. --- ## I Don't Know How to Relax - URL: https://naffis.com/resources/2024/08/19/i-dont-know-how-to-relax/ - Date: 2024-08-19 I don’t know how to relax. I work. I show up for my family, the soccer games, the weekend stuff, all of it. And I love it. But none of that is the same as being still. At home, I always have to be doing something. Fixing something. Building something. If I’m not, I feel bad, like I’m wasting the day. Feeling unproductive makes me feel guilty, fast. Years ago, on vacation in Mexico, I was sitting on the beach when out of nowhere I turned to my wife and said, “For the first time in a while, I understood what relaxation was.” That moment stuck with me. Mostly because it was so rare it felt like news. I still haven’t figured out how to turn it off. I’m not writing this because I cracked the code. I’m writing it because I’m starting to think sitting still, doing nothing and being okay with it, is a skill. One I never learned. Maybe one worth learning. --- ## The Maker Mindset: What the Workshop Teaches About Software - URL: https://naffis.com/resources/2024/08/12/the-maker-mindset-in-software/ - Date: 2024-08-12 I build physical things, woodworking, CNC, 3D printing, electronics, and I build software, and the two practices have been quietly correcting each other for years. This is about what the workshop teaches that the editor can’t, because the lessons only exist where mistakes cost material. The first thing wood teaches is that reality doesn’t accept refactors. Cut a tenon a sixteenth short and there’s no undo, no quick patch before anyone notices. You either design a recovery the piece can absorb or you start the component over, and both options cost real hours and real stock. That changes how you plan, permanently. In software, the cheapness of iteration has bred a habit of thinking with the keyboard: try it, run it, tweak it. Mostly that’s a gift, and I use it all day. But some decisions in software are load-bearing the way a mortise is. Data models. Public APIs. The boundaries between components. Get those wrong and you’re not tweaking, you’re rebuilding with everything already glued up. The workshop habit of measuring twice transfers exactly to them, and the skill underneath is the same in both shops: knowing which of your cuts are reversible. Physical making drills that distinction until it’s reflex. Software, left to itself, erodes it. The second lesson is that materials push back. Wood has grain, metal has temper, and the design that ignores the material fails no matter how clever it is. Software pretends to be infinitely plastic, and it lies. Every codebase has grain, directions it wants to bend and directions where it splinters, and the developers who fight it produce the same tearout as a router run the wrong way. I’d never have put it that way before I’d felt actual tearout, which is the point: the workshop gives you the physical referent for a thing you were half-noticing on screen. Then there’s finishing. A piece of furniture is done in a way software never is. It sits in a room, it holds weight, nobody ships it an update. I underestimated how much that completeness matters to me until I had it to compare against. Software’s infinite revisability is its power and also a low-grade ache. Nothing is ever finished, and the workshop is where I go to remember what finished feels like. So the claim I’ll hang this on: every software engineer should build something physical. Not for the metaphors, for the calibration. Digital work misprices mistakes, hides materials, and never ends. An afternoon in the shop resets all three gauges. The honest counterweight, so this doesn’t drift into craft romanticism: iteration speed is the digital world’s real advantage and I wouldn’t trade it. Being able to try five approaches in an hour is worth more than all the woodshop wisdom in the world for most problems. The point isn’t that slow is virtuous. It’s that speed without the memory of cost breeds carelessness, and the shop is where the memory gets refreshed. I don’t go out there to work slower. I go out there to remember why, back at the desk, I sometimes should. --- ## Tone Dialers: The Forgotten Bridge (1991-1995) - URL: https://naffis.com/resources/2024/08/05/tone-dialers-the-forgotten-bridge/ - Date: 2024-08-05 For a few years there was a consumer product whose entire job was to make phone tones. A pocket device with a keypad and a speaker that generated DTMF, the touch-tone frequencies, so you could hold it up to a phone and dial. It existed in a narrow window, roughly 1991 to 1995, and then it vanished so completely that most people don’t believe it was ever a product. I want to write about that window, because bridge technologies like it teach something about how transitions actually work. The tone dialer existed because the world was half-converted. Phone switching had gone touch-tone, but rotary phones and payphones hadn’t all caught up, so a device that could speak the new language into old hardware had real uses. Store a hundred numbers, hold it to a payphone mouthpiece, dial without the rotary. Legitimate convenience. And, famously, not only legitimate. The same tone-generating capability sat one modification away from the red box, the phreaking device that mimicked the tones a payphone made when you dropped in coins. Swap a crystal in a certain Radio Shack tone dialer and you had one. The tone dialer’s brief life ran right through the last vivid chapter of phone phreaking, and that cultural overlap is half of what makes it interesting: the same object was a gadget for your dad’s briefcase and contraband in a teenager’s pocket, depending entirely on one component. What killed it is the useful part. It didn’t lose to a competitor. It lost to integration. DTMF got absorbed into every phone by default, then the phones themselves got absorbed into mobile devices that stored their own numbers, and the standalone tone dialer had no job left. Nobody mourned it because there was nothing to mourn. Its function didn’t die, it dissolved into everything. That’s a clean specimen of a general pattern: a device that exists only to bridge two incompatible systems is doomed the moment the systems converge, and its success accelerates its own death by proving the bridge was needed. The pattern is everywhere once you look. Fax-to-email gateways. CD ripping software. The dongle drawer everyone has and nobody opens. Products that were essential for a window precisely because they were temporary, and that we forget entirely because they left no descendants, only successors that swallowed them. There’s something almost dignified about a technology whose highest achievement is to make itself unnecessary. The reason this isn’t mere nostalgia: we’re minting bridge technologies constantly right now. A whole layer of current software exists to adapt AI systems to the software written before them, wrappers, glue, translation layers between models and legacy stacks. Most of it will vanish the way the tone dialer did, for the same reason, absorbed by convergence it helped prove was worth doing. That’s not an argument against building bridges. Bridges are good businesses for exactly as long as the gap exists, and some gaps last decades. But knowing you’re building a bridge changes how you build it, and how attached you let yourself get. The tone dialer didn’t know it was temporary. We get to know. Whether that knowledge actually changes anyone’s roadmap is another question, because the window always looks wider from inside it. --- ## Unlocking Contextual Targeting Opportunities on CTV - URL: https://naffis.com/resources/2024/03/19/unlocking-contextual-targeting-ctv/ - Date: 2024-03-19 A version of this piece ran in Streaming Media on March 19, 2024. TV is getting digitized at an awkward moment on the advertising timeline. Advertisers can finally target the big screen with the precision they got used to on the open web, and the tool they trusted for that precision, the third-party cookie, is on its way out. Inconvenient. Also a forcing function. If you can’t follow the person, you have to understand the content. That’s contextual targeting. Match the ad to what’s on screen, not to a profile of who might be watching. I’ve spent the last few years building that stack at VideoByte and now as GM of CTV at Kargo, so I’m not a neutral observer. I also think the case against behavioral ads was never the whole story on living-room TV. A phone is personal. A TV is often a room. Behavioral targeting can be right for one person on the couch and wrong for everyone else in the shot. Contextual can be relevant to the group, because it’s relevant to the show. It also does work behavioral targeting was never designed to do. Brand safety and suitability become questions about the content, which is the question brands actually ask. You can insist on aligning with scenes and tones that make sense for the product, instead of hoping an audience segment doesn’t wander into the wrong pod. Attention follows too. An ad that belongs next to what you’re already watching has a head start on one that followed you in from a different app. The objections are real Contextual CTV is still early, and the hesitation isn’t imaginary. Without shared content identifiers, buying context across partners is messy, and comparing outcomes is worse. The IAB and others are pushing standards. Standards only work if buyers and sellers actually use them. Brand safety is also blunter than people want when you only get show-level labels. An hour of mostly fine content can still have a commercial break after a scene some brands will not touch. Scene-level understanding is the difference between “avoid this title” and “avoid this moment.” Then there’s the access problem. On the open web, you can analyze a page. On CTV, publishers lock the stream. Direct integrations become the tollbooth, which slows everyone down and keeps advertisers from getting smarter. Publishers aren’t villains for that. They’re protecting CPMs and trying not to let buyers cherry-pick the premium moments while leaving the rest. There is a compromise available. It requires negotiation, not a lecture about openness. Stop treating CTV like big display A lot of the “contextual doesn’t scale on CTV” talk assumes CTV is display advertising with a larger screen. It isn’t. Quality CTV inventory is still scarce enough that publishers can afford to collaborate, and the format itself allows things display never did. AI is making the content side sharper: more nuance than keywords and genre tags, closer to what we built for scene-level matching. Virtual product placement can pick the moment a product belongs in the frame. Formats that sit beside the content instead of stopping it, what we called Moments at VideoByte, give contextual a different surface than a pre-roll pod. A truck ad in the browse results for action-adventure, a fashion ad next to a reality slate, an L-bar that doesn’t kick you out of the episode. Cookies trained the industry to chase the person. The interesting work on CTV is happening around the program. None of that erases the hard parts. Standards, access, measurement, the politics of who gets to read the stream. I won’t pretend those are solved because a byline needs an optimistic last line. I will say this: the death of the cookie is not a temporary outage on the old targeting model. It’s a chance to build a better one for a screen people watch together. Contextual is how you start. David Naffis is General Manager of CTV at Kargo. --- ## Business Insider on the VideoByte deal - URL: https://naffis.com/resources/2023/02/22/business-insider-videobyte-coverage/ - Date: 2023-02-22 Business Insider wrote up the VideoByte acquisition a couple weeks after we announced it. Their angle was the one I care about most in the coverage: not just that Kargo bought a CTV company, but that the bet was on contextual targeting for streaming, show-level and scene-level understanding of what’s actually on screen. The article got the strategic logic right. Kargo had premium relationships and needed CTV technology. We had the technology and needed distribution. That was the deal. Read the Business Insider piece. --- ## VideoByte Acquired by Kargo - URL: https://naffis.com/resources/2023/02/03/videobyte-acquisition-kargo/ - Date: 2023-02-03 Today we announced that VideoByte has been acquired by Kargo. I’ll be joining Kargo as General Manager of CTV to continue building on what we started. I want to take a moment to reflect on what we built at VideoByte over the past three years, and why I think it matters for the future of streaming TV advertising. The problem we set out to solve When we started VideoByte in 2020, Connected TV advertising was growing fast but the technology was stuck in the past. Advertisers could buy spots on streaming platforms, but they had no real visibility into what content their ads appeared alongside. You might know you’re running on a FAST channel, but you had no idea if your ad played during a cooking show, a true crime documentary, or a children’s cartoon. Meanwhile, publishers were dealing with a different problem: ad breaks. Every ad on CTV required stopping the content, running a pod of commercials, and hoping viewers didn’t bounce. For FAST channels competing for eyeballs against ad-free options, this was a real tension. More ads meant more revenue but also more friction. There had to be a better way. What we built We built two things that I believe will shape how CTV advertising works. Scene-level contextual targeting The first was scene-level contextual targeting for FAST and streaming content. Not show-level. Not genre-level. Scene-level. Our system analyzes video content in real-time: what’s happening on screen, the dialogue, the emotional tone, the objects and people visible. It creates a contextual profile of every moment in the stream. When an advertiser wants to reach viewers watching outdoor adventure content, or cooking scenes, or moments of celebration, we can deliver that with precision. What made our approach different was that it worked directly with the video stream. No SDK. No tagging content. No manual categorization. We could analyze any FAST channel or streaming service without touching their tech stack. That was critical for getting to market quickly and scaling across the fragmented CTV landscape. For advertisers, this opened up something that wasn’t previously possible: the ability to actually know what content they’re appearing alongside and to target based on it. Brand safety becomes real. Contextual relevance becomes real. You can run a travel ad next to travel content, not just on a channel that sometimes has travel shows. Moments: Non-intrusive ad formats The second innovation was what we called “Moments,” a suite of ad formats that don’t interrupt the viewing experience. Think L-bars, picture-in-picture overlays, squeeze-backs, and frame ads. These formats let advertisers deliver a message while the content continues playing. The viewer doesn’t lose their place in the show. The publisher doesn’t have to worry about ad break fatigue. And the advertiser gets a format that commands attention because it’s different from the same 30-second spots viewers have been ignoring for decades. The technical challenge was making this work without requiring publishers to rip out their existing infrastructure. Most streaming platforms already have server-side ad insertion (SSAI) systems in place. They’re not going to throw that out for a new vendor. So we built Moments to work as a layer alongside existing SSAI. Complementary, not competitive. Publishers could add our formats to create incremental inventory without touching their existing ad stack. This mattered because it aligned incentives. Publishers got new revenue without new risk. Advertisers got new formats that stood out. Viewers got fewer interruptions. Why Kargo Kargo has spent twenty years building relationships with premium publishers and major advertisers. They’ve established themselves in mobile and web with a reputation for creative innovation. What they didn’t have was CTV. We have the technology. They have the distribution. That’s the logic behind this deal. I’m excited about what we can do together. The innovations we built at VideoByte were always limited by our ability to get them in front of buyers and sellers at scale. With Kargo’s go-to-market capabilities, we can accelerate that significantly. FAST viewership is exploding. Ad-supported tiers are launching on every major streaming platform. Advertisers are shifting budgets from linear TV to streaming. The companies that can deliver real targeting, real measurement, and real creative innovation on CTV are going to win. We built VideoByte to be one of those companies. Now we’re going to prove it at scale. Press coverage: Business Insider: Deal could be worth $100 million Kargo Press Release Globe Newswire --- ## Remixd Acquired by Global - URL: https://naffis.com/resources/2021/10/10/remixd-acquired-global/ - Date: 2021-10-10 Last week we announced that Remixd has been acquired by Global, Europe’s largest radio company. The technology will be integrated into DAX, Global’s digital audio advertising platform. How it started The idea for Remixd came from a simple frustration. I was walking somewhere while trying to read an article on my phone. It wasn’t working. I thought: why can’t I just listen to this instead? So I started building. The concept was straightforward: create something publishers could embed on their pages that would convert their articles to spoken audio, let users listen, and run ads (pre-roll, mid-roll) to generate incremental revenue. Publishers already had the content. They just didn’t have an easy way to turn it into audio. I built the MVP, then assembled a team around it. We built out the production product, got connected to audio DSPs for programmatic demand, and started signing publishers. USA Today Sports, Fast Company, Tribune Publishing, Future Publishing, and Dennis Publishing all came on board. Building the team As the company grew, my time was split between Remixd and my work at Consumable. Mark Levin, CEO of Consumable, was supportive. He gave me the flexibility to pursue both and invested in Remixd. To run Remixd full-time, we brought in Chris Rooke as CEO, and Michael Cascio to lead publisher development. Chris took over the day-to-day operations while Michael built out our publisher relationships, which is how we landed USA Today Sports, Fast Company, and the rest. Why Global Global operates DAX, one of the largest digital audio advertising platforms. They have reach across the US, UK, and Canada. For Remixd, joining Global means access to a much larger sales organization, deeper advertiser relationships, and the infrastructure to scale. From Global’s perspective, Remixd fills a gap. They have the demand side figured out. What they needed was a way to help publishers create more audio inventory. That’s what Remixd does. A publisher with written content can now turn that into audio and monetize it through DAX. Les Hollander, CEO at DAX North America, put it well: “This technology means digital publishers can meet the growing consumer demand for audio and publisher need for improved ad monetization.” What’s next Remixd will be integrated into DAX, giving publishers across the US, UK, and Canada a turnkey way to convert their written content into monetized audio. Global’s sales team and advertiser relationships will accelerate what we started. Press coverage: Business Wire Global Press Release RAIN News --- ## Deep Learning at the National Archives - URL: https://naffis.com/resources/2016/03/15/deep-learning-national-archives/ - Date: 2016-03-15 In September 2014, I walked into the National Archives and Records Administration in College Park, Maryland, with a mandate to work on crowdsourcing tools. Twelve months later, I walked out having built something entirely different: a working prototype that used deep learning to automatically extract metadata from historical documents. This is the story of that pivot, what I learned about bringing emerging technology into traditional institutions, and why I believe neural networks will transform how we preserve and access our nation’s history. The Scale of the Problem Most people know the National Archives as the home of the Declaration of Independence and the Constitution. What they don’t realize is that NARA holds approximately 12 billion pages of textual records, 41 million photographs, hundreds of millions of feet of film, and a growing mountain of electronic records. Only a small percentage of these holdings are digitized. At current processing rates, it would take well over a century to work through the backlog. Meanwhile, documents are physically degrading. Film is deteriorating. Magnetic tape is demagnetizing. History is literally crumbling while it waits in boxes. The traditional archival workflow is methodical and meticulous. Records are accessioned, arranged, described, preserved, and eventually, maybe, digitized and made accessible online. Each step requires trained archivists applying professional judgment. It’s careful work, and it produces high-quality results. But it cannot scale to meet the volume. Why Crowdsourcing Wasn’t the Answer (Yet) My co-fellow Ashley Jablow and I were originally tasked with exploring crowdsourcing, enlisting the public to help tag, transcribe, and index records. It’s a proven approach; organizations like the Smithsonian and FamilySearch have built successful volunteer programs. But after two months of intensive research, 31 interviews, site tours, and countless coffees with archivists across the agency, we reached a different conclusion. NARA wasn’t structurally or technologically ready for successful crowdsourcing at scale. The internal systems didn’t talk to each other. Workflows were fragmented. There were significant cultural and organizational barriers to overcome first. We also kept hearing the same refrain from staff: technology at NARA felt like an obstacle, not a help. Systems were outdated. Automation was essentially nonexistent. Archivists were spending their expertise on manual data entry rather than the interpretive work they were trained for. What if we could change that equation? The Pivot to Deep Learning In late 2014, I started exploring a different question: what if machines could handle the initial, tedious stages of document processing? Not replacing archivists, but augmenting them. Taking the grunt work off their plates so they could focus on the nuanced, contextual analysis that actually requires human expertise. The timing was good. Deep learning had just achieved breakthrough results in computer vision. In 2012, AlexNet had stunned the research community by crushing the ImageNet competition with a convolutional neural network, cutting the error rate nearly in half. By 2014, Google’s GoogLeNet had driven error rates down to 6.67%, approaching human-level performance on image classification. More relevantly, Google had just published a paper showing they could use neural networks to transcribe house numbers from Street View images with over 96% accuracy. They processed every address in France in under an hour. That got my attention. If neural networks could read messy, inconsistent street numbers captured from moving vehicles, what could they do with scanned documents? Building the Prototype The technical landscape in 2014 was challenging. TensorFlow didn’t exist yet. Neither did Keras. The main options were Caffe (released December 2013), Theano (a Python library with a steep learning curve), and Torch7 (which required knowing Lua). There were no high-level APIs, no pre-trained models you could fine-tune in an afternoon. I built the prototype using Caffe for the neural network components, combined with traditional OCR tools and natural language processing for text analysis. The system had several stages: Document Ingestion: Convert any file format into a standardized image format while preserving the original document’s appearance and formatting. Text Extraction: Apply optical character recognition to convert images into machine-readable text. For printed documents, this worked reasonably well. Handwritten documents remained a significant challenge. Content Analysis: Here’s where the deep learning came in. The system analyzed extracted text to identify: Named entities (people, places, organizations, dates) Keywords and topics Document categories and types Taxonomic classifications Image Analysis: This was where the prototype really showed its potential. NARA holds 41 million photographs, and describing them manually is even more labor-intensive than processing text. We used convolutional neural networks to identify objects, scenes, people, and activities in photographs. A photo that an archivist might describe as “military personnel, circa 1944” could be automatically tagged with: soldiers, uniforms, jeep, tents, forest, rifles, and dozens of other objects visible in the frame. We tested the system on portions of NARA’s photographic holdings, and the results were promising. Objects that would never make it into a manual description became searchable. Search Interface: All extracted metadata fed into an index that enabled search across the analyzed records, search that went far beyond the manually-created archival descriptions. The key insight was that neural networks could dramatically expand the metadata attached to any single record. An archivist might describe a collection at the box level or folder level. The automated system could analyze every individual document and photograph, extracting dozens of potential access points: names, dates, topics, objects, scenes, faces. Information that would never have been captured manually. Demonstrating the Possible By summer 2015, the prototype was ready to demonstrate internally. We showed it to teams across the agency: archivists, the digitization division, the Office of Innovation. We presented to the Deputy Archivist and ultimately to David Ferriero, the Archivist of the United States, and the Executive Leadership Team. The reactions were mixed. Some people immediately grasped the potential. They could see how this technology might finally offer a path through the backlog problem. They understood that we weren’t proposing to replace archivists but to give them superpowers, letting machines handle initial processing so humans could focus on higher-value work. Others were skeptical, even concerned. Archival practice has developed over decades for good reasons. Metadata quality matters. Context matters. A machine that misidentifies a document or extracts incorrect information could mislead researchers. The professional standards archivists uphold aren’t arbitrary bureaucracy; they’re essential to maintaining the integrity of the historical record. And some, frankly, saw it as a threat. If machines could do this work, what would happen to archival positions? These concerns weren’t unfounded. Technology-driven displacement is a real phenomenon. Though I’d argue that augmentation, not replacement, was always the goal. What I Learned Traditional institutions move slowly for reasons. NARA isn’t a startup. It can’t “move fast and break things” because the things in question are irreplaceable historical records. The caution I encountered wasn’t obstruction; it was institutional responsibility. Any technology deployed at NARA needs to be reliable, maintainable, and aligned with archival principles. Technology is the easy part. Building the prototype took months. Getting organizational buy-in would take years. The real barriers weren’t technical. They were cultural, budgetary, and political. Someone with the right vision and authority will need to champion this kind of transformation. “Good enough” beats “perfect” for initial access. This was controversial, but I believe it firmly: getting documents online quickly with 80% accurate automated metadata is better than keeping them in boxes for decades while waiting for resources to process them “properly.” Initial automated processing could be followed by human review and correction. The public would have access years or decades sooner. The training data problem is solvable. Deep learning requires large datasets. NARA has something most organizations don’t: decades of human-generated archival descriptions that could serve as training data. The Citizen Archivist program produces human transcriptions that could train handwriting recognition models. The ingredients exist. What Comes Next I’m not naive about the timeline. Government technology moves slowly. Budgets are constrained. NARA’s funding has been essentially flat in real dollars for decades. The agency is struggling to maintain basic operations, let alone invest in advanced AI research. But the technology will only improve. Neural networks are getting better, faster, and more accessible every year. What required a PhD and a GPU cluster in 2014 will be available to any developer with a laptop in a few years. The question isn’t whether these techniques will transform archives. It’s when, and whether American archives will lead or follow. My hope is that NARA will continue exploring these approaches. The prototype I built was a proof of concept, not a production system. But it demonstrated that the core idea works: machines can extract meaningful information from historical documents at scale. Imagine a future where every document in the National Archives is digitized, indexed, and searchable. Where a researcher looking for mentions of their great-grandmother doesn’t need to know which record group to search. They can simply type a name and find every instance across billions of pages. Where connections between documents that no archivist had time to identify emerge automatically through computational analysis. That future is technically possible today. The only question is whether we’ll build it. I served as a Presidential Innovation Fellow at the National Archives from September 2014 to September 2015. I’m grateful to Ashley Jablow, my co-fellow; Pamela Wright and the Office of Innovation team; and the hundreds of NARA staff who shared their time and insights with us. --- ## Running the 3D Printing Station at the White House - URL: https://naffis.com/resources/2015/04/23/white-house-3d-printing-station/ - Date: 2015-04-23 In April 2015, I had the opportunity to run the 3D printing demonstration station at the White House’s “Take Our Daughters and Sons to Work Day.” The event, marking the White House’s 10th year of participation, welcomed over 200 young attendees aged 8-12 for a day of learning and hands-on STEM activities. The 3D Printing Station Working alongside OSTP staff, I showed kids how a digital design gets turned into a physical object through 3D printing. We walked through the entire process: starting with a design on the computer, sending it to the printer, and watching layer by layer as plastic filament transformed into something you could hold in your hands. The students were inspired by real-world examples of 3D printing, like the copper rocket engine part NASA printed at Marshall Space Flight Center in Huntsville, Alabama. 3D printing is one of many technologies NASA is embracing to help continue the journey to Mars, and showing kids that connection between a desktop printer and space exploration made the technology click for them. The highlight was printing a working whistle from a roll of plastic filament. The kids got to prove it worked by trying it out themselves. You can watch the realization land on a kid’s face: the object in their hand didn’t exist 20 minutes ago, and they could design and print their own. Voted Best of the Day The 3D printing station faced tough competition from other activity stations, including learning to make origami frogs in honor of Japan’s State visit that week, and taste-testing healthy cupcakes made by the White House Pastry Chefs. But in the end, the 3D printing station was voted by the young participants as one of the best of the day. STEM at the White House The day was part of a broader effort to get kids excited about science, technology, engineering, and math. NASA and OSTP ran several of the activity stations in the East Wing. At the NASA station, Astronaut Cady Coleman invited students to think like aeronautical engineers. At the circuit station, kids built custom electronic cards with copper stickers, batteries, and tiny LED lights. As the First Lady remarked at the event, “if you want to be President, if you want to be the First Lady of the United States, you have the ability if you work hard and get your education.” Getting kids of all backgrounds into the workplace, meeting inspiring role models, and participating in hands-on activities helps empower young minds to see science and technology as something they can actually do. There’s a difference between telling kids that 3D printing is cool and letting them watch a whistle materialize out of thin air. Hands-on learning sticks in a way that lectures don’t. These kids got to see that the same technology NASA uses to build rocket parts is accessible enough that they could use it too. This was one of the more rewarding things I did during my time as a Presidential Innovation Fellow. The work at the National Archives applying deep learning to historical documents was important and impactful. But watching a room full of kids get genuinely excited about technology, and voting your station as their favorite, that’s a different kind of impact. Coverage: White House Blog: Taking Daughters and Sons to Work on STEM Related: Deep Learning at the National Archives • Bo-Bot and Sunny-Bot --- ## Bo-Bot and Sunny-Bot at the White House - URL: https://naffis.com/resources/2014/12/15/white-house-holiday-bots-bo-sunny/ - Date: 2014-12-15 It started with a simple question: how do you make holiday decorations that capture the spirit of the maker movement? For the White House Office of Science and Technology Policy and the Presidential Innovation Fellows program, the answer was Bo-Bot and Sunny-Bot, life-size animated robotic versions of the First Family’s Portuguese Water Dogs that would become part of the White House holiday décor. For the past several years, Bo and Sunny have been creatively included in the White House holiday decorations. Last year featured a 3D model of Bo with a wagging tail powered by a motor from a reindeer lawn decoration. But this year, the team wanted to go bigger. They wanted to create life-size, animated “dog-bots” that would respond to movement and bring the First Dogs to life in a whole new way. Building Life-Size Robots The project brought together Stephanie Santoso, Mark DeLoura, and Laura Gerhardt from OSTP, along with Bosco So and me from the Presidential Innovation Fellows program. We worked on the dog-bots in our free time over six weeks, which was plenty of time to learn firsthand how much patience, determination, and fun goes into a maker project. The hardware foundation was built on an open-source electronics platform designed for interactive projects. Servomotors, motors coupled with sensors that provide angular position feedback, were used to animate the bot heads. These motors can rotate 180 degrees and are commonly used in robotics and animated toys. The teams programmed software to control the speed, angle, and sequence of head rotations, giving each dog its own personality through movement. The Iteration Process Bo-Bot went through about five different prototypes, with each design presenting new challenges. The first design enclosed the hardware and motor neatly within a box, but that quickly became a problem. The box prevented heat from escaping, causing the motor to overheat and burn out. The team switched to a custom open platform where both the motor and platform could be mounted. The platform and special attachment brackets were made from wood and laser cut at a local makerspace. Developing a way to attach the motor to the head while providing stability and the right amount of give to prevent overheating created an additional challenge. The final answer, after all the clever attempts failed, was a metal bar and zip ties. Sunny-Bot went through a similar number of iterations. The greatest difficulty was precisely positioning the head at specific angles. The team tried different types of motors and eventually settled on a servomotor, a motor that can move to specific angles along an arc without needing end switches or other position identification methods. But Sunny-Bot got something extra: infrared sensors in her eyes, allowing her to track movements and follow individuals across a room with her head. Making It Open Source We posted the source code online, along with instructions for making your own dog-bot at home, at school, or at a local makerspace. That part matters more to me than the address. The maker movement’s whole premise is that technology should be something you can understand, modify, and build yourself, and a decoration you can’t replicate would have missed the point. The OSTP and PIF teams initially worked on Bo-Bot and Sunny-Bot separately, which resulted in slightly different implementations. During the final stages of assembly we came together to troubleshoot and make the last tweaks required to get the dogs running in time for the holiday season. Two teams, two designs, one deadline. Integrating elements of the Maker Movement into the White House holiday décor is part of a broader effort to highlight the importance of making to American innovation. As President Obama said at the White House Maker Faire last June: “Today’s D.I.Y. is tomorrow’s made in America.” Bo-Bot and Sunny-Bot are holiday decorations, but they’re also an argument: robotics and interactive electronics are within reach of anyone willing to burn out a motor or two and try again. Every part we used is off the shelf. Every technique is learnable in a weekend at a makerspace. And the finished work stood in one of the most photographed rooms in the country, which says more about where making stands than any policy statement could. The project has been covered by The Washington Post, which highlighted how the White House holiday décor went digital with dog bots and crowdsourced tree lights. The White House blog documented the entire process, from initial prototypes to final assembly. Somewhere out there, a kid is going to build her own dog-bot from our posted plans. That’s the part of this project I keep thinking about. --- ## Why I Keep Building Things That Don't Need to Exist - URL: https://naffis.com/resources/2014/12/01/maker-projects-hardware-robotics/ - Date: 2014-12-01 I spent part of this year wiring a vintage dice roller to Twitter and part of it building life-size robotic dogs for the White House holiday décor. Neither project had a business case. Both taught me more about how I build than most client work did. DiceBot started as a question: what if you didn’t have to be in the room to push the button? A Raspberry Pi, a motor, a camera, OpenCV counting pips, a Ruby script listening for #RollTheDice. About $130 and a weekend, plus the lighting fights that never fully ended. Gizmag covered it as an IoT curiosity. People tweeted at it from places I will never visit. That still delights me more than it should. Bo-Bot and Sunny-Bot were the other end of the same impulse. Same motors, same iteration, same willingness to burn a part and try again, except the finished work ended up in the White House holiday décor. We posted the plans. If a kid builds her own dog-bot in a makerspace, the project did its job. I know how this reads. Hardware toys. Side projects. The thing you do instead of shipping the real work. Here’s what I actually get from them. Client software has constraints that hide your taste. Scope, stakeholders, deadlines, the politics of whose idea survives the meeting. A weekend build has almost none of that. You find out what you reach for when nobody is watching: whether you care more about the clever architecture or the thing that works when a stranger pokes it, whether you stop at “it runs” or keep going until the interaction feels inevitable. DiceBot didn’t need a microsite and a watermarked photo. We built those because the roll felt unfinished without them. The objection I take seriously is that this is nostalgia for a smaller scale, a way to feel productive without facing the harder problems. Sometimes it is. I’ve used a soldering iron to avoid a hard conversation about a product. I’m not proud of those weekends. But the other half is real. Every serious tool I trust, I trusted first in a toy. Computer vision on dice pips before computer vision on archival photographs. Servos and sensors in a dog head before I trusted myself to talk about robotics with Fellows and OSTP staff who lived in a different craft. The play is rehearsal. Not always. Often enough that I protect the habit. I don’t have a clean rule for which side projects are worth the nights. The ones that pull me back to the bench after dinner tend to be the ones. The ones I have to schedule usually aren’t. That isn’t a methodology. It’s just the only signal I’ve learned to trust. --- ## When the White House Put Makers on the Lawn - URL: https://naffis.com/resources/2014/07/15/white-house-maker-faire-coverage/ - Date: 2014-07-15 In June the White House held its first Maker Faire on the South Lawn. Soldering irons, 3D printers, robots, kids, and a few cabinet secretaries sharing the same grass. Obama’s line from the day stuck with me: today’s D.I.Y. is tomorrow’s made in America. For once it didn’t sound like a slogan. It sounded like someone had noticed that the people building things in garages and makerspaces were doing work the country actually needed. I wasn’t on the lawn as a Fellow. That starts in September, at the National Archives. But I was already living in that world. A few weeks earlier we’d put DiceBot online, a 1920s dice roller wired to a Raspberry Pi that answered tweets by spinning the dice, photographing the result, and reading the pips with OpenCV. Gizmag, Hackaday, CNET, and Adafruit all wrote it up. None of them cared that it was useless. That was the point. It was a physical object you could talk to, and people wanted to talk to it. What the Maker Faire made visible was that government had started treating that instinct as policy, not hobby. The Office of Science and Technology Policy put maker culture next to the formal machinery of the state and asked what happened. The tools on that lawn were the same tools sitting on my bench. The difference was whether anyone in power thought the people using them were worth inviting inside. They did, that summer. I’m still not sure how often that happens. --- ## DiceBot: The Twitter-Controlled Dice Roller - URL: https://naffis.com/resources/2014/06/03/dicebot-twitter-controlled-dice-roller/ - Date: 2014-06-03 It started with a 1920s antique dice tin I bought on eBay. The thing was beautiful - a small metal container with a button on the side that, when pressed, would spin the bottom and tumble a pair of dice inside. There was something satisfying about the mechanical simplicity of it, the way it required a physical interaction to produce a random result. But I couldn’t help wondering: what if you didn’t have to be there to push the button? What if this vintage piece of hardware could be controlled from anywhere in the world? That question led to DiceBot, an internet-connected dice roller that responds to Twitter commands. Bringing Vintage Hardware Online The original tin worked perfectly as-is. Push the button, spin the dice, check the result. But the button was the problem - you had to be physically present. So I added a small motor connected to a Raspberry Pi, which meant I could control the spinning mechanism programmatically. The L298N motor driver handled the power management, and GPIO pins on the Pi gave me the control I needed. The hardware side was straightforward enough, but the real challenge was making it useful. I wanted people to be able to roll the dice remotely, and Twitter seemed like the perfect interface. Everyone already knew how to tweet, and the API made it easy to listen for commands. So I built a Ruby script that would watch for tweets mentioning @IntrideaDiceBot with the hashtag #RollTheDice, then queue up the requests. Reading the Dice Once the dice were rolling, I needed a way to actually read them. That’s where OpenCV came in. I mounted a Raspberry Pi camera above the dice tin, and after each roll, it would capture an image. The computer vision code would analyze the pips on the dice and count them up. It wasn’t perfect - sometimes the lighting or angle would confuse it - but it worked well enough to be reliable. The whole process feels magical every time it works. Someone tweets from halfway around the world, the motor spins, the camera captures, OpenCV counts, and a few seconds later that person gets a tweet back with their result and a photo of the actual roll. It’s a physical random number generator accessible to anyone with a Twitter account. Building the Dashboard I wanted people to be able to see all the rolls happening in real-time, so I built a web dashboard using Firebase and AngularJS. The dashboard shows a live feed of every roll, complete with photos and timestamps. It’s become a kind of digital window into this physical device sitting in our office. The dashboard also solves a practical problem: when multiple people want to roll at the same time, we need a queue system. The Ruby scripts handle job queuing, processing requests one at a time so the dice have time to settle between rolls. It’s not the most sophisticated queuing system, but it works. A 1920s Tin on the Internet of Things You have this antique piece of hardware from nearly a century ago, combined with modern maker tools like the Raspberry Pi, controlled through social media, and powered by computer vision. It’s playful, but everything in it is real: real motor control, real computer vision, real job queues. The project has been getting picked up by publications, which is exciting. Hackaday featured it as an innovative maker project. CNET wrote about it from a mainstream tech perspective. Adafruit showcased it as a Raspberry Pi project. Gizmag covered it as an innovation feature. Each publication sees something different in it - some focus on the maker aspect, others on the IoT angle, some on the social media integration. People are starting to talk about the Internet of Things, but most examples are either too complex or too theoretical. DiceBot is neither. It’s a dice roller, some common maker components, and straightforward code, and people want to interact with it anyway. Maybe because of that, not despite it. The part I find myself thinking about is the social layer. A physical object you can tweet at, that answers back with a photo of what it did, sits in a category that doesn’t have a name yet. I’ve been calling them social machines. Whether that name sticks doesn’t matter much; the pattern will. What’s Next DiceBot was never meant to be a commercial product. It’s an exploration, a way to play with how physical objects and digital interfaces can intersect. It’s a small project, but it captures something about this particular moment: connecting things to the internet is getting easier, and people are starting to imagine what that could mean. --- ## Autonomous Vehicles Will Change Everything - URL: https://naffis.com/resources/2013/12/15/autonomous-vehicles-will-change-everything/ - Date: 2013-12-15 Google’s self-driving car project has been quietly accumulating miles since 2009. By now, they’ve logged over 500,000 miles on public roads across California and Nevada. The technology works, at least on the roads Google has chosen for it. The question isn’t whether autonomous vehicles are coming. It’s how quickly they’ll reshape everything we know about transportation. The End of Car Ownership Right now, services like Uber and Lyft are transforming how we think about car ownership. But imagine when those cars don’t need drivers. When you can summon a vehicle that arrives empty, takes you where you need to go, then drives off to pick up the next passenger. The economics completely change, and owning a car starts to look optional. Without a driver to pay, the cost per mile plummets. A ride that costs $15 today might cost $3. The convenience of on-demand transportation becomes accessible to everyone, not just those who can afford premium pricing. Think about what you pay to own a car: the purchase price, insurance, maintenance, parking, gas, registration, depreciation. The average American spends thousands of dollars annually just to keep a car that sits idle 95% of the time. Now imagine replacing all of that with a service where you tap your phone and a vehicle arrives in minutes, whether you’re going two blocks or two hundred miles. Once that service exists, the math for ownership stops working. Why pay $30,000 for a car that depreciates, requires insurance, needs maintenance, and takes up space when you can summon a ride for a few dollars? Why deal with parking tickets, oil changes, and breakdowns when autonomous vehicles handle all of that? Urban convenience is only part of it. Even long-distance travel changes. Need to go from San Francisco to Los Angeles? Summon a robo-taxi, work or sleep during the drive, arrive refreshed. No need to own a car capable of highway travel when the fleet handles everything from city streets to cross-country journeys. Car ownership becomes a choice for enthusiasts instead of a requirement for everyone else. My bet, and it is a bet: given a real alternative, most people stop owning. Reclaiming Space When car ownership disappears, we reclaim massive amounts of space. Think about all the land currently dedicated to parking: parking lots at shopping centers, office buildings, restaurants, stadiums. Think about the garages attached to every house, the street parking that dominates urban planning. In cities, parking can consume 30-40% of available land. That’s space that could be parks, housing, businesses, or public spaces. Downtown areas currently designed around parking become walkable, livable neighborhoods. Residential garages become usable space. That two-car garage becomes a home office, a workshop, a playroom, or additional living space. The driveway becomes a garden or patio. Suburban homes gain hundreds of square feet of functional space. Commercial parking lots become development opportunities. That massive parking lot at the mall? It could be housing, retail, or green space. The multi-story parking garage downtown? It could be converted to offices or apartments. Street parking disappears. Curbside space currently reserved for parked cars becomes bike lanes, wider sidewalks, outdoor dining, or green space. Cities become more pedestrian-friendly, more human-scale. The transformation of space might be the most visible change. We’ll look back at photos of parking lots and wonder why we dedicated so much land to storing idle vehicles. Long-Haul Trucking Transformed The trucking industry employs millions of drivers. It’s one of the largest job categories in America. But autonomous vehicles don’t get tired. They don’t need breaks. They can drive 24 hours a day, following optimized routes that minimize fuel consumption and maximize efficiency. Long-haul trucking is actually an easier problem than urban driving. Highways are more predictable. The routes are well-mapped. The technology that Google is perfecting for city streets will work even better on interstates. When autonomous trucks become reality, the economics of freight transportation shift dramatically. Shipping costs drop. Delivery times improve. But millions of truck drivers face an uncertain future. This isn’t a distant concern. It’s a transition that could happen within a decade. Last-Mile Delivery Reimagined Amazon is already experimenting with drone delivery, but autonomous vehicles could reshape last-mile delivery in ways drones can’t. Imagine small, efficient delivery vehicles that navigate neighborhoods autonomously, dropping packages at your door while you’re at work. They could operate around the clock, making deliveries at optimal times rather than when drivers are available. The vehicles themselves could be specialized: smaller, more efficient, designed specifically for package delivery rather than passenger transport. They wouldn’t need seats, climate control, or most of the features we expect in cars. They’d be mobile lockers on wheels. This changes the economics of e-commerce. Same-day delivery becomes standard. The cost of shipping becomes negligible. Physical retail faces even more pressure as the convenience gap closes. Infrastructure Transformed If autonomous vehicles become the norm, the infrastructure we’ve built around human drivers starts to look obsolete. Gas stations become charging stations, but even that might be temporary. Autonomous vehicles could drive themselves to charging facilities during off-peak hours, eliminating the need for convenient, accessible fueling locations. They might charge wirelessly while parked, or swap batteries at specialized facilities. Rest stops change character. They exist because tired drivers legally have to stop. Passengers still need food and bathrooms, but the whole highway economy built around mandatory driver rest shrinks. Auto repair shops face a different future. Autonomous vehicles will be maintained by fleets, not individuals. Repairs happen at centralized facilities during off-hours, and the corner mechanic loses most of his customers to them. Parking becomes obsolete. With autonomous vehicles that drop you off and drive away, parking lots and garages become unnecessary. The space reclamation I mentioned earlier transforms entire city layouts. Traffic infrastructure changes too. Traffic lights might become obsolete if vehicles communicate with each other and coordinate movement. Lane markings become less critical when vehicles navigate precisely using GPS and sensors. Road signs become redundant when vehicles have access to real-time mapping data. The Ripple Effects The changes extend far beyond transportation. Real estate values shift as proximity to transit becomes less important. Suburban sprawl might accelerate when commuting becomes productive time rather than wasted time. Or it might reverse if urban living becomes more attractive without the need for parking. Insurance companies face disruption. If accidents become rare, who needs collision insurance? The entire insurance model changes when human error is removed from the equation. Law enforcement adapts. Traffic stops become rare. DUI enforcement changes fundamentally. Police resources shift to other priorities. The energy sector transforms. Electric vehicles become more practical when they can charge autonomously. The grid adapts to handle vehicle-to-grid power flows. Oil demand potentially collapses. The Timeline Google’s project suggests this isn’t science fiction. The technology exists. The regulatory framework is being built. Nevada and California have already passed laws allowing autonomous vehicle testing. The question is adoption speed. I suspect we’ll see autonomous vehicles in controlled environments within five years. Widespread adoption might take a decade or two. But the transition will be faster than we expect. Once the economics make sense, once the technology proves itself, the shift will accelerate. The companies that recognize this early will have a massive advantage. The industries that don’t adapt will face disruption. And society will need to grapple with the displacement of millions of workers whose jobs depend on driving. We’re standing at the edge of a transformation as significant as the shift from horses to automobiles. Autonomous vehicles won’t just change how we get around. They’ll reshape cities, economies, and daily life in ways we’re only beginning to understand. The technology is here. The question is whether we’re ready for what comes next. --- ## Making the Inc. 500: Four Years of Building Intridea - URL: https://naffis.com/resources/2011/08/23/intridea-inc-500/ - Date: 2011-08-23 It started with three people and a conviction that web development could be done differently. Four years ago, we set out to build an agile, modern web development company focused on Ruby on Rails. Today, we’re nearly 50 developers, project managers, QA engineers, and innovators. And today, we found out we made the Inc. 500 list. Inc. lists us at #335 in the top 500 fastest-growing companies in America, and places us at #33 for our industry and location. That means we’re the 33rd fastest-growing privately-held software company in the United States. Four years ago it was three of us around a table. I’m still getting used to the rest of that sentence. The Rails Revolution When we started Intridea in 2007, Rails was still relatively new. The framework had been around for a few years, but it hadn’t reached the mainstream yet. Most companies were still building on PHP or Java, and the idea of convention over configuration was still controversial. But we saw something in Rails that felt different: it was elegant, it was fast to develop with, and it had a community that was passionate about building great software. We bet everything on Rails. We built our entire consultancy around it, we contributed to open source projects, we wrote blog posts and gave talks. We believed that Rails was the future of web development, and we wanted to be part of that future. The bet paid off. Despite the relative infancy of the language and framework, the demand for Rails development has been extraordinarily high. Even in a declining economy, companies were looking for ways to build better software faster, and Rails was the answer. We found ourselves in the right place at the right time, but more importantly, we had built the expertise and the team to deliver. Building the Team Going from three people to nearly 50 took more than hiring. It took finding people who share your vision, who care about writing good code, who want to solve interesting problems. We’ve been lucky to attract some of the best Rails developers in the world, people who are passionate about the framework and about building elegant solutions. And the team goes beyond developers. We’ve built out project managers who understand both the technical and business sides of software development. We’ve added QA engineers who ensure quality without slowing down delivery. We’ve brought in designers who think about user experience from day one. It’s a complete team, and that’s what allows us to take on complex projects and deliver them successfully. The Rails Community The framework is only half of what makes Rails special. The other half is the community. The Rails ecosystem is made up of hearty and enterprising engineers who are continually creating open source plugins and gems, documentation, and patches. They’re ensuring that we can all have a future working with a language that we love. If you look at the advancements that have been made in just a few short years, you’d think Rails developers don’t sleep. In fact, I’m not sure they do. The pace of innovation in the Rails community is incredible, and we’ve been proud to contribute to that. We’ve built open source tools like OmniAuth that thousands of developers use every day. We’ve written documentation, answered questions on Stack Overflow, given talks at conferences. The community has given us so much, and we’ve tried to give back. An Elite List The recognition matters to me for a specific reason: it suggests you can build a successful company by doing great work, treating clients well, and contributing to the community. We didn’t get here by cutting corners. We got here by writing the best code we could and learning everything we could in the process. The Inc. 500 list includes some of America’s most iconic companies: Microsoft, Oracle, Zappos, Patagonia, E*Trade, Intuit. Companies that went on to reshape their industries. It’s strange to see our name anywhere near theirs. But making the list doesn’t change anything about the day-to-day. Tomorrow we sit down and write code, same as today. Making the Inc. 500 during a recession says something about Rails itself. Companies needed to build software faster and more cheaply, and the framework’s emphasis on convention over configuration and rapid development gave them a way to do it. We happened to be standing where that demand landed, with the team to meet it. What’s Next The path here has not been easy. Four years of working day and night, of close calls and lessons learned the expensive way. So what is next? More satisfied clients. Well-implemented web solutions. Happy engineers. More open source contributions. The same work, done the same way. We’re grateful to our talented and fiercely dedicated team, to the hundreds of clients we’ve created lasting relationships with, and to the Ruby and Rails communities. Without them, none of this would have been possible. --- ## Interactive Games & Tools (links only) - [Milky Way Atlas](https://naffis.com/resources/2026/06/08/milky-way-atlas/): A structured Milky Way galaxy atlas — spiral arms, Local Group neighbors, and a Keplerian zoom into the Solar System. Three.js. - [Tower Stack](https://naffis.com/resources/2025/11/20/tower-stack/): Tap to drop blocks and build the tallest tower you can - [Super Plumber Jump](https://naffis.com/resources/2025/11/20/super-plumber-jump/): A Mario-style platformer with variable jump height, coyote time, and Koopa shells - [Slice Storm](https://naffis.com/resources/2025/11/20/slice-storm/): Swipe to slice shapes, build combos, and dodge bombs - [Milky Way Explorer](https://naffis.com/resources/2025/11/20/milky-way-explorer/): WebGPU Milky Way galaxy fly-through — 1.2M stars, HDR bloom, dust lanes, and the Local Group. - [Gravity Dash](https://naffis.com/resources/2025/11/20/gravity-dash/): Flip gravity to dodge spikes and collect coins in this neon endless runner - [FRC Fusion Simulator](https://naffis.com/resources/2025/11/20/frc-fusion-simulator/): Interactive FRC fusion reactor cycle visualizer: formation, merge, burn, energy extraction, and reset - [Centipede](https://naffis.com/resources/2025/11/20/centipede/): Retro Centipede with CRT scanlines, splitting centipedes, and spiders - [Block Drop](https://naffis.com/resources/2025/11/20/block-drop/): A Tetris-style puzzle game with ghost pieces, hold queue, and wall kicks - [Asteroids Web](https://naffis.com/resources/2025/11/20/asteroids-web/): Classic Asteroids with vector graphics, screen wrapping, and particle effects - [ASCII Bros](https://naffis.com/resources/2025/11/20/ascii-bros/): A platformer rendered entirely in ASCII characters