<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Matt Rickard]]></title><description><![CDATA[Thoughts on engineering, startups, and AI.]]></description><link>https://blog.matt-rickard.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png</url><title>Matt Rickard</title><link>https://blog.matt-rickard.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 17 Apr 2026 14:41:36 GMT</lastBuildDate><atom:link href="https://blog.matt-rickard.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Matt Rickard]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[matt@mattrickard.com]]></webMaster><itunes:owner><itunes:email><![CDATA[matt@mattrickard.com]]></itunes:email><itunes:name><![CDATA[Matt Rickard]]></itunes:name></itunes:owner><itunes:author><![CDATA[Matt Rickard]]></itunes:author><googleplay:owner><![CDATA[matt@mattrickard.com]]></googleplay:owner><googleplay:email><![CDATA[matt@mattrickard.com]]></googleplay:email><googleplay:author><![CDATA[Matt Rickard]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Spec Layer]]></title><description><![CDATA[Why Spec-Driven Development (SDD) Works]]></description><link>https://blog.matt-rickard.com/p/the-spec-layer</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/the-spec-layer</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Wed, 01 Apr 2026 13:30:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>An AI agent implements a feature. The code compiles. The tests pass. It still misses the point.</p><p>The wrong kind of correct.</p><p>Most of our software tooling is optimized for the failures humans used to make. Agents fail differently.</p><p>They usually don&#8217;t break the build. They disable the failing test. They reuse the nearest pattern. They preserve the old path and add a new one beside it. Everything looks reasonable until the codebase starts filling with locally valid mistakes.</p><p>The failure modes are familiar:</p><ul><li><p><em>I just disabled the failing tests.</em></p></li><li><p><em>I just reused the existing service.</em></p></li><li><p><em>I did not change the existing behavior.</em></p></li><li><p><em>You&#8217;re right. I assumed that...</em></p></li></ul><p>When a decision isn&#8217;t written down, the agent has to decide it again. Context windows are finite and even imperfect within. The deeper issue is too much freedom at execution time.</p><p>Compilers, linters, and tests help. They catch syntax errors, broken imports, and failing behavior. They are worse at telling you whether the agent made the right call. Even a large test catalog is weak against additive change.</p><p>Code generation improved faster than the systems that constrain it. The problem is underconstrained execution: too much freedom at the point where the agent has to act. Written intent is one way to constrain that freedom. Specs are one layer that can provide it. The historical case for that layer is clearest in protocols.</p><p><a href="https://mattrickard.substack.com/why-do-protocols-win/">Protocol engineering</a> is the cleanest historical evidence. Not because protocols capture every rejected alternative, but because they define interfaces that many implementations can target. <a href="https://www.rfc-editor.org/rfc/rfc791.html">RFC 791</a> standardized Internet Protocol in 1981. <a href="https://www.rfc-editor.org/rfc/rfc9110.html">HTTP semantics</a> live in RFC 9110. <a href="https://www.rfc-editor.org/rfc/rfc8446.html">TLS 1.3</a> lives in RFC 8446. <a href="https://html.spec.whatwg.org/">HTML</a> is maintained as a living standard by <a href="https://whatwg.org/">WHATWG</a>. In each case, the spec lets many implementations evolve over time.</p><p>But specs do not remove the hard part. <a href="https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html">Dijkstra&#8217;s narrow-interfaces critique</a> shows that precision work does not disappear when you move from code to prose. <a href="https://lamport.azurewebsites.net/tla/tla.html">Lamport</a> and <a href="https://lamport.azurewebsites.net/tla/high-level-view.html">TLA+</a> show why explicit invariants still matter before implementation. <a href="https://www.omg.org/mda/">Model-driven development</a> shows the risk of pushing the abstraction too far and turning the spec into the thing you have to edit.</p><p>So the goal is to reduce execution freedom.</p><blockquote><p><strong>Spec-driven development means writing durable intent down before implementation, then using it to plan, build, check, and revise the work.</strong></p></blockquote><p>The word spec is a bit overloaded. Separate what the system must do from how this codebase will do it, the task list, and the rules that should survive later changes.</p><p>Each one narrows a different choice. Specs constrain intent. Plans constrain approach. Tasks constrain sequencing. Tests, schemas, and lint constrain behavior. Harnesses constrain execution.</p><p>The real disagreement is where to put the constraint. <a href="https://github.com/github/spec-kit">GitHub Spec Kit</a> and <a href="https://kiro.dev/docs/specs/">Kiro</a> keep them near the change workflow: requirements, design, and tasks for one piece of work. <a href="https://github.com/Fission-AI/OpenSpec">OpenSpec</a> moves them into the repo as a decision record that survives the change.</p><p><a href="https://docs.tessl.io/use/make-your-agents-smarter-with-documentation">Tessl</a> pushes further and asks whether the spec itself should become the thing you edit, which is where the Dijkstra objection lands hardest: &#8220;a sufficiently detailed spec is code.&#8221; <a href="https://www.augmentcode.com/product/intent">Intent</a> treats the spec as shared state. <a href="https://github.com/openai/symphony/blob/main/SPEC.md">Symphony</a> treats it as an orchestration contract for autonomous runs.</p><p>Each one tries to pin the agent down at a different point.</p><p>Underneath the product differences, they keep rebuilding the same skeleton: durable context, feature intent, a technical plan, explicit tasks, and verification. The goal is to give the agent less room to improvise.</p><p>So what would the ideal model look like today? Smaller than most current tools imply, with a cleaner handoff between intent and execution.</p><p>The spec should be <a href="https://mattrickard.substack.com/declarative-vs-imperative/">declarative</a>, so the agent matches the code to the intent instead of replaying a brittle patch script. It should be layered, so product requirements do not quietly turn into architecture and technical plans do not quietly add product scope. And it has to be cheap to revise. If a spec is expensive to update, replace, or delete, the process hardens into ceremony and the ceremony becomes the work.</p><p>Where a rule can be enforced mechanically, move it out of the spec and into lint, schemas, tests, or the harness. Use less prose. Enforce more. Specs matter, but they are only one layer. Full SDD should stay optional for small bug fixes, fast prototypes, and exploratory UX.</p><p>The winning model puts a <a href="https://mattrickard.substack.com/programming-to-the-interface/">narrow interface</a> between human intent and machine execution: intent narrows the search space. Code, tests, and harnesses govern behavior. Smaller specs, harder checks, less guessing.</p>]]></content:encoded></item><item><title><![CDATA[Using Claude Code from Anywhere]]></title><description><![CDATA[I've been using multiple instances of Claude Code and Codex CLI almost every day.]]></description><link>https://blog.matt-rickard.com/p/using-claude-code-from-anywhere</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/using-claude-code-from-anywhere</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sat, 30 Aug 2025 18:36:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've been using multiple instances of Claude Code and Codex CLI almost every day. But I've gotten frustrated enough to build something that solidifies my workflow. Before, it looked something like this:</p><ul><li><p><code>git worktree</code> for parallel instances</p></li><li><p><code>docker</code> for sandboxing work and tooling</p></li><li><p><code>tmux</code> for automation and management of terminal emulator windows</p></li><li><p><code>ssh</code> to a cloud instance for managing work on-the-go.</p></li></ul><p>But I was frustrated by a few things:</p><ol><li><p><strong>Parallelism tax</strong>. Even with automation, the setup/clean-up grind is tedious. Worktrees share the same git object store, so you still need to be careful with operations and cleanup. Managing claude in docker means that I need to mount files, move around secrets, and manage environment. Remote instances need to be synced.</p></li><li><p><strong>Laptop-locked</strong>. SSH from mobile or an iPad will probably never be a good experience, especially with a long-running process like claude code. Laptops aren't made to be treated like servers.</p></li></ol><p>Current solutions are good, but have some shortcomings.</p><ol><li><p><strong>Unsupervised agents (Codex Web / Claude Code GitHub Actions).</strong> Short feedback loops make Claude Code great. If it makes a wrong turn, you can interrupt and get it back on the right path. Codex Web and Claude Code GitHub Actions are powerful, but often times spend 15 minutes working on a technically correct, but wrong implementation of a feature. Or they get blocked on something that you could have fixed easily.</p></li><li><p><strong>SSH into a VM</strong>. You become the platform team: images, secrets, logs, UI, lifecycle. Not a bad choice, but lots of work.</p></li><li><p><strong>Desktop UI</strong>: Solves some of the terminal-bound issues: window management, worktree automation, syntax highlighting, patch management. However, still laptop bound.</p></li></ol><p>So my new workflow:</p><p><strong>Web UI &#8594; ephemeral sandbox per chat &#8594; live, interactive session &#8594; patch/PR</strong></p><ol><li><p><strong>On-demand sandbox execution</strong>: Ephemeral, quick to boot, isolated jobs per task with code, tools, and AI agents.</p></li><li><p><strong>Live, steerable session</strong>. Stdout/stderr stream in real time; I can interrupt/approve and keep the loop tight&#8212;same Claude Code behavior, just remote.</p></li><li><p><strong>Chat Management</strong>. Automated branch-per-chat and pull-request creation. Persistence for chats and code changes that isn't in your $HOME folder.</p></li></ol><p>I put up an early version on <a href="https://standard-input.com/">standard-input.com</a>. Let me know what you think. I'll buy you a coffee if you break out of the sandbox. <code>dangerously-skip-permissions</code> has been renamed to <code>vibe</code>.</p>]]></content:encoded></item><item><title><![CDATA[Pseudonyms in American History]]></title><description><![CDATA[Debates around the ratification of the Constitution and the early formation of the United States happened through pseudonymous authors.]]></description><link>https://blog.matt-rickard.com/p/pseudonyms-in-american-history</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/pseudonyms-in-american-history</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Tue, 05 Dec 2023 14:30:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Debates around the ratification of the Constitution and the early formation of the United States happened through pseudonymous authors. They often used names borrowed from Greek or Roman History. </p><p>Why?</p><ul><li><p>Plausibly some protection against retaliation. However, most pseudonymous writing was quickly attributed to authors. </p></li><li><p>Power in names. The names weren&#8217;t chosen at random. Often, they called back to famous Romans who took part in the formation of the Roman Republic. Or others who were known for their virtue or principles.</p></li></ul><p>Alexander Hamilton might have written under the most pseudonyms (at least five). Benjamin Franklin used at least three. Here&#8217;s a list of some of the more popular ones around the time of the American Revolution.</p><p><strong>Phocion </strong>(Alexander Hamilton) &#8212; Essays defending the Jay Treaty with Great Britain. Phocion was an Athenian statesman known for his integrity and opposition to demagoguery.</p><p><strong>Columbus </strong>(Alexander Hamilton)  &#8212; Defending the Continental Congress and criticizing British policies.</p><p><strong>Publius </strong>(Alexander Hamilton, James Madison, John Jay) &#8212; The authors of the Federalist Papers, which were a series of essays advocating for the ratification of the Constitution. Individual authorship wasn&#8217;t released until Hamilton&#8217;s death, and even then historians are still trying to match authors to text. It&#8217;s hypothesized that Hamilton wrote 51 essays, Madison 29, and Jay 5. Publius Valerius Poplicola was a Roman consul known for his role in founding the Roman Republic.</p><p><strong>Historicus </strong>(Alexander Hamilton) &#8212; Essays on various topics related to the Constitution and federalism.</p><p><strong>Pacificus </strong>(Alexander Hamilton) &#8212; Used to defend President George Washington's Neutrality Proclamation of 1793 (declared the U.S. neutral in the conflict between France and Great Britain). &#8220;Making peace&#8221; in Latin.</p><p><strong>Helvidius</strong> (James Madison) &#8212; Written in response to Pacificus (Hamilton), these essays defended the constitutional authority of Congress in foreign affairs. Helvidius Priscus was a Roman senator known for his defense of republicanism and freedom of speech.</p><p><strong>Americanus </strong>(John Jay, John Stevens, Jr.)<strong> </strong>&#8212; Federalists essays.</p><p><strong>Candidus </strong>(Benjamin Franklin) &#8212; Writings advocating for various causes, including opposition to oppressive British policies. </p><p><strong><a href="https://matt-rickard.com/silence-dogood-and-the-ben-franklin-effect">Silence Dogood</a> </strong>(Benjamin Franklin) &#8212; A fictitious widow created by Franklin to offer social commentary.</p><p><strong>Richard Saunders &#8220;Poor Richard&#8221;</strong> (Benjamin Franklin) &#8212; Used to publish <em>Poor Richard&#8217;s Almanack</em>. The name comes from a popular London almanac, <em>Rider&#8217;s British Merlin</em>. </p><p><strong>&#8220;Common Sense&#8221; &#8212; </strong>Thomas Paine&#8217;s pamphlet advocating for American independence was initially published anonymously.</p><p><strong><a href="https://matt-rickard.com/cincinnatus">Cincinnatus</a> (Arthur Lee) &#8212; </strong>Anti-federalist papers. </p><p><strong>A Farmer</strong> <strong>(John Dickinson)</strong> &#8212;  Essays titled "Letters from a Farmer in Pennsylvania," which argued against the Townshend Acts imposed by the British.</p><p><strong>Cato</strong> (George Clinton) &#8212; Anti-federalist essays around the time of the ratification of the Constitution. Attributed to George Clinton, but not confirmed. Cato the Younger was a Roman statesman known for his staunch republicanism and opposition to Julius Caesar. </p><p><strong>Brutus </strong>(Robert Yates) &#8212; An ally of George Clinton&#8217;s who wrote more anti-federalist essays. Marcus Junius Brutus was a Roman senator famous for his role in the assassination of Julius Caesar, symbolizing resistance to tyranny.</p><p><strong>Centinel</strong> (Samuel Bryan) &#8212; A series of anti-federalist essays critical of the proposed U.S. Constitution's centralizing tendencies.</p><p><strong>Americanus</strong> (John Stevens, Jr.) &#8212; Essays written to support the Federalist cause and the ratification of the U.S. Constitution.</p><p><strong>Poplicola</strong> (John Adams) &#8212; Essays defending the British constitution and criticizing the Stamp Act. The same Publius Valerius Poplicola used by Hamilton. </p><p><strong>Novanglus</strong> (John Adams) &#8212; A series of essays written in response to Massachusettensis, defending colonial rights. Latinization of &#8220;New Englander&#8221;.</p><p><strong>A Citizen of New York</strong> (Martin Van Buren) &#8212; political essays.</p>]]></content:encoded></item><item><title><![CDATA[Fairchildren]]></title><description><![CDATA[In 1956, William Shockley, Stanford professor and winner of the Nobel Prize in Physics for his work on semiconductors, recruited a team of young Ph.D.]]></description><link>https://blog.matt-rickard.com/p/fairchildren</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/fairchildren</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Mon, 04 Dec 2023 14:30:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In 1956, William Shockley, Stanford professor and winner of the Nobel Prize in Physics for his work on semiconductors, recruited a team of young Ph.D. graduates to product a new company. The company would be called Shockley Semiconductor.</p><p>But Shockley was a terrible manager, and the students left to form their own company the next year, Fairchild Semiconductor. They would be later known as the &#8220;traitorous eight&#8221;.</p><p>The founders of Fairchild Semiconductor were: Gordon Moore, C. Sheldon Roberts, Eugene Kleiner, Robert Noyce, Victor Grinich, Julius Blank, Jean Hoerni, and Jay Last.</p><p>Fairchild Semiconductor became the proto-company of Silicon Valley. Many major technology companies can somehow trace their founding or story to Fairchild.</p><p><strong>Intel</strong> - Founded by Robert Noyce and Gordon Moore, both former employees of Fairchild Semiconductor.</p><p><strong>AMD (Advanced Micro Devices)</strong> - Founded by Jerry Sanders, another Fairchild alumnus.</p><p><strong>Kleiner Perkins</strong> - A venture capital firm co-founded by Eugene Kleiner, a former Fairchild employee.</p><p><strong>Sequoia Capital&#8212; </strong>Don Valentine worked at Fairchild Semiconductor for seven years before moving to National Semiconductor (another Fairchild). Then he started Sequoia Capital.</p><p>Other companies founded by Fairchild employees: SanDisk, National Semiconductor, Altera, LSI Logic, Amelco, Applied Materials, and more.</p>]]></content:encoded></item><item><title><![CDATA[ChatGPT After One Year]]></title><description><![CDATA[ChatGPT was released on November 30th 2022.]]></description><link>https://blog.matt-rickard.com/p/chatgpt-after-one-year</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/chatgpt-after-one-year</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sun, 03 Dec 2023 14:30:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>ChatGPT was released on November 30th 2022. What has changed since then?</p><ul><li><p><strong>Hundreds of open-source models. </strong>Varying sized models from small to very large. Many are chat-tuned similar to ChatGPT.</p></li><li><p><strong>Distilled models from ChatGPT. </strong>Academics and competitors both used data from ChatGPT conversations to train or fine-tune their own models.</p></li><li><p><strong>Competition. </strong>Microsoft launched Bing Chat. Google launched Bard. Poe, Pi, Perplexity. Claude by Anthropic. Not to mention self-hosted open-source chat UIs and other wrappers. There&#8217;s no shortage of competition (although ChatGPT still is the most popular).</p></li><li><p><strong>RAG is hard. </strong>&#8220;Browse with Bing&#8221; and Bing Chat launched but hallucinations are still an issue. Browsing the internet doesn&#8217;t seem like the catch-all</p></li><li><p><strong>Not every launch increased performance across the board. </strong>Every new iteration of ChatGPT launched changed the way the model behaved. Many queries got better. Some got worse. Google has always had this problem as well, but applications aren&#8217;t build on Google.</p></li><li><p><strong>A consumer subscription model. </strong>ChatGPT Plus was released in February 2023. The consumer model maybe competes with the developer and enterprise products (why not just use the API?).</p></li><li><p><strong>Multi-modal. </strong>ChatGPT started to accept images and files in the chat. DALL-E and the vision API became integrated into the chat window. There are open-source models that are multi-modal, but so far no experience is as sleek as OpenAI&#8217;s.</p></li><li><p><strong><a href="https://matt-rickard.com/chatgpt-plugins-dont-have-pmf">Plugins launched but never found product-market fit</a>. </strong>Plugins launched but didn&#8217;t become the <a href="https://matt-rickard.com/necessary-conditions-for-an-app-store-monopoly">App Store</a> that OpenAI hoped. Custom GPTs seem to be the next strategy for extensibility, although they won&#8217;t launch until next year.</p></li><li><p><strong>Code Interpreter is getting better. </strong>Agents and tool-use is still hard for LLMs. But it&#8217;s getting better and becoming more useful. Files can now be added directly to the UI to chat with.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[McNamara Fallacy]]></title><description><![CDATA[The McNamara Fallacy is named after Robert McNamara, the US Secretary of Defense during the Vietnam War.]]></description><link>https://blog.matt-rickard.com/p/mcnamara-fallacy</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/mcnamara-fallacy</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sat, 02 Dec 2023 14:30:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The McNamara Fallacy is named after Robert McNamara, the US Secretary of Defense during the Vietnam War. The fallacy describes making decisions using only quantitative metrics and ignoring anything else.</p><p>The fallacy usually follows the same four steps.</p><ol><li><p>Measure what can easily be measured.</p></li><li><p>Dismiss what can&#8217;t be measured easily.</p></li><li><p>Presume what can&#8217;t be measured easily isn&#8217;t important.</p></li><li><p>Extrapolate and conclude that what can&#8217;t be measured doesn&#8217;t exist.</p></li></ol><p>You can find the McNamara Fallacy in all types of disciplines. The emphasis on standardized tests in education (at the expense of less quantifiable qualities and learning). Or when the success of treatments in medicine is based only on easy to measure outcomes (not quality of life, mental health, or overall well-being). Or optimizing for short-term financial metrics at the expense of brand reputation, employee satisfaction, or other intangibles.</p>]]></content:encoded></item><item><title><![CDATA[Data Quality in LLMs]]></title><description><![CDATA[Good data is the difference between Mistral&#8217;s LLMs and Llama, which share similar architectures but different datasets.]]></description><link>https://blog.matt-rickard.com/p/data-quality-in-llms</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/data-quality-in-llms</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Fri, 01 Dec 2023 14:30:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good data is the difference between Mistral&#8217;s LLMs and Llama, which share similar architectures but different datasets.</p><p>To train LLMs, you need data that is:</p><ol><li><p><strong>Large</strong> &#8212; Sufficiently large LMs require trillions of tokens.</p></li><li><p><strong>Clean</strong> &#8212; Noisy data reduces performance.</p></li><li><p><strong>Diverse</strong> &#8212; Data should come from different sources and different knowledge bases.</p></li></ol><p><em>What does clean data look like?</em></p><p>You can de-duplicate data with simple heuristics. The most basic would be removing any exact duplicates at the document, paragraph, or line level. More advanced versions might look at the data semantically, figuring out what data should be omitted because it&#8217;s better represented with higher quality data.</p><p>The other dimension of clean data is converting various file types to <a href="https://matt-rickard.com/good-enough-abstractions">something easily consumed by the LLM, usually markdown</a>. That&#8217;s why we&#8217;ve seen projects like <a href="https://github.com/facebookresearch/nougat">nougat</a> and <a href="https://github.com/clovaai/donut">donut</a> convert PDFs, books, and LaTeX to better formats for LLMs. There&#8217;s a lot of training data that&#8217;s still stuck in PDFs and human-readable but not so easily machine-readable data.</p><p><em>Where does diverse data come from?</em></p><p>The surprising result of the success of the GPTs is that web text from the Internet is probably one of the most diverse datasets out there. It contains usage and data that aren&#8217;t found in many other data corpora. That&#8217;s why models tend to perform so much better when they&#8217;re given more data from the web.</p>]]></content:encoded></item><item><title><![CDATA[Discord and AI GTM]]></title><description><![CDATA[Midjourney is the largest discord server, with 16.5 million total users.]]></description><link>https://blog.matt-rickard.com/p/discord-and-ai-gtm</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/discord-and-ai-gtm</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Thu, 30 Nov 2023 14:30:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Midjourney is the largest discord server, with 16.5 million total users. It accounts for 13% of total Discord traffic. Midjourney launched in March 2022 and doesn&#8217;t have a web application. Many other AI apps (Leonardo, Pika, Suno, And AI Hub) are on Discord (or even Discord-only).</p><p>Why is Discord such a good GTM for AI applications?</p><ul><li><p><strong>Text interface. </strong>Most users are just generating images, videos, and audio in these Discord servers. Prompts are easily expressible in simple text commands. It&#8217;s why we&#8217;ve seen image generation strategies like Midjourney (all-in-one) flourish in Discord while more raw diffusion models haven&#8217;t grown as quickly (e.g., Stable Diffusion with many configurable parameters).</p></li><li><p><strong>Virality. </strong>Prompt engineering models is difficult and more art than science (today). Users can see generations by other users and collectively see what&#8217;s working and what isn&#8217;t. This means that these communities often have the most advanced prompts and best images.</p></li><li><p><strong>Low friction. </strong>Go to where your users already are. Most developers have Discord now. One fewer application to sign up for.</p></li><li><p><strong>Free hosting. </strong>Discord pays for the image hosting and bandwidth. At Midjourney scale, this is not negligible.</p></li></ul><p>But Discord has it&#8217;s risks as a platform to build on.</p><ul><li><p><strong>Platform risk. </strong>Discord could (easily?) build its own Midjourney-type application into the platform. Using all of the prompt-image pairs (along with reactions as a RLHF), it could probably distill a much better model from Midjourney (questionably legal but technically easy). This reminds me of the Zynga / Facebook relationship. <a href="https://matt-rickard.com/growth-hacking-platforms">Zynga accounted for 19% of Facebook&#8217;s revenue at one point.</a> Facebook reduced Zynga&#8217;s API access and launched its own gaming platform.</p></li><li><p><strong>Multi-modal. </strong>How does multi-modal fit into the Discord text-first interface? Sure there are images and audio that can be uploaded via the interface, <a href="https://matt-rickard.com/multi-modal-ai-is-a-ux-problem">but it&#8217;s hard to image the UI that a multi-modal AI will need in the future.</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Standard Causes of Human Misjudgment (Munger) ]]></title><description><![CDATA[In 1995, Charlie Munger gave a speech at Harvard on The Psychology of Human Misjudgment. It was filled with the research he had done later in life on human psychology, matched with real-life examples that he had observed in his work.]]></description><link>https://blog.matt-rickard.com/p/standard-causes-of-human-misjudgment</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/standard-causes-of-human-misjudgment</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Wed, 29 Nov 2023 14:45:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In 1995, Charlie Munger gave a speech at Harvard on <em><a href="https://www.youtube.com/watch?v=Jv7sLrON7QY">The Psychology of Human Misjudgment</a>. </em>It was filled with the research he had done later in life on human psychology, matched with real-life examples that he had observed in his work. The result was a succinct list of the top cognitive biases grounded in real-life experiences. I&#8217;ve summarized the biases here, but it&#8217;s worth giving the entire speech a listen to hear the stories behind each. I&#8217;ve tried to keep Charlie&#8217;s language and numbering when possible.</p><ol><li><p><strong>Underestimation of Incentives:</strong> Despite understanding the significant influence of incentives (reinforcement in psychology and incentives in economics), there's a tendency to consistently underestimate their power.</p></li><li><p><strong>Psychological Denial:</strong> This is the refusal to accept reality because it is too painful or difficult to bear.</p></li><li><p><strong>Incentive-Cause Bias:</strong> This occurs when personal incentives or those of a trusted advisor create a conflict of interest, leading to biased decisions.</p></li><li><p><strong>Bias from Consistency and Commitment:</strong> This involves a strong tendency to stick to pre-existing beliefs or commitments, even in the face of contradictory evidence.</p></li><li><p><strong>Bias from Pavlovian Association:</strong> This bias refers to the error of basing decisions on past associations or correlations without considering their current relevance or accuracy.</p></li><li><p><strong>Bias from Reciprocation Tendency:</strong> This bias involves a natural inclination to reciprocate actions and behaviors, including conforming to others' expectations, especially when one is experiencing success or is 'on a roll.'</p></li><li><p><strong>Bias from Over-Influence by Social Proof: </strong>This bias refers to the heavy reliance on the actions or decisions of others, especially in situations of uncertainty or stress.</p></li><li><p><strong>Bias from Favoring Elegance over Practicality in Theory:</strong> This bias involves a preference for theories or explanations that are mathematically elegant or intellectually satisfying, even if they are less accurate in practical terms. &#8220;Better to be roughly right than precisely wrong&#8221; &#8212; Keynes.</p></li><li><p><strong>Bias from Contrast-Induced Distortions:</strong> This bias refers to the way our perceptions, sensations, and cognition can be significantly altered by contrasts.</p></li><li><p><strong>Bias from Over-Influence by Authority:</strong> This bias involves the tendency to conform to instructions or opinions provided by an authority figure, even when these instructions conflict with one's own moral judgment or common sense.</p></li><li><p><strong>Bias from Deprival Super Reaction Syndrome:</strong> This bias is characterized by an intense reaction to losing or the threat of losing something, especially something that one perceives as almost possessed but never fully owned.</p></li><li><p><strong>Bias from Deprival Super Reaction Syndrome:</strong> This bias is characterized by an intense reaction to losing or the threat of losing something, especially something that one perceives as almost possessed but never fully owned.</p></li><li><p><strong>Bias from Envy/Jealousy:</strong> This bias stems from feelings of envy or jealousy towards others.</p></li><li><p><strong>Bias from Chemical Dependency:</strong> This bias relates to the cognitive and behavioral changes that result from chemical dependency, such as addiction to drugs or alcohol.</p></li><li><p><strong>Bias from Gambling Compulsion:</strong> This bias refers to the compulsive urge to gamble, driven by the psychological principle of variable reinforcement.</p></li><li><p><strong>Bias from Liking Distortion:</strong> This bias involves a preference for things that are familiar or similar to oneself, including one's own ideas, kind, and identity.</p></li><li><p><strong>Bias from Disliking Distortion:</strong> This is the opposite of liking distortion, where there's a tendency to reject or not learn from sources that are disliked.</p></li><li><p><strong>Bias from the Non-Mathematical Nature of the Human Brain in Probability Assessment:</strong> This bias refers to the human brain's tendency to rely on crude heuristics and be easily misled by contrasts when dealing with probabilities, rather than using precise mathematical approaches.</p></li><li><p><strong>Bias from Over-Influence by Extra Vivid Evidence:</strong> This bias describes the tendency to give disproportionate weight to particularly vivid or emotionally striking information when making decisions.</p></li><li><p><strong>Stress-induced mental changes, small and large, temporary and permanent.</strong></p></li><li><p><strong>Mental Confusion from Poorly Structured Information and Inadequate Explanations:</strong> This bias involves difficulties in understanding or decision-making due to information that is not well-organized or lacks a coherent theoretical framework.</p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Unreasonable Effectiveness of Monte Carlo ]]></title><description><![CDATA[Monte Carlo methods are used in almost every branch of science: to evaluate risk in finance, to generate realistic lighting and shadows in 3D graphics, to do reinforcement learning, to forecast weather, and to solve complex game theory games.]]></description><link>https://blog.matt-rickard.com/p/the-unreasonable-effectiveness-of</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/the-unreasonable-effectiveness-of</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Tue, 28 Nov 2023 14:45:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Monte Carlo methods are used in almost every branch of science: to evaluate risk in finance, to generate realistic lighting and shadows in 3D graphics, to do reinforcement learning, to forecast weather, and to solve complex game theory games.</p><p>There are many types of Monte Carlo Methods, but they all follow a general pattern &#8212; using random sampling to model complex systems.</p><p><strong>A simple example:</strong> Imagine a complex shape you want to know the area of.</p><ol><li><p>Place the shape on a dartboard.</p></li><li><p>Randomly throw darts at the dartboard.</p></li><li><p>Count the number of darts that are inside the shape and outside.</p></li><li><p>The estimated area of the shape is = (number of darts in shape / number of darts outside of shape) * the area of the dartboard.</p></li></ol><p>(This is computing a definite integral numerically with a method that doesn&#8217;t depend on the dimensions! You can even easily estimate the error given the number of samples).</p><p><strong>Monte Carlo Tree Search (MCTS). </strong>Or use it to play a game like Blackjack (Chess, Go, Scrabble, and many other turn-based games) with Monte Carlo Tree Search. AlphaGo and its predecessors (AlphaGo Zero and AlphaZero) used versions of Monte Carlo Tree Search with reinforcement learning and deep learning.</p><p>The idea is fairly simple &#8212; add a policy (i.e., a strategy to follow) to the random sampling process. You might start with a simple one (random or stay with a hand under 18). For every move in a game, add that to a tree that describes the game. For Blackjack, that might be a series of hits or stays. When a game is won or lost, go back and update all of the nodes in the tree for that game (the &#8220;back propagation&#8221;).</p><p>After many games, you have a tree of expected utility for each move &#8212; that means you can sample the next move much more effectively. The value says something like &#8212; &#8220;given this current hand and set of actions, I won X% of the time&#8221;. You can get more advanced with the reward and update function &#8212; for example, you might discount wins that take many turns and prioritize quicker wins.</p>]]></content:encoded></item><item><title><![CDATA[Razor and Blades Model]]></title><description><![CDATA[The profit margin on Keurig machines is very low and sometimes even negative.]]></description><link>https://blog.matt-rickard.com/p/razor-and-blades-model</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/razor-and-blades-model</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Mon, 27 Nov 2023 14:30:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The profit margin on Keurig machines is very low and sometimes even negative. On the other hand, the K-cup coffee pods have much higher profit margins.</p><p>The business model: sell one item at break-even or for free to increase the sales of the complementary good. This is the &#8220;razor and blades&#8221; model. (Despite being named after the safety razor industry, early companies like Gillette didn&#8217;t initially follow this model).</p><p>This model works especially well when there are <a href="https://matt-rickard.com/the-dynamics-of-switching-costs">switching costs or vendor-lock in</a>. If there are no switching costs, other providers can come in and compete margins away from the complementary good. When the K-cup patent expired in 2012, prices came down when competitors started producing compatible pods.</p><p>Or when a producer owns a monopoly on the complementary good. John D. Rockefeller and Standard Oil gave away eight million kerosene lamps. Demand for kerosene (conveniently sold by Standard Oil) skyrocketed.</p><p>Some other examples of the razor and blades model:</p><ul><li><p>Kindle e-reader / digital books.</p></li><li><p>Video game console / video games</p></li><li><p>Mobile phone / cellular data plan</p></li><li><p>Electric toothbrush / replacement brush heads</p></li><li><p>Printers / ink cartridges</p></li><li><p>E-cigarettes / e-cigarette pods</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Drawbacks of Moving to the Edge]]></title><description><![CDATA[Edge runtimes are often lauded as a fix to all latency concerns.]]></description><link>https://blog.matt-rickard.com/p/drawbacks-of-moving-to-the-edge</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/drawbacks-of-moving-to-the-edge</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sun, 26 Nov 2023 22:58:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Edge runtimes are often lauded as a fix to all latency concerns. But sometimes, moving to the edge can increase latency.</p><p>The problem: databases are still regional. If you move your application logic closer to the user via edge functions in multiple regions, this most likely increases the distance between your application and your database. Since the latter is often more chatty (more data sent back and forth between the application and database than the user and the application), this usually increases latency.</p><p><strong>Could you make data multi-regional?</strong> Sort of. There&#8217;s so work being done to bring the database to the edge (<a href="https://matt-rickard.com/sqlite-renaissance">see distributed SQLite</a>), but now with stateful data at the edge, you have a complicated distributed systems problem.</p><p><strong>Smarter caching?</strong> There&#8217;s also some work being done in application frameworks to do smarter caching (e.g., stale-while-revalidate) so that users get fast responses for most of the application while new data is rehydrated.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Are Things Getting Worse?]]></title><description><![CDATA[Cory Doctorow called it &#8220;enshittification&#8221;.]]></description><link>https://blog.matt-rickard.com/p/are-things-getting-worse</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/are-things-getting-worse</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sat, 25 Nov 2023 14:45:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cory Doctorow called it &#8220;enshittification&#8221;. Are things getting worse?</p><blockquote><p>Here is how platforms die: first, they are good to their users; then they abuse their users to make things better for their business customers; finally, they abuse those business customers to claw back all the value for themselves. Then, they die. I call this enshittification, and it is a seemingly inevitable consequence arising from the combination of the ease of changing how a platform allocates value, combined with the nature of a "two sided market," where a platform sits between buyers and sellers, hold each hostage to the other, raking off an ever-larger share of the value that passes between them.</p></blockquote><p>I tend to be an optimist. I think, generally, things are getting better. The Romans had a word for the idea that we judge the past much more positively than the future, &#8220;<em>memoria praeteritorum bonorum</em>&#8221;. On one hand, many platforms seem to no longer be in their golden age. On the other hand, they are used by more users than ever. Networks grow to a point where the initial magic no longer applies to early users. <a href="https://matt-rickard.com/web3-usenet-eternal-september">There was &#8220;Eternal September&#8221; for Usenet.</a> Early users love to glorify the &#8220;good old days&#8221;.&nbsp;</p><p>Companies go through natural cycles where they create and capture value. When incentives are aligned, things work extremely well (Google Search quality/page load speed, or Amazon and low prices). But, profit-maximizing companies sometimes overreach and try to capture too much value. This creates opportunities for competitors (if anything, the cycles are becoming faster).&nbsp;</p>]]></content:encoded></item><item><title><![CDATA[How AI Changes Workflows]]></title><description><![CDATA[GitHub recently said it was &#8220;re-founding&#8221; itself on Copilot instead of git.]]></description><link>https://blog.matt-rickard.com/p/how-ai-changes-workflows</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/how-ai-changes-workflows</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Fri, 24 Nov 2023 14:45:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>GitHub recently said it was &#8220;re-founding&#8221; itself on Copilot instead of git. GitHub has always been about the workflow &#8212; there are plenty of other hosted git providers, but GitHub was the first to put together pull requests, issues, and collaboration into a single workflow. Re-founding on Copilot is a way to acknowledge that AI will drastically change the developer workflow.</p><p>Some more general lessons on how AI changes workflows, using the developer workflow as an example</p><p><strong>The same but faster steps.</strong> <a href="https://matt-rickard.com/copilot-is-an-incumbent-business-model">Copilot is an incumbent business model</a> when used this way. Doing the same things that we&#8217;ve always done, but just faster with the help of AI. That means autocompleted code or AI-assisted code reviews. AI-generated commit messages.</p><p><strong>Compressing the workflow. </strong>AI might help us skip steps in the workflow. Developers have tried to make pre-commit workflows work for decades, but they&#8217;ve always failed because they can&#8217;t be centralized well (if you automatically change the code before it&#8217;s committed, there&#8217;s a chance that your automated changes end up with a broken main branch).</p><ul><li><p>What if AI could determine &#8220;low-risk&#8221; change sets that could be merged without a review?</p></li><li><p>Why have AI-generated commit messages if they <a href="https://matt-rickard.com/pull-requests-not-commits">don&#8217;t matter in the first place</a>? Commit messages could be generated on-demand (or post-commit)</p></li><li><p><a href="https://matt-rickard.com/llms-for-code">Automatic merge conflict resolution and automatic linting and style checking.</a></p></li></ul><p><strong>A new workflow. </strong>If so many of the steps don&#8217;t make sense anymore, the whole workflow might come into question.</p><ul><li><p>Maybe<a href="https://matt-rickard.com/devops-wedge-code-or-issues"> issue tracking comes before code</a> in future DevOps platforms.</p></li><li><p>AI will write most code in the future. What&#8217;s the implication? Does all the code need to be checked in?</p></li></ul><p><strong>Extends the platform to support more workflows. </strong>Especially in enterprise software, almost every company&#8217;s workflow is different in a certain way. SaaS products extend themselves into platforms in a variety of ways &#8212; letting users customize via a WYSIWYG interface, configuration, or even code. But platform extension comes with its own problems &#8212; open up too much and you can&#8217;t support your customers on a large scale. Open up too little, and niche platforms chip away at your customer base.</p><p><a href="https://matt-rickard.com/why-dsls-fail">DSLs often fail.</a> But products might find it easier to become platforms in the age of AI. Giving the users the ability to autogenerate DSLs or generic code to extend their platform (even if they are semi-technical, or not technical at all). Imagine every platform could be as extensible as Salesforce &#8212; its own programming language and toolchain.</p>]]></content:encoded></item><item><title><![CDATA[Duties of the Board of Directors]]></title><description><![CDATA[There are three primary duties for a board of directors.]]></description><link>https://blog.matt-rickard.com/p/duties-of-the-board-of-directors</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/duties-of-the-board-of-directors</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Thu, 23 Nov 2023 14:45:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There are three primary duties for a board of directors. IANAL (&#8220;I&#8217;m Not A Lawyer&#8221;), but a reasonable summary for entrepreneurs.</p><ol><li><p><strong>Duty of Care. </strong>Board members are required to act with a level of care that a reasonable, prudent person would exercise in similar circumstances. Practically, this means regularly attending meetings and being informed enough to make decisions.</p></li><li><p><strong>Duty of Loyalty. </strong>Board members must put the interests of the corporation above their own personal or professional interests. They have to avoid conflicts of interest.</p></li><li><p><strong>Duty of Obedience. </strong>Board members must ensure that the corporation adheres to laws and regulations. Practically, this is regulatory compliance with things like GDPR or security practices.</p></li></ol><p>Board members should (but are not required to) have directors&#8217; and officers&#8217; insurance (&#8220;D&amp;O&#8221;), which protects them from shareholder lawsuits. In some cases, the company&#8217;s liability can be passed on to the board. Most companies have this. Tesla is an interesting exception. Instead of traditional D&amp;O insurance, it pays Elon Musk $3 million a year to indemnify the board for up to $100 million in insurance. Is this a conflict of interest? Don&#8217;t know.</p>]]></content:encoded></item><item><title><![CDATA[Strategies for the GPU-Poor]]></title><description><![CDATA[GPUs are hard to come by, often fetching significant premiums in their aftermarket prices (if you can find them).]]></description><link>https://blog.matt-rickard.com/p/strategies-for-the-gpu-poor</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/strategies-for-the-gpu-poor</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Wed, 22 Nov 2023 14:45:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>GPUs are hard to come by, often fetching significant premiums in their aftermarket prices (if you can find them). Cloud regions see frequent shortages. On-demand prices aren&#8217;t that much cheaper.</p><p>But there&#8217;s a different type of strategy in AI for the GPU-poor startups that don&#8217;t have access to large clusters of machines. Many will hypothesize that GPU-poor startups have no moat &#8212; that&#8217;s only part of the story. There are <a href="https://matt-rickard.com/the-hardware-software-cycle">hardware/software cycles</a> and distribution moats, often the best hardware moats. In fact, I believe that GPU-poor startups might be in better positions than their GPU-rich counterparts as soon as the next few quarters.</p><p>But how do you operate as a GPU-Poor startup?</p><p>A few ideas:</p><ul><li><p><strong><a href="https://matt-rickard.com/local-ai-part-1">On-device inference</a>. </strong>Running small models on end-user machines. That might mean running in the browser or on a mobile phone. There is no network latency and better data privacy controls, but you&#8217;re capped at the device power (so, only smaller models).</p></li><li><p><strong>Commoditize your complement. </strong>HuggingFace is a one-stop shop for uploading, downloading, and discovering models. It&#8217;s not the best place to run them, but they benefit from growing traffic from some of the best machine learning researchers and hackers.</p></li><li><p><strong>Thin wrappers. </strong>Benefit from the growing competition at the inference layer to switch behind the lowest cost providers without wasting cycles on optimization for specific models. Large language models are interchangeable (in theory).</p></li><li><p><strong>Vertical markets. </strong>While other companies are stuck trying to train large models over months, GPU-Poor startups can focus on solving real customer issues. <a href="https://matt-rickard.com/no-gpus-before-product-market-fit">No GPUs before Product-Market Fit.</a></p></li><li><p><strong>Efficient inference. </strong>You might not have access to large training clusters, but you do have access to the latest open-source optimizations for inference. Plenty of <a href="https://matt-rickard.com/a-hackers-guide-to-llm-optimization">ways to speed up inference and do more with less.</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Take Your Time Making Decisions ]]></title><description><![CDATA[I [taught] myself how to breathe slower.]]></description><link>https://blog.matt-rickard.com/p/take-your-time-making-decisions</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/take-your-time-making-decisions</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Tue, 21 Nov 2023 14:45:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>I [taught] myself how to breathe slower. How to slow things down. How to not answer somebody instantaneously&#8230; You can always move slower. The world will basically wait for you if you&#8217;re deciding something consequential. And you can always say, &#8216;I&#8217;d like to think about that a little bit.&#8217; So the only reason to feel panicked is if you&#8217;re panicking yourself, and that&#8217;s your fault. You don&#8217;t have to do that. You can take your time, you can weigh things. It&#8217;s very infrequently that the timing has to be instantaneous.</p><p>&#8212; Steve Schwarzman, Co-founder and CEO of Blackstone</p></blockquote><p>At one point or another, we&#8217;re all faced with exploding offers or other time pressure to close a deal. Maybe the car dealer says they&#8217;ll sell the car for a low price if you agree to buy it on the spot. Or a classic Mark Cuban tactic on Shark Tank to give entrepreneurs 30 seconds to accept his offer, or he&#8217;s out.</p><p>There isn&#8217;t unlimited time, and acting quickly has its merits, but there&#8217;s often much more time than we believe to decide. Obviously, Schwarzman's advice in decision-making in private equity is more nuanced when it&#8217;s generalized. Still, the idea is the same: rarely do we need instantaneous timing when it comes to consequential decisions.</p><p>Being prepared and taking your time doesn&#8217;t mean waiting for perfect information. You can&#8217;t analyze all possible outcomes. But slow down. Take your time. Find the best alternative to the negotiated offer (BATNA). Sleep on it. Make a decision when you have 70% of the information you need to make that decision.</p>]]></content:encoded></item><item><title><![CDATA[The Encyclopedia of Integer Sequences]]></title><description><![CDATA[Humans are pattern-seeking story-telling animals, and we are quite adept at telling stories about patterns, whether they exist or not.]]></description><link>https://blog.matt-rickard.com/p/the-encyclopedia-of-integer-sequences</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/the-encyclopedia-of-integer-sequences</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Mon, 20 Nov 2023 14:45:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em>Humans are pattern-seeking story-telling animals, and we are quite adept at telling stories about patterns, whether they exist or not. &#8212; Michael Shermer</em></p></blockquote><p>The Online Encyclopedia of Integer Sequences (OEIS) is exactly what it sounds like. A database of different sequences of integers is useful for researchers to identify known integer sequences, find formulas, and discover connections between different areas of mathematics.</p><p>There&#8217;s 2, 3, 5, 7, 11, 13, 17, &#8230; or <a href="https://oeis.org/A000040">A000040</a>, the sequence of prime numbers. 0, 1, 1, 2, 3, 5, 8, 13, 21, &#8230; or <a href="https://oeis.org/A000045">A000045</a> the Fibonacci numbers (F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1).</p><p>There are sequences that surprisingly transcend different areas of mathematics and other disciplines. The Catalan numbers (<a href="https://oeis.org/A000108">A000108</a>) 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862. The Catalan numbers solve the following problems:</p><ul><li><p>The number of valid combinations of <em>n </em>pairs of parentheses.</p></li><li><p>The number of distinct binary trees that can be formed with <em>n </em>nodes.</p></li><li><p>The number of ways to divide a convex polygon with <em>n + 2</em> sides into triangles by drawing non-intersecting diagonals.</p></li><li><p>The number of monotonic paths along the edges of a grid that do not cross above the diagonal.</p></li><li><p>The number of ways that <em>2n</em> people sitting around a table can pair up for handshakes without any arms crossing.</p></li><li><p>The number of ways a stack can be sorted by a series of push and pop operations.</p></li><li><p>The number of ways to fully parenthesize a product of <em>n </em>matrices.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Catilinarian Conspiracy]]></title><description><![CDATA[Quo usque tandem abutere, Catilina, patientia nostra?]]></description><link>https://blog.matt-rickard.com/p/the-catilinarian-conspiracy</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/the-catilinarian-conspiracy</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sun, 19 Nov 2023 14:45:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em>Quo usque tandem abutere, Catilina, patientia nostra?</em></p><p><em>How long, Catiline, will you abuse our patience?</em></p></blockquote><p>Lucius Sergius Catilina, or Cataline, was a Roman senator who came from one of the oldest families in Rome. But he had just lost the consular election of 62 BC to Marcus Tullius Cicero and Gaius Antonius Hybrida. This was the third time that he had lost the election for Rome&#8217;s most coveted office.</p><p>So Cataline gathered the discontented aristocrats and conspired to overthrow the Republic to establish himself as the sole ruler of Rome and to carry out drastic socioeconomic reforms. He bribed them. He promised to forgive their large debts. He promised to give them land.</p><p>Cicero discovered the conspiracy. He then exposed it via a public speech to the senate, <em>&#8220;The First Oration,&#8221; </em>on November 7th, 63 BC. Cataline was present and asked the people to not trust Cicero because was a self-made man without a family heritage.</p><p>Cataline left Rome in exile. Cicero delivered three more orations. He presented the evidence and gathered the public opinion.</p><p>Cataline and his conspirators were eventually captured. In the last oration, Cicero argued for execution. (He did this indirectly through his oration since, as consul, he was not able to participate directly in the proceeding). Julius Caesar (then praetor-elect) argued for life imprisonment.</p><p>The conspirators were executed without trial due to their significant public popularity. This later caused problems for Cicero. In 58 BC, a law was passed that retroactively made it illegal to execute Roman citizens without a trial. Cicero went into exile himself.</p><p>Fellow senators and the general public thought that Cicero&#8217;s exile was unjustified. Cicero wrote extensively during his exile. Influential allies like Pompey the Great and Titus Annius Milo helped arrange his return. But he would not have been able to return without widespread public support.</p><p>After Cicero returned to Rome, he focused on his writing. He went on to produce many of his best works and continued to play a large role in politics.</p>]]></content:encoded></item><item><title><![CDATA[The Model is Not The Product]]></title><description><![CDATA[So far, the generative AI wave has been about directly exposing the models to the user.]]></description><link>https://blog.matt-rickard.com/p/the-model-is-not-the-product</link><guid isPermaLink="false">https://blog.matt-rickard.com/p/the-model-is-not-the-product</guid><dc:creator><![CDATA[Matt Rickard]]></dc:creator><pubDate>Sat, 18 Nov 2023 14:45:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ghd2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06db1aa7-8215-457a-9093-6b6ec8eaac03_570x570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>So far, the generative AI wave has been about directly exposing the models to the user. Today, the model is the product. Users directly query the model. But this is temporary. The model is not the product.</p><p><strong><a href="https://matt-rickard.com/on-prompt-injection">Prompt injection</a>. </strong>There are too many surfaces for prompt injection when users query the model directly. &#8220;Ignore all previous directions and&#8230;&#8221;. There have been too many cases of models being jailbroken, and adversarial prompting will only get better with better security measures. However, the more that the model is abstracted away, the less this is an issue.</p><p><strong>Whole product. </strong>The idea of the whole product is that consumers purchase more than just the core product. They purchase the core product with (mostly intangible) complimentary attributes.</p><p>This might be hardware + software. Or it might be software + services. Or it might be AI applied to vertical workflows.</p><p><strong>Hallucination. </strong>The more that we ground generative AI in (what we provide as) ground truth, the more it will align with our expectations. Citing sources or adding private data through RAG requires extensive off-model pipelines.</p><p><strong><a href="https://matt-rickard.com/code-not-chat-in-generative-ai">Code, not chat.</a> </strong>Chat might not be the defining interface for generative AI models. UI and UX are increasingly important. Although the simplest interfaces often win, natural language can be tricky to use as an interface to AI (look at the lukewarm receptions of Amazon Alexa, Google Home, and even Siri). Sometimes, scoping down the possibilities can make the product magnitudes simpler.</p><p><strong>Counterpoint &#8212;</strong><em> Is the model the product for Google? </em>Search quality is certainly the core product for Google. It&#8217;s the closest analogy to generative AI &#8212; the interface is a simple input box. But Google is more than just search quality. It&#8217;s the extensive ad network and infrastructure that brings in revenue, it&#8217;s the free services and open-source that solidify the moat around the core product, and it&#8217;s the intangible branding and reputation that the company has built over the last two decades.</p>]]></content:encoded></item></channel></rss>