<?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="/rss.xsl"?>
    <rss version="2.0"
         xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
         xmlns:podcast="https://podcastindex.org/namespace/1.0"
         xmlns:atom="http://www.w3.org/2005/Atom"
         xmlns:content="http://purl.org/rss/1.0/modules/content/">
      <channel>
        <title>The Bikeshed Pod</title>
        <description>The Bikeshed Pod is a weekly show where developers dive deep into the small but important details of software development that we all love to debate.</description>
        <link>https://bikeshedpod.com</link>
        <language>en</language>
        <atom:link href="https://bikeshedpod.com/rss.xml" rel="self" type="application/rss+xml"/>
        <itunes:category text="Technology"/>
        <itunes:explicit>true</itunes:explicit>
        <itunes:image href="https://bikeshedpod.com/bikeshed-episode-dm.png"/>

        <!-- Recommended Channel Elements -->
        <podcast:locked>no</podcast:locked>
        <podcast:guid>bikeshed-podcast</podcast:guid>
        <itunes:author>Matt Hamlin, Dillon Curry &amp; Scott Kaye</itunes:author>
        <itunes:owner>
          <itunes:name><![CDATA[Matt Hamlin]]></itunes:name>
          <itunes:email>hi@bikeshedpod.com</itunes:email>
        </itunes:owner>

        <!-- Optional Channel Elements -->
        <copyright>© 2026 The Bikeshed Pod</copyright>
        <itunes:type>episodic</itunes:type>

        
          <item>
            <!-- Required Item Elements -->
            <title>Plan Mode Sucks</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/27/audio.mp3"
                      type="audio/mpeg"
                      length="49438219"/>
            <guid isPermaLink="false">27</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/27/plan-mode-sucks</link>
            <pubDate>Sat, 09 May 2026 22:01:41 GMT</pubDate>
            <description><![CDATA[Dillon, Scott, and Matt dig into Matt's hot take that you shouldn't be using plan mode in your AI coding agents anymore. They land on a nuanced agreement — planning still matters, but plan mode in Claude Code and Codex has stopped pulling its weight, spinning for 30 minutes and dumping a markdown doc instead of asking the clarifying questions it used to. Plus grill-me skills, POC-first workflows, Scott's eighth powerlifting meet, and Matt accidentally reinventing Tanstack Query.]]></description>
            <content:encoded><![CDATA[<h2>Episode Summary:</h2>
<p>Matt revisits a hot take from a year ago that he believes more strongly now: you shouldn&#x27;t be using <strong>plan mode</strong> in your AI coding agents. The conversation lands on a more nuanced position — planning still matters, plan mode just isn&#x27;t the right tool for it anymore.</p>
<h3>The Case Against Plan Mode</h3>
<p>Matt argues that plan mode in <strong>Claude Code</strong> and <strong>Codex</strong> has degraded over the past month or so. Where it used to ask a ton of clarifying questions, it now spins for 30 minutes and hands back a full markdown plan without ever pinging you for context. The on-rails experience has stopped doing the part that made it valuable.</p>
<p>Scott pushes back gently: plan mode still has a place, especially for big architectural changes where one-shotting will leave you with a context provider sprinkled across multiple files (his real example from the previous Friday). But he agrees the out-of-the-box version isn&#x27;t the only way to plan, and often isn&#x27;t the best one.</p>
<h3>Planning ≠ Plan Mode</h3>
<p>The real takeaway: planning the <em>activity</em> is still incredibly valuable. Plan mode the <em>feature</em> is just one — increasingly mediocre — implementation of it. The crew walks through the alternatives they&#x27;re actually reaching for:</p>
<h4>The Grill Me Skill</h4>
<p>Matt surfaces the <strong>grill-me skill</strong> Matt Pocock shared (and Dillon dropped in the Discord): a one-line skill that tells the agent to keep asking questions until it actually understands what you&#x27;re trying to build. Strong fit for feature work where you don&#x27;t yet know the shape of the problem space.</p>
<h4>POC-First Development</h4>
<p>Dillon describes his current workflow on a big work project: POC the entire user flow first, then POC each piece of the flow before building anything for real. He&#x27;s been using <strong>Superpowers</strong> (the most popular Claude Code skill) and its <strong>brainstorming</strong> sub-skill, which builds mock interfaces so you can compare options. He&#x27;d rather over-plan than have to tell a coworker <em>&quot;Claude thought it was a good idea&quot;</em> when they ask why something works the way it does.</p>
<h4>The Plan / Build Spectrum</h4>
<p>Matt frames plan mode and build mode as two ends of a spectrum where you actually want to land somewhere in the middle — exploring three or four ideas, spinning off agents to POC each, bringing findings back, iterating. He hasn&#x27;t found a skill that nails this loop yet, and invites listeners with a working setup to share it in the Discord.</p>
<h4>Plan Mode Is Still Great for Newcomers</h4>
<p>Dillon&#x27;s softer take: plan mode is genuinely useful when you&#x27;re new to agentic tooling. It gives you a clear default workflow before you know what you actually need. You grow out of it as you discover the specific checks — codebase exploration, TDD, edge-case enumeration — you want before any code gets written.</p>
<h4>Ask for Sources</h4>
<p>Dillon&#x27;s quick aside: when you&#x27;re using the agent to <em>learn</em> something, ask it for sources. It&#x27;ll mash concepts together, and being able to cross-check against the actual docs catches the seams.</p>
<h2>Standup / Life Updates</h2>
<ul>
<li><strong>Dillon</strong> spent the week in northwest Arkansas (Fayetteville and Bentonville) for his brother&#x27;s birthday and a baby shower for his niece, due in June. Bentonville was a surprise — Walmart HQ has turned the area into a brand-new, Apple-campus-tier hub since the company required vendors to relocate post-COVID. Cost of living roughly half of Boston, Onyx Coffee on the ground. He looked at the Walmart careers page.</li>
<li><strong>Scott</strong> completed his eighth powerlifting meet in eight years (with a two-year, two-month injury gap): <strong>597.5 kg total</strong> at 82.5 kg bodyweight — 200 squat, 140 bench, 257.5 deadlift. That&#x27;s a 1,317 lb total. He&#x27;s 85 kg from the national qualifying total, or he turns 40 first and qualifies on the masters total he&#x27;s already cleared. Also teasing some open source work he&#x27;s &quot;boiling down to a usable small chunk&quot; — ETA four or five years per Scott; <em>&quot;what model are you using?&quot;</em> per Dillon.</li>
<li><strong>Matt</strong> has been ping-ponging across his personal tooling: gave up vibe-coding his own note-taking app, gave Notion another try, set up scheduled Claude Code tasks to summarize recent notes, and switched from Arc to Chrome specifically for the Claude Chrome extension and Cowork. Recording from a HubSpot meeting room during an onsite, with bachelor party planning in May wrapping up. And in the loudest beat of the segment: he had the agent build a library blending <strong>CRDTs</strong>, offline-first, RSC, and server actions — pulling from auto-merge, YJS, and Tanstack Query — and it dutifully <strong>reinvented Tanstack Query</strong>.</li>
</ul>]]></content:encoded>
            <itunes:duration>2060</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/27/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Vibe-Coding Your Own Productivity Stack</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/26/audio.mp3"
                      type="audio/mpeg"
                      length="49438219"/>
            <guid isPermaLink="false">26</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/26/vibe-coding-your-own-productivity-stack</link>
            <pubDate>Sat, 09 May 2026 19:23:15 GMT</pubDate>
            <description><![CDATA[Dillon walks Scott and Matt through the daily briefing dashboard he's been vibe-coding at work — a single page that aggregates his to-dos, PRs, JIRA tickets, Datadog alerts, and recent notes — and shares the custom Claude skills he's built around it. The conversation explores AI as a fast track to personal software, where AI agents struggle (keeping consistent UI), where they shine (generating visual diagrams to understand problems), and the trap of suddenly having 20 open PRs because you can ship faster than you can review.]]></description>
            <content:encoded><![CDATA[<h2>Episode Summary</h2>
<p>In this episode, Dillon walks Scott and Matt through a personal productivity dashboard he&#x27;s been building with Claude — and uses it as a jumping-off point for a wider conversation about what AI unlocks for &quot;personal software.&quot;</p>
<h3>The Daily Briefing Dashboard</h3>
<p>Dillon&#x27;s dashboard started as a joke: use Claude&#x27;s new cron feature to post a daily inspirational quote at 9 a.m. He quickly realized he could put something genuinely useful there instead. The result is a single page he opens every morning that surfaces:</p>
<ul>
<li>To-dos</li>
<li>Open PRs</li>
<li>JIRA tickets</li>
<li>Datadog alerts</li>
<li>Summaries of recent notes</li>
<li>A custom Kanban board for tracking dev &quot;harnesses&quot; (scoping → planning →
execution → review)</li>
</ul>
<p>It&#x27;s intentionally simple under the hood: zero dependencies, a Python server, HTML, and CSS. <code>make start</code> and you&#x27;re running. He&#x27;s burning roughly $2,500/mo in Claude tokens building it, has shared it openly with leadership and the broader company, and treats it as a sandbox for trying anything new in AI.</p>
<h3>Why Build It Yourself?</h3>
<p>Matt frames the bigger thesis: AI is a fast track to <em>personal software</em> — the small niche of building a tool tuned exactly to your own workflow rather than adopting something off the shelf or solving for millions of users. The closest off-the-shelf comparison would be something like Notion or Dream.ai, but neither would match Dillon&#x27;s specific data sources or the way he wants to see them.</p>
<h3>Where AI Surprised Him (Good and Bad)</h3>
<ul>
<li><strong>Struggles with UI consistency.</strong> AI gets the functionality right, but drifts from the design system, makes spacing and layout mistakes, and occasionally tries to &quot;helpfully&quot; refactor onto a totally different stack (e.g. &quot;let&#x27;s add SQLite&quot;) mid-project. Dillon&#x27;s mitigation: keep it simple, have Claude audit the UI and write its own lightweight design system, and push reminders into CLAUDE.md.</li>
<li><strong>Matt&#x27;s tip:</strong> expose a route on your app that renders all components on one page (poor man&#x27;s Storybook) so the agent can discover existing patterns.</li>
<li><strong>Unexpected win: visual thinking.</strong> Dillon&#x27;s been asking Claude to generate HTML pages with architecture diagrams, user flows, and dependency maps to build a mental model of unfamiliar projects before diving in. Matt does the same to navigate his monorepo&#x27;s package dependency graph.</li>
</ul>
<h3>Skills Dillon Has Built</h3>
<ul>
<li><strong>Start of Day / End of Day</strong> — a paired skill that asks reflection questions in the evening and gives him a standup-style recap in the morning, including &quot;what&#x27;s on my radar that I&#x27;m not thinking about.&quot;</li>
<li><strong>PR Status / PR Watch</strong> — pulls GitHub check status, surfaces comments, and runs every five minutes to send a Mac notification when a PR is ready to merge.</li>
<li><strong>Mind Dump</strong> — partner skill to End of Day that takes a stream of consciousness and organizes it into a structured markdown doc.</li>
<li><strong>Contentful skills</strong> — connect to the CMS API to pull content types, explain how they work, and (experimentally) architect new ones.</li>
<li><strong>The &quot;Grill Me&quot; skill</strong> (borrowed from Matt Pocock) — has Claude slowly ask questions about a plan to surface edge cases and force thinking through the problem.</li>
</ul>
<p>His meta-tip: every time you use a skill, reflect on how it did and ask
Claude to improve it.</p>
<h3>The Productivity Paradox</h3>
<p>Has it actually made him more productive? Yes — but the new problem is spreading too thin. Dillon shipped 14 PRs in a week and now has 20 open ones he can&#x27;t get back to. As Matt jokes: &quot;the trick is to go faster.&quot; The real discipline is cleaning up after yourself, slowing down, and focusing on one thing at a time, even when you have 12 work trees open.</p>
<h3>Caveats and Takeaways</h3>
<ul>
<li>This is <em>personal software</em> — running locally, no deploy target, code quality is intentionally rough. Not how Dillon does actual work.</li>
<li>A lot of devs at his company are afraid to build things outside their tickets. Dillon&#x27;s been transparent with leadership and turned it into a shared resource instead.</li>
<li>If you want to start: literally talk to Claude (or sketch a screenshot) about what you&#x27;d want to see every morning, and go from there.</li>
</ul>
<h3>Teasers</h3>
<p>Future episode ideas raised: how to get good UI out of agents, and using AI to onboard yourself onto an unfamiliar codebase. Scott also hints he has a &quot;pretty good solution&quot; for the UI consistency problem — saving that for another episode.</p>]]></content:encoded>
            <itunes:duration>2060</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/26/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>No(de.js) AI</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/25/audio.mp3"
                      type="audio/mpeg"
                      length="44694801"/>
            <guid isPermaLink="false">25</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/25/node-ai</link>
            <pubDate>Tue, 14 Apr 2026 00:15:35 GMT</pubDate>
            <description><![CDATA[Dillon, Scott, and Matt dig into the drama around Matteo Collina's 19,000-line Node.js PR — written largely with Claude Code over Christmas break — that's forced the Node.js community to confront how AI-assisted contributions fit into open source governance, the DCO, and the future of runtimes like Bun and Deno.]]></description>
            <content:encoded><![CDATA[<h2>The 19,000-Line Slopfork: Node.js, Claude Code, and the AI Contribution Crisis</h2>
<p>Matt, Scott, and Dillon unpack one of the messiest open source dramas of the moment: Matteo Collina — Node TSC member and Fastify creator — dropped a ~19,000-line PR on Node.js core over Christmas break, openly built with the help of Claude Code. The PR adds long-requested <strong>virtual file system</strong> support, intercepting 164+ points across <code>fs</code>, <code>fs/promises</code>, and the module loading system. Over half the diff is tests, which is part of why it raised eyebrows in the first place — that volume of integration tests is something a human contributor likely wouldn&#x27;t have written by hand.</p>
<h3>The DCO question</h3>
<p>The crew dig into the <strong>Developer&#x27;s Certificate of Origin (DCO)</strong> and whether agent-generated code cleanly satisfies it. Does Claude-written code count as &quot;authored by you&quot;? It&#x27;s still a foggy question, and one contributor was rattled enough to start a <strong>petition to ban AI-generated code from Node.js core</strong>. Matteo&#x27;s response: <em>I made all the decisions, I fixed the AI&#x27;s mistakes, it&#x27;s still my code.</em></p>
<h3>Process, not just AI</h3>
<p>Scott&#x27;s take is that the size and abruptness are doing as much damage as the AI angle. There were existing issues discussing a VFS, but no RFC, no upfront tech plan, and the commit history is borderline unreviewable. Classic &quot;easier to ask forgiveness than permission&quot; energy — but on a change that touches a major surface of the runtime. The crew sympathize with the engineer&#x27;s instinct to just <em>ship the thing</em>, but agree that a feature this big needed buy-in first. (Scott would have left a <code>nit:</code> comment asking for a rebase to a single commit.)</p>
<h3>How do you even police this?</h3>
<p>Dillon raises the obvious enforcement problem: AI detection tools have the same false-positive issues that plague universities. A one-line bug fix is indistinguishable from a human&#x27;s. That points toward either accepting AI-assisted contributions outright or building entirely new governance — which is roughly where the broader OSS community seems to be landing (the related issue was reportedly closed with consensus that AI-assisted dev <em>is</em> allowed).</p>
<h3>What if Node says no?</h3>
<p>Matt poses the strategic question: if Node.js bans AI contributions, does that hand momentum to <strong>Bun</strong> and <strong>Deno</strong>? Bun is already leaning hard into Claude-assisted development, ships features fast (native SQLite being the canonical example), and operates as a company rather than a committee — so it has structural advantages on velocity and backwards-compat tradeoffs. Scott pushes back that big corporations are slow to migrate runtimes regardless, but Matt counters that <strong>agents dramatically lower switching costs</strong> — point Claude at your codebase and say &quot;migrate this from Node to Bun&quot; and it&#x27;s plausibly a weekend.</p>
<h3>Slopforks and the SQLite playbook</h3>
<p>The conversation widens to <strong>Cloudflare&#x27;s &quot;vinext&quot;</strong> — a Vite-based Next.js reimplementation built by pointing an agent at Next&#x27;s test suite, which popularized the term <strong>slopfork</strong>. That sparked talk of TLDraw considering closing their test suite to prevent agent-driven reimplementation, and the long-standing <strong>SQLite model</strong> where the code is open source but the comprehensive test suite is paid/closed. Expect more projects to consider that pattern as agents make test-suite-driven reimplementation trivially cheap.</p>
<h3>Closing takes</h3>
<ul>
<li>Open source projects may need to <em>lean into</em> AI just to stay competitive with company-backed runtimes.</li>
<li>The irony: another Node contributor used Claude to write a deep-dive review of the PR itself.</li>
<li>Matteo also published a userland polyfill on npm, hedging against Node&#x27;s slow merge process.</li>
<li>Scott&#x27;s verdict: merge it already.</li>
</ul>
<p>Plus a brief detour on the iojs fork of yore, and Matt&#x27;s proposed name for the inevitable Node slopfork: <strong>input-output.js</strong>.</p>]]></content:encoded>
            <itunes:duration>1862</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/25/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Selling The Increment: PR Scope, Nitpicks, and Token Anxiety</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/24/audio.mp3"
                      type="audio/mpeg"
                      length="58390278"/>
            <guid isPermaLink="false">24</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/24/selling-the-increment</link>
            <pubDate>Tue, 14 Apr 2026 00:08:19 GMT</pubDate>
            <description><![CDATA[Dillon, Scott, and Matt dig into what happens when PR feedback drifts from the plan the team thought they aligned on — scope creep, nitpick comments that block merges, and the eternal tension between shipping the incremental thing and building the "ideal" thing. They land on communication, lightweight design docs, and a healthier code review culture as the way through. Plus: Dillon discovers token anxiety after burning $300 of Opus in four hours, and Scott spoils Project Hail Mary for Matt.]]></description>
            <content:encoded><![CDATA[<h2>Main Topic: When PR Feedback Diverges From The Plan</h2>
<p>Matt and Scott both recently shipped PRs and got reviewer feedback that didn&#x27;t match what they thought the team had agreed on — either asking for far more scope than intended, or pushing back on an incremental approach in favor of the &quot;ideal&quot; final solution.</p>
<h3>Scope Creep In Review</h3>
<p>The classic example: you make one focused change in an old codebase, and a reviewer points to an unrelated <code>eslint-disable</code> comment five lines above your diff and asks you to &quot;fix it properly.&quot; Suddenly your tight PR is fighting a battle you didn&#x27;t sign up for.</p>
<h3>Incremental vs. Ideal</h3>
<p>Scott frames the core tension: most of the team agrees with incremental PRs in principle, but in practice a reviewer can blindside you by insisting the PR get all the way to the ideal end-state. The skill is <strong>selling the increment</strong> — showing the path from &quot;value shipped today&quot; to &quot;ideal solution later&quot; so reviewers buy into the staging, not just the destination.</p>
<p>Scott&#x27;s concrete example: he was building end-to-end smoke tests where the ideal version was blocked by another team. He had to plead his case, point to follow-up tickets, and frame the smoke tests as immediate value on the way to the real thing.</p>
<h3>Trust, Teams, and Context</h3>
<p>Dillon notes he doesn&#x27;t hit this much — his team has jelled, they tell each other up front &quot;you&#x27;re not going to like this, let&#x27;s talk in person.&quot; Scott contrasts that with newer teams or strong-opinioned teammates where trust hasn&#x27;t been built and standups go in one ear, out the other.</p>
<h3>Plans as the Through-Line</h3>
<p>The group converges on <strong>communicate, communicate, communicate</strong>. Matt argues for creating a clear through-line — an issue or doc that breaks the work into steps so a reviewer landing on PR #3 can click back to the plan. It doesn&#x27;t have to be a senior-staff-signoff design doc; even a one-pager or a markdown plan from Claude counts. Matt also pitches &quot;shift left&quot; on reviews: get eyes on the plan <em>before</em> the PR, not at PR time.</p>
<p>Dillon introduces the PRD framing — product requirements doc owned by PMs, separate from an engineering design doc. When you don&#x27;t have a dedicated PM, you have to own that artifact yourself, and teams sometimes forget.</p>
<h2>Nitpicks and Code Review Culture</h2>
<p>Matt&#x27;s open question: how do you stop blocking nitpick comments from dominating? Scott&#x27;s stance is firm — <strong>nitpicks should not block PRs</strong>. Unless there&#x27;s a real architectural problem or a literal bug, call it out, approve anyway, and let the author decide whether to address it now or as a follow-up. Code review is a two-way conversation, not a one-way directive, regardless of seniority.</p>
<p>Dillon&#x27;s tactics: mark nitpicks as out-of-scope with a follow-up ticket, or just take the conversation to Slack/in-person to break through faster than async GitHub threads.</p>
<p>A frustrating wrinkle Matt raises: their SOX-required approval process dismisses approvals on any new push, so even fixing a non-blocking comment forces a re-review cycle — actively discouraging the fast-follow behavior everyone says they want.</p>
<p>The underlying message: assume good intent, trust your fellow engineers, and recognize that increasingly you may be reviewing a Claude-generated PR anyway.</p>
<h2>Stand-Up</h2>
<ul>
<li><strong>Dillon</strong>: Witnessed comedic whiplash at work — one presenter said &quot;turn on bypass permissions and use Opus for everything,&quot; and an engineering leader said the exact opposite an hour later. Has been vibe-coding a personal dashboard with Opus and burned <strong>$300 in four hours</strong>, leading him to discover &quot;token anxiety.&quot; Can&#x27;t even relax on the couch wondering if the agent is deleting his computer.</li>
<li><strong>Scott</strong>: Powerlifting meet next Sunday, body hurts. Saw <em>Project Hail Mary</em>, loved it, then proceeded to spoil it on-mic.</li>
<li><strong>Matt</strong>: Going to see <em>Project Hail Mary</em> tonight (thanks Scott). Otherwise enjoying being back in the metaphorical (and literal) booth.</li>
</ul>]]></content:encoded>
            <itunes:duration>2433</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/24/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Retro &amp; React - 3</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/23/audio.mp3"
                      type="audio/mpeg"
                      length="60351970"/>
            <guid isPermaLink="false">23</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/23/retro-and-react-3</link>
            <pubDate>Sat, 11 Apr 2026 20:22:23 GMT</pubDate>
            <description><![CDATA[Dillon, Scott, and Matt unpack the chaotic saga of ClawdBot → MoldBot → OpenClaw — the rapidly-rebranded autonomous agent platform that's exploded on GitHub — and dig into the marketplace malware scandal, the credentials-access risks, and what Anthropic cutting off subscription billing tells us about the economics of agentic AI.]]></description>
            <content:encoded><![CDATA[<h2>The OpenClaw Saga: Rebrands, Malware, and Who Pays for Your Agent</h2>
<p>Matt, Scott, and Dillon try to make sense of one of the fastest-moving stories in agentic AI: the project that started as <strong>ClawdBot</strong>, briefly became <strong>MoldBot</strong> for about three hours, and now goes by <strong>OpenClaw</strong> — at least until the next rebrand.</p>
<h3>What even is OpenClaw?</h3>
<p>The crew sets the stage for Dillon (and any listener who&#x27;s been blissfully out of the loop). OpenClaw is an always-on, multi-agent autonomy platform — think &quot;proto-Jarvis&quot; or &quot;Siri but 100x.&quot; You hand it your calendar, email, Slack, messaging apps, and home automation, and it goes off and does the menial digital work for you. Matt notes its GitHub star growth has outpaced essentially every project ever, though the guys speculate how much of that is real humans vs. agents spinning up GitHub accounts and starring the repo themselves.</p>
<h3>The marketplace malware scandal</h3>
<p>Scott opens the episode with the bombshell: the <strong>#1 most-downloaded skill in the OpenClaw marketplace was malware</strong> — stealing SSH keys, crypto wallets, and browser cookies, and opening a reverse shell to the attacker&#x27;s server. <strong>1,184 malicious skills</strong> were found in total, with <strong>one attacker responsible for 677 packages</strong>. The conversation turns to the obvious tension: the more credentials and access you give an always-on agent, the more catastrophic a supply-chain attack on its plugin ecosystem becomes.</p>
<h3>The rebrand carousel and the drama</h3>
<p>The hosts walk through the dizzying pace of changes — naming, ownership questions, and the broader &quot;is this a scam?&quot; vibes swirling around the project. Matt points out the loop is so tight that anything they say will probably be outdated by the time the episode drops.</p>
<h3>Anthropic pulls the plug on subscription billing</h3>
<p>A big thread: Matt wanted to run his own OpenClaw agent but is held back because <strong>he can&#x27;t point it at his Claude subscription</strong> anymore. The crew theorizes why — consumer subscriptions are almost certainly loss-leaders for the model providers, while per-token API billing is where the margin lives. Shutting subscription access off for agents that burn tokens 24/7 is basically self-defense.</p>
<h3>Tokens, tokens, tokens</h3>
<p>Dillon makes the point that the model companies probably <em>love</em> OpenClaw in principle: it&#x27;s a perfect machine for getting customers to burn tokens faster. He also shares that he recently got a gentle slap on the wrist at work for always reaching for the most expensive model. Scott admits he never swaps models either. The guys riff on the dystopia of paying big AI companies to build agents that do work for other big companies — while no one&#x27;s handing <em>us</em> the robot.</p>
<h3>Wrapping up</h3>
<p>They close with predictions that the ClawdBot/OpenClaw competition between model providers will keep producing new shiny things until someone gets acquired — and a half-joking suggestion that listeners should one-shot a startup idea on Saturday afternoon and become billionaires by Monday.</p>]]></content:encoded>
            <itunes:duration>2514</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/23/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>AI Adoption Reality Check</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/22/audio.mp3"
                      type="audio/mpeg"
                      length="86102853"/>
            <guid isPermaLink="false">22</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/22/ai-adoption-reality-check</link>
            <pubDate>Sat, 11 Apr 2026 19:34:49 GMT</pubDate>
            <description><![CDATA[Matt, Scott, and Dillon push back on the AI hype cycle by digging into a Dax tweet about what AI adoption actually looks like inside larger tech companies — bloated LLM bills, unmotivated 9-to-5ers churning out slop, and the burned-out few left cleaning it all up. Plus thoughts on whether AI is really just a fancy search engine, and a hot take that the Super Bowl MVP should've gone to the kicker.]]></description>
            <content:encoded><![CDATA[<h2>Slop Code, $500K Bills, and the Two People Who Actually Tried</h2>
<p>This week the crew flips the script on their usual AI conversations and gets honest about what AI adoption actually looks like inside larger tech orgs — not the Twitter highlight reel.</p>
<h2>The Dax Tweet That Started It All</h2>
<p>Matt kicks things off with a <a href="https://x.com/thdxr/status/2022574719694758147">tweet from Dax</a> (of OpenCode / formerly SST) arguing that companies are talking about their teams as if they were operating at peak efficiency and merely bottlenecked by typing speed.</p>
<blockquote>
<p>everyone&#x27;s talking about their teams like they were at the peak of efficiency and bottlenecked by ability to produce code
here&#x27;s what things actually look like</p>
<ul>
<li>your org rarely has good ideas. ideas being expensive to implement was actually helping</li>
<li>majority of workers have no reason to be super motivated, they want to do their 9-5 and get back to their life</li>
<li>they&#x27;re not using AI to be 10x more effective they&#x27;re using it to churn out their tasks with less energy spend</li>
<li>the 2 people on your team that actually tried are now flattened by the slop code everyone is producing, they will quit soon</li>
<li>even when you produce work faster you&#x27;re still bottlenecked by bureaucracy and the dozen other realities of shipping something real</li>
<li>your CFO is like what do you mean each engineer now costs $2000 extra per month in LLM bills</li>
</ul>
</blockquote>
<p>The reality Dax describes:</p>
<ul>
<li>Most orgs don&#x27;t have <em>that</em> many good ideas — and ideas being expensive to implement was actually acting as a useful filter</li>
<li>Most workers aren&#x27;t trying to be 10x; they&#x27;re using AI to finish their tasks with less effort and clock out</li>
<li>The two people on the team who genuinely cared are now drowning in everyone else&#x27;s slop code and are about to quit</li>
<li>Even when code ships faster, bureaucracy is still the real bottleneck</li>
<li>And the CFO is staring at a mysterious new $2,000/month/engineer line item</li>
</ul>
<p>Matt admits a lot of this hits uncomfortably close to home at HubSpot.</p>
<h2>The Cost Conversation</h2>
<p>Dillon shares a stat from a recent all-hands at his company: ~$500K/year in AI spend across roughly 200 engineers. It didn&#x27;t sound like much in the room, but the more he sits with it, the weirder it feels — especially since leadership seems totally fine with it. The crew riffs on the bizarre new world where engineers may soon need to negotiate not just salary but a personal AI token budget as part of their comp package.</p>
<p>Dillon makes a confession: he&#x27;s mostly using AI because it&#x27;s free and he&#x27;s being asked to. If the company pulled the plug tomorrow, he&#x27;d happily go back to free models and probably be fine.</p>
<h2>Is AI Just a Fancy Search Engine?</h2>
<p>Dillon drops the spicy take of the episode: AI right now is basically a really fancy search engine that copies and pastes code for you — it&#x27;s just stealing the internet&#x27;s content and wrapping it in a bow. Scott mostly agrees, framing it as a streamlined command-line search that returns blurbs instead of links.</p>
<p>Matt pushes back. Tab completion? Sure, that framing fits. But agents like Claude Code in plan mode are doing something more — decomposing problems into small enough sub-problems that the &quot;search engine&quot; framing starts to break down. Scott concedes that plan mode and the conversational back-and-forth (&quot;give me three ways to solve this and tell me which is strongest&quot;) is genuinely valuable in a way no search engine can replicate.</p>
<h2>The Slop Code Problem</h2>
<p>The conversation lands on the real cost of all this: engineers shipping Claude&#x27;s output without understanding it, leaving in the &quot;I did a thing&quot; comments, and quietly building up tech debt that the few engineers who still care will eventually have to clean up. Scott talks about his own discipline of never shipping code he doesn&#x27;t understand well enough to defend in a sev review.</p>
<h2>Life Updates</h2>
<ul>
<li><strong>Scott</strong> is ramping up on a new product with tight deadlines, played tennis Saturday, went skiing recently, has a San Francisco / Lake Tahoe ski trip coming up in March, and is competing in a powerlifting meet at the end of March.</li>
<li><strong>Matt</strong> landed an Rspack contribution (with Claude&#x27;s help) — interesting note that Rspack is maintained by ByteDance, so review cycles run on roughly a one-day lag with reviewers in China. He also hosted a Super Bowl party.</li>
<li><strong>Dillon</strong> got second place in commercial bingo at the Super Bowl party, which was reportedly more fun than the actual game.</li>
</ul>
<h2>The Hot Take Corner</h2>
<p>The Super Bowl MVP was wrong. It should&#x27;ve been the kicker — who, per Dillon and Matt, basically kept his team in the game. This unlocks some deep lore: Dillon himself was a kicker in high school. Suddenly his entire personality makes sense.</p>]]></content:encoded>
            <itunes:duration>3587</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/22/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Avoiding the Slop With AI Coding</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/21/audio.mp3"
                      type="audio/mpeg"
                      length="81145648"/>
            <guid isPermaLink="false">21</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/21/avoiding-the-slop-with-ai-coding</link>
            <pubDate>Sat, 28 Feb 2026 17:32:41 GMT</pubDate>
            <description><![CDATA[Dillon, Scott, and Matt discuss how to avoid the 'slop pit' of AI-assisted development — the tendency to accept mediocre AI-generated code without proper scrutiny. They share practical strategies for maintaining code quality including upfront planning workflows, multi-layered code review with AI and human reviewers, TDD-inspired approaches to AI coding, and the role of linting and type safety as guardrails.]]></description>
            <content:encoded><![CDATA[<h2>Summary</h2>
<p>In this episode of The Bikeshed Podcast, Dillon, Scott, and Matt tackle a topic that&#x27;s been top of mind for Matt lately: how do you maintain high code quality standards when AI agents are writing most of your code? Matt opens up about falling into what he calls a &quot;slop pit&quot; — the habit of throwing a prompt over the wall, getting back code that technically works, and moving on without scrutinizing it. The hosts explore whether this problem is worse in large codebases versus small side projects, with Scott noting that AI tends to bolt solutions on top of existing code rather than elegantly integrating with established patterns, especially in bigger repos. Matt argues it happens everywhere, though codebase size may be a contributing factor.</p>
<p>The conversation zeroes in on two key practices: planning and review. Dillon shares that he spends 10–15 minutes planning before letting AI write any code, and has been experimenting with Anthropic&#x27;s &quot;feature dev&quot; skill that does extensive codebase exploration before generating a plan. Scott reveals his workflow of using Claude&#x27;s plan mode, keeping a dedicated tab open on the generated plan file, and manually editing or conversing with the model to refine it. All three agree on a critical pitfall: having the AI generate a plan and then rubber-stamping it without actually reading and comprehending it defeats the purpose entirely.</p>
<p>On the review side, Matt describes a multi-layered approach — spinning up a second agent to review code locally, then using HubSpot&#x27;s internal AI tool Sidekick for PR-level code review before opening it up for human review. Scott has been experimenting with a Claude code review skill that pulls recent PR history to understand review patterns. Dillon prefers reviewing on GitHub because it puts him in the right mindset, and isn&#x27;t afraid of messy draft PRs with self-comments.</p>
<p>Testing gets significant airtime, with the hosts discussing TDD-inspired approaches to AI development — writing failing tests first and then having the agent implement against them. Dillon shares a revealing story about his team burning tokens to get test coverage from 8% to 50–60%, only to realize that increased test coverage alone doesn&#x27;t equal confidence when the underlying code is messy. The hosts also discuss the value of linting, TypeScript strictness, and other automated guardrails in keeping AI-generated code on track, while acknowledging that pattern consistency remains a largely unsolved problem even with human contributors.</p>
<p>The episode touches on model differences, with Matt noting that GPT models tend to follow instructions more strictly while Claude sometimes takes liberties (reaching for <code>as any</code> or disabling ESLint rules). Scott and Dillon weigh in on the broader question of whether code quality still matters in an AI-first world, with Scott arguing that companies going all-in on AI without maintaining engineering standards will eventually hit painful bugs that are hard to solve even with AI assistance.</p>
<h3>Standup:</h3>
<p>In the standup segment, Scott shares his experience switching to rebasing (great for small branches, nightmarish for stacked PRs), plans to try Graphite and LazyGit, and mentions an upcoming skiing trip and a minor adductor pull ahead of a powerlifting meet. Dillon talks about having AI handle more of his Git workflow, pitching infrastructure improvements like batch endpoints for Cloudflare Workers, and shouts out 4A Coffee from Newton, MA. Matt recounts causing a repeat incident at HubSpot that broke front-end build testing, his remediation work on the offending service, and his experiments with OpenCode as a Claude Code alternative and Git worktrees for managing multiple branches.</p>]]></content:encoded>
            <itunes:duration>3381</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/21/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>2026 Predictions</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/20/audio.mp3"
                      type="audio/mpeg"
                      length="64632081"/>
            <guid isPermaLink="false">20</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/20/2026-predictions</link>
            <pubDate>Sun, 22 Feb 2026 14:20:15 GMT</pubDate>
            <description><![CDATA[Scott, Dillon, and Matt share their boldest (and not-so-bold) predictions for 2026 — from autonomous coding agents replacing engineers, to the AI bubble bursting, to one of the hosts getting laid off. They rate each prediction on a Taco Bell spice scale and wrap up with standup updates on AI tool usage, honeymoon planning, and the eternal struggle of AI-generated code quality.]]></description>
            <content:encoded><![CDATA[<h2>Summary</h2>
<p>The hosts kick off by diving into their 2026 predictions, rating each on both a likelihood scale (1–10) and a Taco Bell-inspired &quot;spice-o-meter&quot; ranging from mayo to Diablo.</p>
<p><strong>Dillon&#x27;s first prediction</strong> is that autonomous coding agents will enable single-prompt-to-deploy workflows, potentially eliminating the need for engineers on product teams. Scott pushes back, arguing that companies still need engineers who think through problems, and that the &quot;enshittification&quot; of lazy AI usage will backfire. The group rates it a &quot;fire&quot; take with moderate likelihood (5–7 out of 10). The discussion touches on MCPs, agent orchestration tools like Gastown (where AI agents manage other agents in a wild hierarchy of mayors, soldiers, and competing towns), and the rapid pace of AI tooling turnover.</p>
<p><strong>Scott&#x27;s first prediction</strong> is that using AI during engineering interviews will become the norm in 2026. He argues it&#x27;s absurd that companies force engineers to use AI daily but ban it during interviews. Dillon confirms his company already allows it but notes their interview questions aren&#x27;t designed for AI-assisted solving. Matt gives it a 9/10 likelihood but rates the spiciness as a lukewarm &quot;verde&quot; — it just feels inevitable.</p>
<p><strong>Matt&#x27;s first prediction</strong> is that companies will start scaling back their AI budgets, consolidating overlapping subscriptions (Claude, Cursor, GitHub Copilot, ChatGPT) rather than paying for everything. Dillon disagrees strongly, citing his company&#x27;s continued heavy investment and the launch of an &quot;AI Coalition of Massachusetts.&quot; Scott sees it as a double-edged sword — big tech will keep spending while smaller companies pull back.</p>
<p><strong>Dillon&#x27;s second prediction</strong> takes a personal turn: one of the three hosts will get a new job, and one will get laid off in 2026 (possibly the same person). Scott reveals he had the same prediction written down. Matt rates it 8/10 likely and gives it a &quot;Diablo&quot; spice rating, while Scott gives it only a 3/10 despite calling it a fire take.</p>
<p><strong>Scott&#x27;s second prediction</strong> goes big: the AI bubble will burst entirely in 2026. Matt thinks it&#x27;s only 2/10 likely, suggesting the government would intervene before a full collapse given how foundational AI has become to the economy. Dillon gives it a Diablo spice rating but agrees it&#x27;s unlikely.</p>
<p><strong>Matt&#x27;s second prediction</strong> is that a majority of social media content (over 50%) will be AI-generated or AI-enhanced. Scott and Dillon essentially agree it&#x27;s already happening. This sparks a tangential discussion about the rise of niche, authentic social platforms like Retro (a weekly photo-sharing app) and Strava, as the hosts lament the state of mainstream social media.</p>
<p>In the <strong>speed round</strong>, Scott predicts Python will become the top-paid programming language due to machine learning demand (Matt counters that TypeScript might actually replace Python for ML work). Scott also predicts at least one episode this year won&#x27;t mention AI, and Matt predicts they&#x27;ll stop referencing their former employer so frequently.</p>
<h3>Standup:</h3>
<p>During <strong>standup</strong>, Scott shares that he canceled his Claude Max subscription because he couldn&#x27;t justify the cost for personal use, though he still uses it heavily at work. He describes a hybrid approach to AI-assisted coding — using Claude for boring tasks like test generation while personally learning the codebase. Dillon has been exploring Claude skills and MCP servers at work, including Context7 for documentation and the Figma integration, though he got called out for pushing AI-generated code without reviewing it. Matt admits his side project is now &quot;a big pile of slop&quot; after thousands of lines of unreviewed AI-generated code, and is reconsidering how to apply better rigor to AI-assisted development. He&#x27;s also been honeymoon planning, though some destinations may be on the no-travel list.</p>]]></content:encoded>
            <itunes:duration>2693</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/20/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Retro &amp; React - 2</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/19/audio.mp3"
                      type="audio/mpeg"
                      length="30393073"/>
            <guid isPermaLink="false">19</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/19/retro-and-react-2</link>
            <pubDate>Mon, 19 Jan 2026 01:28:20 GMT</pubDate>
            <description><![CDATA[The bikeshed boys discuss two major tech industry developments: Anthropic's crackdown on third-party agent harnesses and Tailwind's recent layoffs. They explore how Anthropic is shifting focus from the model itself to their suite of tools to create stickiness, and how AI tools like Claude are disrupting the component library business model that Tailwind relied on.]]></description>
            <content:encoded><![CDATA[<h2>Summary</h2>
<p>In this episode of Retro and React, Scott and Matt dive into two significant developments in the tech industry: Anthropic&#x27;s recent policy changes around third-party agent harnesses and the layoffs at Tailwind Labs.</p>
<h3>Anthropic&#x27;s Crackdown on Third-Party Tools</h3>
<ul>
<li>Anthropic recently prohibited the use of open-source/third-party agent harnesses (like Claude Code, OpenCode, Clawdbot, and Pi) with Claude Pro and Max subscriptions</li>
<li>These tools were previously spoofing headers and using system prompts to bypass Anthropic&#x27;s restrictions and leverage subscription-based access</li>
<li>Users must now pay for API billing (per-token pricing) instead of using monthly subscriptions to access these third-party tools</li>
<li>The move reflects Anthropic&#x27;s strategic pivot: they&#x27;ve recognized the model itself isn&#x27;t the differentiator—it&#x27;s the suite of tools and integrations built on top</li>
<li>Anthropic appears to be focusing on creating &quot;stickiness&quot; by getting users ingrained in their ecosystem of tools rather than competing purely on model performance</li>
<li>The subscriptions may be loss-leaders compared to API billing, with enterprise contracts potentially being more profitable</li>
</ul>
<h3>The Broader Strategic Shift</h3>
<ul>
<li>Before Opus 4.5, Claude models weren&#x27;t differentiated enough to create vendor lock-in</li>
<li>Users could easily switch to competitors like GPT-5.2 for similar or better results</li>
<li>Anthropic&#x27;s value proposition has shifted to emphasize deep integrations, superior tool-calling capabilities, and their full software suite</li>
<li>This mirrors classic tech company strategies of building multiple products to keep customers in one ecosystem</li>
</ul>
<h3>Tailwind&#x27;s Layoffs and the AI Disruption</h3>
<ul>
<li>Tailwind Labs recently laid off most of their staff</li>
<li>The component library/design system business—Tailwind&#x27;s primary monetization strategy—has become increasingly commoditized</li>
<li>AI tools can now generate the same components and templates that Tailwind was selling in minutes</li>
<li>Competitors like shadCN and AI-generated solutions have made it difficult to differentiate</li>
<li>Tailwind finds itself &quot;stuck between a rock and a hard place&quot;: trying to monetize an open-source product while competing against AI tools that can replicate their paid offerings for pennies on the dollar</li>
</ul>
<h3>The Open Source Monetization Challenge</h3>
<ul>
<li>Monetizing open-source products remains extremely difficult</li>
<li>The bifurcation strategy (free open-source + paid premium) struggles when AI can replicate the premium features</li>
<li>Tailwind&#x27;s success as an open-source tool may have contributed to their monetization challenges—being &quot;too good&quot; and widely adopted meant AI could easily learn to replicate their patterns</li>
<li>The hosts note this is a &quot;victim of its own success&quot; scenario</li>
</ul>]]></content:encoded>
            <itunes:duration>1266</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/19/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>AI Wrote My Performance Review</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/18/audio.mp3"
                      type="audio/mpeg"
                      length="91773514"/>
            <guid isPermaLink="false">18</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/18/ai-wrote-my-performance-review</link>
            <pubDate>Thu, 15 Jan 2026 13:49:57 GMT</pubDate>
            <description><![CDATA[It's review season, and the bikeshed boys dive into the dreaded annual performance review process—and how AI is changing everything about it. They share strategies for writing effective self-reviews, debate whether managers already know where they'll rank you before reading a word, and explore the messy dynamics of team politics: fighting for interesting projects, dealing with too many senior engineers, and avoiding the "senior trap" of over-architecting instead of shipping. Plus: New Year's resolutions, Claude Max vs. Cursor debates, and why Arc Raiders lobbies are way sweatier in trios.]]></description>
            <content:encoded><![CDATA[<h2>Summary:</h2>
<p>Scott, Dillon, and Matt kick off 2026 with a deep dive into the joys (and pains) of performance review season. The conversation starts with everyone&#x27;s approach to using AI—specifically Claude—to help write self-reviews. Scott shares how an MCP server at work generated his entire review in about 15 minutes, while Dillon notes his company explicitly encourages using AI for reviews. Matt discusses using Claude to scan his Obsidian notes from the past year and create a summary of accomplishments.</p>
<p>The hosts explore best practices for structuring reviews:</p>
<ul>
<li>Focus on 3-4 high-impact accomplishments and tell a story about why they matter</li>
<li>Keep it concise—like a resume, not an essay—so managers can actually read it</li>
<li>Include links to artifacts (PRs, docs, Looms, Slack posts) to add credibility</li>
<li>Align your wins with level expectations, especially if pursuing promotion</li>
</ul>
<p>The conversation shifts to team dynamics and the challenge of &quot;fighting for work&quot; on teams full of senior engineers all competing for growth opportunities. Matt shares frustrations about ideas getting shot down or handed off to others, while Scott contrasts this with his current team&#x27;s collaborative, trust-based approach using DRIs (Directly Responsible Individuals). Dillon offers the counterpoint that at smaller companies, you can often just do the work without asking permission—though that comes with less oversight.</p>
<p>A frank discussion emerges about the &quot;senior engineer trap&quot;—where engineers mistakenly believe seniority means stepping away from code to whiteboard and write RFCs all day. Matt admits to being a &quot;recovering senior&quot; who fell into this pattern, noting that company competencies can inadvertently push people toward over-architecting instead of shipping.</p>
<p>The hosts share their takes on career development:</p>
<ul>
<li>Maintain a personal &quot;wins doc&quot; framed around your own goals, not just company expectations</li>
<li>Periodically ask yourself: &quot;How hireable am I based on the last six months?&quot;</li>
<li>Titles mean different things at different companies—focus on the actual work and responsibility</li>
</ul>
<p>In standup updates, Scott discusses his goal of becoming more of a minimalist and whether to keep his Claude Max subscription ($100/month) after barely using 8% of it. He also wants to write more blog posts—a gap he identified for reaching staff level. Dillon&#x27;s resolutions are refreshingly simple: consistency at work, consistency in fitness, and seeing more extended family. He also &quot;retired&quot; from Arc Raiders right as Matt and Scott got into it.</p>
<p>Matt mentions getting a new mic (two, actually—one from Scott, one from Katie), and his resolution to connect more with engineers at HubSpot and former colleagues. The episode wraps with a tease about covering Tailwind drama in a future React and Retro episode, and Dillon&#x27;s request for a segment called &quot;Matt and Scott tell Dillon the news.&quot;</p>]]></content:encoded>
            <itunes:duration>3824</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/18/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Retro &amp; React - 1</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/17/audio.mp3"
                      type="audio/mpeg"
                      length="44017080"/>
            <guid isPermaLink="false">17</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/17/retro-and-react-1</link>
            <pubDate>Fri, 05 Dec 2025 19:32:05 GMT</pubDate>
            <description><![CDATA[This week on The Bikeshed, Scott, Matt, and Dillon tackle two breaking stories that have the JavaScript community buzzing: React's severity 10 vulnerability in React Server Components and Anthropic's surprising acquisition of Bun.]]></description>
            <content:encoded><![CDATA[<p>This week on The Bikeshed, Scott, Matt, and Dillon tackle two breaking stories that have the JavaScript community buzzing: React&#x27;s severity 10 vulnerability in React Server Components and Anthropic&#x27;s surprising acquisition of Bun.</p>
<h2>React&#x27;s Critical Vulnerability</h2>
<p>The hosts dive into the details of React&#x27;s newly disclosed security flaw affecting React Server Components—a severity 10 vulnerability that could potentially allow arbitrary code execution on servers. While major infrastructure providers like Cloudflare, Vercel, Railway, Netlify, and Deno Deploy quickly patched the issue at the firewall level, the team discusses the concerning lack of early disclosure to smaller framework maintainers. Matt notes that while Next.js (essentially &quot;the React team at this point&quot;) was keyed in early, frameworks like Waku were left in the dark until the public announcement.</p>
<p>The conversation touches on the complexity of versioning in the Next.js ecosystem, the challenges of upgrading legacy applications, and what this means for the broader adoption of React Server Components. Scott sees a silver lining: it might slow down the pressure to adopt RSCs at work. The team debates whether this opens the door for alternative frameworks like Remix (coming April 2026... or maybe March 2030?) or TanStack Start to gain ground.</p>
<h2>Anthropic Acquires Bun</h2>
<p>The second half explores Anthropic&#x27;s acquisition of the fast JavaScript runtime Bun—a move nobody had on their 2025 bingo card. The hosts unpack what this means for the JavaScript ecosystem, noting that Claude Code already heavily uses Bun for both its CLI and runtime execution.</p>
<p>Scott calls it a &quot;big win for JavaScript,&quot; highlighting that Anthropic is keeping the entire Bun team and expanding it rather than absorbing and dismantling. The discussion explores whether this reflects a broader industry trend of AI companies investing in language runtimes, with OpenAI&#x27;s Codex being rewritten in Rust while Anthropic goes all-in on Bun (which is written in Zig).</p>
<p>The team contemplates how this positions Anthropic as the &quot;developer&#x27;s tool&quot; company versus OpenAI&#x27;s consumer focus, and whether we might see similar acquisitions in the space—perhaps OpenAI buying Deno? They discuss concerns about whether Bun&#x27;s development priorities will shift to serve only Anthropic&#x27;s needs versus the broader open-source community.</p>
<h2>Quick Hits</h2>
<ul>
<li>Dillon reveals he&#x27;s now using Claude Code (after getting free access, of course)</li>
<li>The age-based bowling tournament at work where experience crushed youth</li>
<li>Scott&#x27;s excitement about building &quot;the best permissions table of all time&quot;</li>
<li>Matt&#x27;s upcoming European Christmas market adventure</li>
<li>The digital advent calendar built with Claude&#x27;s help</li>
</ul>
<p>A fast-paced, timely episode that captures the chaos and excitement of a transformative week in the JavaScript world.</p>]]></content:encoded>
            <itunes:duration>1834</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/17/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Clankers Can Review Code Now?!?</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/16/audio.mp3"
                      type="audio/mpeg"
                      length="74547118"/>
            <guid isPermaLink="false">16</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/16/clankers-can-review-code-now</link>
            <pubDate>Fri, 28 Nov 2025 13:34:01 GMT</pubDate>
            <description><![CDATA[The bikeshed boys dive deep into the emerging world of AI-powered code reviews—exploring whether our robot overlords are ready to stamp your PRs, or if they're just glorified linters with delusions of grandeur.]]></description>
            <content:encoded><![CDATA[<h2>The AI Code Review Landscape: Three Companies, Three Approaches</h2>
<p>The conversation kicks off with each host sharing their company&#x27;s approach to AI code review tooling. Dillon reveals that Whoop is piloting three different tools simultaneously—Greptile, GitHub Copilot, and CodeRabbit—leaving engineers unsure which bot will show up in their PRs on any given day. Matt explains HubSpot&#x27;s dual approach with &quot;Sidekick&quot; (their internal AI agent for chat and code review) alongside &quot;Sparrow,&quot; a non-AI bot that auto-approves low-risk changes like markdown updates. Scott shares that Airbnb uses Claude for PR reviews, finding it catches genuine bugs but sometimes pushes for overly defensive code patterns.</p>
<h2>The Big Debate: Should AI Be Allowed to Approve PRs?</h2>
<p>The hosts wrestle with a central tension: should AI be allowed to actually approve PRs? Matt argues for empowering teams to move fast by letting AI stamp changes, while Scott and Dillon pump the brakes—noting that speed and stability exist in a delicate balance. HubSpot learned this lesson the hard way when engineers discovered they could prompt Sidekick to both write a PR and approve it, shipping code without any human review. That loophole was quickly closed.</p>
<h2>AI as a &quot;Smarter Linter&quot;</h2>
<p>The discussion evolves into broader questions about the value proposition of AI code review. Dillon frames it as &quot;a smarter linting step that can sometimes lint for control flow being correct.&quot; Matt highlights how AI reviewers can internalize architectural patterns that would be tedious to encode as traditional lint rules. But both acknowledge the tools aren&#x27;t quite at human-reviewer parity yet.</p>
<h2>The Rise of Multi-Agent Review: Red-Teaming Your Own Code</h2>
<p>A key insight emerges around using multiple AI instances to catch more bugs. Matt describes his workflow of having one Claude instance write code, then spinning up a fresh instance to review those changes—a form of &quot;red-teaming&quot; that catches logical errors the original agent missed. Scott notes this mirrors the broader trend of orchestrating multiple specialized agents, each with fresh context and different objectives.</p>
<h2>AI Fatigue and the Fear of Over-Reliance</h2>
<p>A fascinating thread emerges around AI fatigue—the creeping exhaustion from constant AI discourse and the concern that engineers are becoming over-reliant on these tools. Dillon worries that AI is making developers lazy: &quot;We&#x27;re getting so reliant on it that it&#x27;s just making us dumber.&quot; Scott counters that the human role is shifting from implementation to orchestration, managing AI at a higher level while the bots handle smaller tasks.</p>
<h2>Measuring Success: How Do You Know AI Is Actually Helping?</h2>
<p>The hosts explore how companies measure AI tool success. Survey-based NPS scores? Tracking Claude&#x27;s signatures in commit histories? Using &quot;evals&quot; (evaluations) to benchmark agent performance against known solutions? HubSpot repurposed their annual hackathon framework as an eval system—a clever approach that validates AI against real-world internal problems. Dillon raises the uncomfortable question: are we all just on the hype train without truly validating the benefits?</p>
<h2>The Productivity Paradox: More Output, But Is It Better?</h2>
<p>Scott surfaces an important counterpoint to productivity gains: &quot;Yeah, it&#x27;s 30% more productivity, but how much of it is actually better?&quot; The hosts reflect on previous episodes where they&#x27;ve discussed the web getting worse—noting that shipping more PRs doesn&#x27;t necessarily mean shipping better software. AI-generated code can become unwieldy, creating &quot;band-aids on top of band-aids&quot; that are harder to maintain.</p>
<h2>Matt&#x27;s Claude Code Credit Binge</h2>
<p>Matt shares his enthusiasm for Anthropic&#x27;s recent free credit promotion, noting he&#x27;s burned through $120 of his $250 credit in a week while shipping 20+ PRs for personal projects. His hot take: AI has rekindled his passion for coding outside of work, turning feature implementation into a dopamine-fueled productivity loop. He&#x27;s been throwing &quot;ultrathink&quot; on every prompt and barely making a dent—and yes, he built himself a custom to-do app instead of paying for Todoist.</p>
<h2>Standup Updates</h2>
<p>The episode wraps with standup updates: Scott&#x27;s building visual diff tooling for UI workflows (ironically, a human review tool after an hour of AI review discussion). Dillon&#x27;s improving observability with Cloudflare Workers traces and discovered the hard way that workers have a 6-connection limit—which their 14 feature flag requests were absolutely destroying. Matt&#x27;s abandoned Parcel&#x27;s RSC setup in favor of Vite&#x27;s built-in plugin and is evangelizing wired headphones for speech-to-text dictation with Handy.</p>
<h2>What Even Is a &quot;Clanker&quot;?</h2>
<p>Oh, and the hosts debate whether calling AI agents &quot;clankers&quot; is appropriate—it&#x27;s apparently a speculative slur for robots in a future where they&#x27;re subhuman. Matt&#x27;s been using it to keep the machines in their place before the uprising. Scott refuses to insult AI, treating them as equals. Choose your side wisely.</p>
<h2>Key Takeaways:</h2>
<ul>
<li>AI code review is best viewed as an enhanced linting layer, not a replacement for human reviewers</li>
<li>Multiple AI instances reviewing each other&#x27;s work can catch bugs that single agents miss</li>
<li>Companies are still figuring out how to measure the ROI of AI development tools</li>
<li>The engineering role is shifting toward orchestration and architecture as AI handles lower-level tasks</li>
<li>Speed vs. stability remains the fundamental tradeoff, regardless of whether AI or humans are in the loop</li>
</ul>]]></content:encoded>
            <itunes:duration>3106</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/16/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Why Internal Tooling Sucks</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/15/audio.mp3"
                      type="audio/mpeg"
                      length="67133566"/>
            <guid isPermaLink="false">15</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/15/why-internal-tooling-sucks</link>
            <pubDate>Fri, 21 Nov 2025 12:50:44 GMT</pubDate>
            <description><![CDATA[The bikeshed boys tackle one of software engineering's most contentious debates: should you build internal tools or adopt external solutions? With real examples from their companies—custom dependency managers, GitHub wrappers, and developer portals—they explore when it makes sense to roll your own versus when you're just creating expensive technical debt. Expect war stories, a framework for build-vs-buy decisions, and Dillon's first truly spicy take about Vercel.]]></description>
            <content:encoded><![CDATA[<h2>Why Internal Tooling (Usually) Sucks</h2>
<p>In this episode, Matt kicks things off with a provocative thesis: internal tooling usually sucks. What follows is a deep, nuanced exploration of one of software engineering&#x27;s most persistent challenges—the build versus buy decision that every company eventually faces.</p>
<h3>The Two Types of Internal Tools</h3>
<p>The hosts identify two distinct categories of internal tooling:</p>
<ul>
<li><strong>Wrappers</strong>: Tools that extend existing external solutions (like a custom UI for managing GitHub repository settings)</li>
<li><strong>Replacements</strong>: Complete alternatives to industry-standard tools (like building your own NPM/Yarn/PNPM equivalent)</li>
</ul>
<p>Through examples from HubSpot, Airbnb, and Whoop, they dissect when each approach makes sense and when it becomes a costly mistake.</p>
<h3>The Hidden Costs Nobody Talks About</h3>
<p>Scott breaks down the real expenses of internal tooling that go beyond initial development:</p>
<ul>
<li><strong>Knowledge transfer</strong> when the original creator leaves the company</li>
<li><strong>Onboarding friction</strong> for new engineers who must learn proprietary systems</li>
<li><strong>Maintenance burden</strong> that never ends and always competes with customer-facing priorities</li>
<li><strong>Documentation debt</strong> that compounds over time</li>
<li><strong>The bus factor</strong> when only one person truly understands the tool</li>
</ul>
<p>Matt shares his perspective that internal tools will always be secondary to a company&#x27;s core business, making it nearly impossible to invest appropriately in their long-term health. Even with dedicated developer tooling teams, these tools rarely get the polish and support they need.</p>
<h3>When Internal Tooling Actually Makes Sense</h3>
<p>Despite the skepticism, the crew identifies legitimate scenarios for building internally:</p>
<p>When no external solution exists for your specific problem (and they mean truly doesn&#x27;t exist)
When you have subject matter experts who can build something better and maintain it
When wrapping an external tool with company-specific context adds significant value
When security or data sensitivity requirements make external tools impractical</p>
<p>They discuss examples like FlowBuilder at Airbnb and Easy Deploy at Whoop, exploring what makes these tools successful versus the cautionary tales of failed projects.</p>
<h3>The External Tooling Counterargument</h3>
<p>Dillon delivers his first genuinely spicy take of the podcast: external tooling has its own serious problems. Tools can be abandoned by maintainers, new versions can become impossible to migrate to, and companies can pivot their features in ways that don&#x27;t align with your needs. His critique of Next.js and Vercel&#x27;s approach generates the kind of heat the hosts have been asking him to bring.</p>
<h2>Real War Stories</h2>
<p>The episode is packed with concrete examples:</p>
<ul>
<li>HubSpot&#x27;s custom dependency manager that replaces NPM entirely</li>
<li>Wayfair&#x27;s Tungsten framework (a React alternative that created years of technical debt)</li>
<li>A year-long interior design app project that got canceled after launch</li>
<li>The Jambox testing tool that could have worked with proper buy-in</li>
<li>The painful reality of forking open source tools and maintaining them forever</li>
</ul>
<h3>The &quot;It Depends&quot; Framework</h3>
<p>By the end, the hosts converge on a practical framework for making these decisions:</p>
<h3>Questions to ask before building:</h3>
<ul>
<li>What percentage of your use case does the external tool solve? (If it&#x27;s 90%+, probably don&#x27;t build)</li>
<li>How foundational is this to your engineering system?</li>
<li>What&#x27;s the true cost including maintenance, not just initial development?</li>
<li>Can the tool be replaced in days, weeks, or months if needed?</li>
<li>Do you have the organizational buy-in and resources to support it long-term?</li>
<li>Are you building to avoid a 10% gap or because nothing exists?</li>
</ul>
<p>The general principle: Don&#x27;t build internal tools that replicate 90% of what external tools already do. The remaining 10% is rarely worth the lifetime cost of ownership.</p>
<h2>Personal Updates &amp; Tangents</h2>
<p>The standup section includes home renovation updates (mini splits and solar panels), Scott&#x27;s Rhode Island trip plans, Dillon&#x27;s Web Guild leadership experience at Whoop (described as &quot;group therapy for front-end engineers&quot;), and Matt&#x27;s build performance optimization work that might actually be making things slower.</p>
<p>Whether you&#x27;re an engineering leader making tooling decisions or a developer maintaining legacy internal systems, this episode offers hard-won wisdom about the real tradeoffs in the build-versus-buy debate. Sometimes the answer is &quot;build,&quot; but more often than not, it&#x27;s &quot;please don&#x27;t.&quot;</p>]]></content:encoded>
            <itunes:duration>2797</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/15/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>The Parking Lot - 1</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/14/audio.mp3"
                      type="audio/mpeg"
                      length="80505544"/>
            <guid isPermaLink="false">14</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/14/the-parking-lot-1</link>
            <pubDate>Sat, 15 Nov 2025 12:53:17 GMT</pubDate>
            <description><![CDATA[The bikeshed boys ramble on about coffee, Cursor 2.0 and their new composer model, Claude Code tips and tricks, and pitfalls, as well as AI in coding interviews!]]></description>
            <content:encoded><![CDATA[<h2>Coffee Discussion</h2>
<p>The hosts spend considerable time discussing coffee preferences and brewing methods. They critique Dunkin&#x27; Donuts coffee quality, with the consensus being it&#x27;s subpar without heavy sugar additions. Matt shares his experiences with different brewing methods including espresso machines, <a href="https://corkcicle.com/pages/palmpress">palm press</a>, and Chemex. Scott provides an enthusiastic review of his new Breville espresso machine, explaining the learning curve around grind settings and shot preparation. The group agrees that smaller coffee shops generally have better quality beans than chain establishments.</p>
<h2>Cursor 2.0 Release</h2>
<p>The team discusses <a href="https://cursor.com/">Cursor&#x27;s major update</a>, which repositions it as an &quot;AI-first&quot; coding experience rather than just VS Code with AI features. Key changes include:</p>
<ul>
<li>UI redesign with chat moved to the left sidebar</li>
<li>New &quot;composer&quot; model trained specifically for editor integration</li>
<li>Support for running multiple AI models simultaneously</li>
<li>Built-in Git worktree support for parallel development</li>
</ul>
<p>Matt notes mixed results with the new composer model, finding it sometimes lazy about fixing unrelated test failures.</p>
<h2>AI Development Tools</h2>
<p>The hosts share their experiences with various AI coding assistants:</p>
<ul>
<li>Claude Code: Matt&#x27;s primary tool, though he&#x27;s hitting token limits frequently</li>
<li>Planning Mode: Scott advocates strongly for using planning mode to get better results by having conversations about approaches before implementation</li>
<li>Ultrathink: The group discusses using extended reasoning modes, with Scott recommending it for complex problems</li>
</ul>
<p>They debate the cost implications of AI tools, with Dillon suggesting some features are &quot;easy ways to waste money.&quot;</p>
<h2>Git Worktrees</h2>
<p>Scott explains his experimentation with Git worktrees as a way to work on multiple branches simultaneously. The consensus is that while worktrees are useful for quick context switching (like handling urgent hotfixes mid-feature), simply cloning the repository multiple times may be simpler for many developers.</p>
<h2>AI in Interviews</h2>
<p>The hosts touch on how companies are handling AI usage during technical interviews. Matt notes his company measures &quot;AI fluency&quot; in behavioral questions but doesn&#x27;t allow AI use during coding sessions, creating an interesting contradiction.</p>
<h2>Standup Updates</h2>
<ul>
<li>Dillon is taking time off to play Arc Raiders, a new extraction shooter game</li>
<li>Matt is working on wedding planning and a side project CMS, and also prepping for a work presentation</li>
<li>Scott dealt with a flat tire and is preparing for Halloween trick-or-treaters</li>
</ul>]]></content:encoded>
            <itunes:duration>3354</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/14/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>The Downfall of React</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/13/audio.mp3"
                      type="audio/mpeg"
                      length="78399029"/>
            <guid isPermaLink="false">13</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/13/the-downfall-of-react</link>
            <pubDate>Sat, 08 Nov 2025 18:10:26 GMT</pubDate>
            <description><![CDATA[The bikeshed boys talk about the new hottest web framework on the block: Remix 3, hopefully its third times the charm for the remix guys!]]></description>
            <content:encoded><![CDATA[<h3>Remix 3 Discussion</h3>
<ul>
<li>Overview: The hosts discuss the recent Remix Jam conference and the unveiled Remix 3 framework, which aims to simplify web development. Remix 3 is centered around event handling and components with a different approach to React.</li>
<li>Key Concepts:<!-- -->
<ul>
<li>Event Handling: A core focus is on managing DOM events and using events to manage state.</li>
<li>Components: Aims to reduce complexity compared to React&#x27;s functional components, potentially eliminating the need for hooks.</li>
<li>Frames: A replacement for suspense that they called frames</li>
</ul>
</li>
<li>Concerns:<!-- -->
<ul>
<li>The framework is still pre-alpha, and APIs are subject to change.</li>
<li>Potential difficulties in migrating existing React codebases to Remix 3.</li>
<li>Reliance on AI-generated code for core abstractions raises trust concerns.</li>
</ul>
</li>
<li>Potential Benefits:<!-- -->
<ul>
<li>A simpler programming model compared to React.</li>
<li>Better control over data loading and state management.</li>
<li>The built-in CSS-in-JS solution.</li>
</ul>
</li>
<li>Future of React: Remix 3 may signify a shift in the React ecosystem, as developers explore alternative approaches to web development.</li>
<li>AI in Development: A discussion about the use of AI in building the framework and the importance of reviewing AI-generated code.</li>
</ul>
<h3>Scott&#x27;s Style Corner: Handling Null/Undefined Values in UI</h3>
<ul>
<li>Topic: Scott discusses UX suggestions for representing null or undefined values in UIs.</li>
<li>Key Point: Avoid directly displaying &quot;null&quot; or &quot;undefined.&quot; Instead, use descriptive names that provide clarity for the user (e.g., &quot;Not Reviewed&quot; instead of &quot;Empty&quot;).</li>
<li>Importance: This improves UX by preventing confusion and making it easier for users to understand the information presented.</li>
</ul>
<h3>Stand-up Updates:</h3>
<ul>
<li>Scott: Got married, honeymooned in Iceland, and is nearing completion of a large feature that was delayed due to a migration project.</li>
<li>Matt: Investigating a memory leak in rspack and listening to the album &quot;Heavy Metal&quot; by Cameron Winter.</li>
<li>Dillon: Has been working out consistently, building a reverse proxy for splitting traffic for a Next.js replatform project.</li>
</ul>]]></content:encoded>
            <itunes:duration>3266</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/13/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Is The Web Screwed?!</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/12/audio.mp3"
                      type="audio/mpeg"
                      length="75260574"/>
            <guid isPermaLink="false">12</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/12/is-the-web-screwed</link>
            <pubDate>Thu, 30 Oct 2025 16:07:17 GMT</pubDate>
            <description><![CDATA[AI crawlers killing ads, chatbots replacing browsers, and the slow death of human-centric content. The bikeshed boys debate whether we're heading for a hard fork of the web or just a really awkward transition.]]></description>
            <content:encoded><![CDATA[<h2>Summary</h2>
<p>This episode of the Bikeshed Podcast dives into the question of whether the current state and future of the web are in jeopardy, primarily due to the rise of AI and its impact on content creation, consumption, and monetization. The discussion revolves around the tension between human-centric web experiences and the increasing dominance of AI-driven content aggregation and delivery.</p>
<h3>Key Discussion Points</h3>
<ul>
<li>The AI Crawler Problem: The podcast starts by highlighting the increasing use of systems like Anubis to prevent AI from crawling websites, which negatively impacts the user experience for humans. This leads to the broader question of whether an alternative to the web is needed.</li>
<li>Monetization and Ads: The hosts discuss how AI crawlers bypass ads, which are the primary source of revenue for many websites. This raises concerns about the sustainability of content creation in an AI-dominated environment. The group floats the idea of the de facto standard to make money from ads being changed to paywalls.</li>
<li>Death of the Browser? The episode explores the idea that AI could lead to the &quot;death of the browser&quot; as users increasingly rely on AI chatbots for information, potentially diminishing the need for traditional web browsing experiences.</li>
<li>Transitory Period: There&#x27;s a debate about how quickly these changes will occur, with some hosts suggesting a more gradual transition, while others anticipate rapid evolution. There&#x27;s a strong suggestion of the web going through a &quot;transitory&quot; period.</li>
<li>Forking the Web: The podcast considers the possibility of a &quot;hard fork&quot; of the web, separating bot-friendly and anti-bot content, but acknowledges the challenges in enforcing such a split.</li>
<li>RSS Feeds and Centralized Listings: The discussion touches on potential solutions, such as incentivizing content creators to add their feeds to centralized listings that AI can&#x27;t easily crawl.</li>
<li>Pre-Existing Problems: The hosts acknowledge that the web was already facing issues with homogenization of design and UX patterns, gamification of content, and the dominance of large platforms.</li>
<li>Legal and Ethical Concerns: The podcast raises ethical questions about AI companies scraping content without express consent and potentially harming content creators.</li>
<li>AI as a Middleman: AI is described as a &quot;middleman&quot; that extracts value from content creators while benefiting consumers, similar to the dynamic observed with platforms like Spotify.</li>
</ul>]]></content:encoded>
            <itunes:duration>3136</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/12/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Deploy Fast, and Break Things?!</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/11/audio.mp3"
                      type="audio/mpeg"
                      length="64988809"/>
            <guid isPermaLink="false">11</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/11/deploy-fast-and-break-things</link>
            <pubDate>Fri, 17 Oct 2025 22:25:54 GMT</pubDate>
            <description><![CDATA[The bikeshed boys talk about whether chasing 5-minute deploys is worth it, debating the trade-offs between deployment speed and stability, and why moving fast might sometimes mask the real problems slowing your team down.]]></description>
            <content:encoded><![CDATA[<p>This episode of the Bikeshed Podcast features a discussion on the optimal level of deployment pipeline optimization, sparked by a company&#x27;s desire to achieve five-minute deploys. The co-hosts, Scott, Matt, and Dillon, debate whether aggressively shortening deployment times is always beneficial, or if it can mask underlying problems and sacrifice stability.</p>
<p>Key Discussion Points:</p>
<ul>
<li>Organizational Velocity: The concept of organizational velocity is introduced, emphasizing the importance of moving as fast as possible in the right direction across the entire company, not just in deployment.</li>
<li>Trade-offs: The discussion highlights potential trade-offs between deployment speed and stability. A core debate emerges around whether prioritizing a 5 minute deployment masks other problems.</li>
<li>Confidence and Stability: The co-hosts discuss the need for confidence in deploys and the importance of thorough testing, staging environments, and canary deployments to ensure stability, especially for large, established companies.</li>
<li>Feature Flags: Feature flags are discussed as a tool for managing new feature releases and A/B testing, but also as potential sources of complexity and integration issues.</li>
<li>Realism vs. Idealism: The co-hosts explore the tension between striving for ideal, hyper-optimized scenarios and acknowledging the constraints and realities of smaller teams and existing systems.</li>
<li>Continuous Improvement: The importance of continuous improvement and incremental optimization is emphasized, as opposed to large, periodic overhauls.</li>
<li>Batching Changes vs. Immediate Releases: The conversation touches on the idea of batching certain updates instead of releasing every change immediately.</li>
</ul>]]></content:encoded>
            <itunes:duration>2708</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/11/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Managing Dependencies: It Depends</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/10/audio.mp3"
                      type="audio/mpeg"
                      length="67913478"/>
            <guid isPermaLink="false">10</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/10/managing-dependencies-it-depends</link>
            <pubDate>Fri, 17 Oct 2025 21:06:02 GMT</pubDate>
            <description><![CDATA[The bikeshed boys share how FAANG-like companies manage their frontend dependencies without pain! Hint! They Don't!]]></description>
            <content:encoded><![CDATA[<p>This episode of the Bikeshed Podcast dives into dependency management, particularly within the context of front-end projects. The discussion centers around the &quot;one version rule,&quot; a strategy adopted by companies like Wayfair to ensure consistency and reduce bundle sizes by using a single version of each library across all projects. The hosts explore the pros and cons of this approach, as well as alternative dependency management strategies.</p>
<p>Key Discussion Points:</p>
<ul>
<li>Introduction to Dependency Management: Dependency management involves pulling in libraries and managing updates, breaking changes, and inconsistencies across projects.</li>
<li>The One Version Rule: The one version rule aims to ensure that only one version of each library is used across all projects within an organization. This reduces bundle sizes, avoids conflicts, and promotes consistency. React is used as an example, it typically functions as a singleton, using multiple versions is likely to cause issues.</li>
<li>Benefits of the One Version Rule:<!-- -->
<ul>
<li>Smaller bundle sizes</li>
<li>Reduced conflicts between libraries</li>
<li>Increased consistency and shared knowledge across teams</li>
<li>Faster development and easier onboarding for new engineers</li>
</ul>
</li>
<li>Drawbacks of the One Version Rule:<!-- -->
<ul>
<li>Upgrading dependencies can become a large, complex project affecting multiple applications.</li>
<li>Managing breaking changes and coordinating upgrades can be challenging.</li>
</ul>
</li>
<li>Dependency Upgrade Challenges: Upgrades, especially breaking changes, require significant effort. Teams often postpone upgrades, leading to outdated dependencies and more complex upgrade processes later.</li>
<li>HubSpot&#x27;s Evergreen Dependency System: HubSpot uses an evergreen dependency system where non-breaking changes to libraries are automatically pulled down by all dependent projects on the next build. This reduces the burden of manual upgrades but requires robust tooling to test and verify changes.</li>
<li>Trade-offs of Evergreen Dependencies:<!-- -->
<ul>
<li>Automatic upgrades can cause unexpected breakages if not properly tested.</li>
<li>HubSpot uses canary deployments and build tooling to mitigate these risks.</li>
<li>Build reproducibility becomes difficult as projects always pull the latest dependencies.</li>
</ul>
</li>
<li>Avoiding Breaking Changes: There&#x27;s a growing trend towards avoiding breaking changes in internal libraries to minimize disruption and simplify upgrades.</li>
<li>Peer Dependencies vs. Direct Dependencies: The hosts discuss the trade-offs between using peer dependencies (where the consumer provides the dependency) and direct dependencies (where the library includes the dependency).</li>
<li>Airbnb&#x27;s Dependency Management: Airbnb uses a system where applications and libraries don&#x27;t have package.json files but instead use internal project.json files to enable or disable dependencies.</li>
<li>Internal Tooling and Team Investment: The hosts emphasize the importance of internal tooling and dedicated platform teams to effectively manage dependencies and improve developer experience. Open-source tools can be useful for smaller teams, but larger organizations benefit from custom solutions.</li>
<li>Building Important Systems by Committee: Building important systems like component libraries or design systems by committee can be challenging without a solid foundation and dedicated focus.</li>
<li>The Tragedy of the Commons: Without a structured process or team to manage dependencies, it&#x27;s unlikely that individuals will prioritize it, leading to a negative feedback loop of neglect and increasing complexity.</li>
</ul>
<blockquote>
<p>Sorry for not adding a nice graphic describing the library relationships - we&#x27;ll leave that as an exercise to the listener!</p>
</blockquote>]]></content:encoded>
            <itunes:duration>2830</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/10/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Are React Server Components Risky?!?</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/9/audio.mp3"
                      type="audio/mpeg"
                      length="110819288"/>
            <guid isPermaLink="false">9</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/9/are-react-server-components-risky</link>
            <pubDate>Mon, 16 Jun 2025 19:00:43 GMT</pubDate>
            <description><![CDATA[The bikeshed boys interview Matt on this episode, talking about all things React Server Components (RSCs), exploring their benefits, trade-offs, and adoption strategies. The hosts draw on their experiences at Wayfair, Fireworks, and Whoop to provide practical insights for learning and adopting RSCs.]]></description>
            <content:encoded><![CDATA[<p>The bikeshed boys interview Matt on this episode, talking about all things React Server Components (RSCs), exploring their benefits, trade-offs, and adoption strategies. The hosts draw on their experiences at Wayfair, Fireworks, and Whoop to provide practical insights for learning and adopting RSCs.</p>
<h3>Why React Server Components</h3>
<ul>
<li>
<p><strong>Benefits:</strong></p>
<ul>
<li>Improved Time to First Byte (TTFB) via streaming.</li>
<li>More cohesive view of data dependencies (tighter front-end/back-end coupling).</li>
<li>Potential for smaller client-side bundles (automatic code splitting).</li>
</ul>
</li>
<li>
<p><strong>Trade-offs:</strong></p>
<ul>
<li>Requires a server layer (which might be a new concept for some React developers).</li>
</ul>
</li>
</ul>
<h3>Migrating to React Server Components</h3>
<ul>
<li><strong>Adoption Strategy:</strong>
<ul>
<li>Start page by page (easiest entry point).</li>
<li>Flip the mental model: Start from the server and work towards the client.</li>
<li>Need to consider the bundler support for RSCs.</li>
</ul>
</li>
<li><strong>Challenges:</strong>
<ul>
<li>You cannot easily swap out a small subsection of your page with an RSC.</li>
<li>Ensuring the bundler supports RSCs.</li>
</ul>
</li>
<li><strong>Key Considerations:</strong>
<ul>
<li>Think about two environments: server and client.</li>
</ul>
</li>
</ul>
<h3>Understanding RSC Concepts</h3>
<ul>
<li><strong>Two Environments:</strong> The importance of understanding server (server components, server actions) and client (client components) environments when using RSCs. Front-end engineers new to server-side development need to be aware of security implications and potential caching issues.</li>
<li><strong>Frameworks:</strong> Highlighted the importance of understanding the core RSC principles separate from framework implementations like Next.js.</li>
<li><strong>Not Necessarily Server Rendered:</strong> Clarifying that client components can be server-rendered, avoiding the assumption that client components are solely client-side rendered.</li>
<li><strong>Resources:</strong> Blog post <a href="https://overreacted.io/react-for-two-computers/">&quot;React for Two Computers&quot; by Dan Abramov</a> is a great resource to learn about the mental model. Also start to look at the other framework implementations to understand that there&#x27;s next features and there are RSC features</li>
</ul>
<h3>Standup Updates</h3>
<ul>
<li><strong>Dillon:</strong> Using a Dexcom continuous glucose monitor to manage blood sugar levels and migraines.</li>
<li><strong>Scott:</strong> Getting wedding suits, migrating from Datadog to Grafana monitors.</li>
<li><strong>Matt:</strong> Working on lyaml translation migration. Experimenting with Parcel&#x27;s RSC integration and Redwood SDK.</li>
</ul>
<h2>Links / References:</h2>
<ul>
<li><a href="https://overreacted.io/react-for-two-computers/">React for Two Computers by Dan Abramov</a>
<ul>
<li>An excellent introduction to the concepts behind React Server Components</li>
</ul>
</li>
<li><a href="https://matthamlin.me/2024/october/the-bookkeeping-pattern">The Bookkeeping Pattern</a>
<ul>
<li>A little look at how Scott and Matt leveraged Server Components and Server Functions at Fireworks</li>
</ul>
</li>
<li><a href="https://github.com/hamlim/rsc-todos-waku">Waku RSC Todo App</a></li>
<li><a href="https://github.com/hamlim/rsc-todos-parcel">Parcel RSC Todo App</a></li>
<li><a href="https://github.com/hamlim/rsc-todos-redwood">RedwoodSDK RSC Todo App</a></li>
</ul>]]></content:encoded>
            <itunes:duration>4617</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/9/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Monorepo Madness</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/8/audio.mp3"
                      type="audio/mpeg"
                      length="100761309"/>
            <guid isPermaLink="false">8</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/8/monorepo-madness</link>
            <pubDate>Mon, 09 Jun 2025 21:03:17 GMT</pubDate>
            <description><![CDATA[The Bikeshed podcast returns after a brief hiatus with hosts Scott Kaye, Matt Hamlin, and Dillon Curry. Tune in to hear the bikeshed boys talk about keyboards, Scott's Italy trip, monorepos, and our hot takes on CSS!]]></description>
            <content:encoded><![CDATA[<p>The Bikeshed podcast returns after a brief hiatus with hosts Scott Kaye, Matt Hamlin, and Dillon Curry. Tune in to hear the bikeshed boys talk about keyboards, Scott&#x27;s Italy trip, monorepos, and our hot takes on CSS!</p>
<h2>Stand-up Updates</h2>
<ul>
<li>Dillon is dealing with disruptive construction at his house and is taking time off to combat burnout after a large launch at Woop. He has volunteered to be the guild lead of web, but is finding it difficult to motivate others and get things done.</li>
<li>Scott recaps his recent trip to Italy, highlighting Rome, Florence, Venice, Milan, and Lake Como. He is working on a project at his new job to rebuild GitHub. His project involves visually displaying changes when someone pushes to live. He&#x27;s also rebuilt an open-source keyboard navigation project using <code>useSyncExternalStore</code>, adding new use cases like a command K search palette.</li>
<li>Matt is migrating translations in Webpack apps to a &quot;postmodern&quot; variant. He rebuilt his website using Waku and is debugging cold start issues on Cloudflare. He also got a new keyboard, the Nuphy Air V2 75, but a V3 model is coming out soon.</li>
</ul>
<h2>Monorepos Discussion</h2>
<p>The main topic shifts to monorepos:</p>
<ul>
<li>Definition: A monorepo is a single repository containing multiple projects, packages, or workspaces.</li>
<li>Popularity: Monorepos are popular at large companies like Google and Meta and are gaining traction in companies of various sizes.</li>
<li>Experiences: The hosts discuss their experiences with monorepos at Wayfair, HubSpot, and their current companies. They talk about the shift from monoliths to microservices and back to monorepos at Wayfair, the benefits of shared code, and the importance of culture and expectations.</li>
<li>Key Considerations:<!-- -->
<ul>
<li>Company size and number of contributors.</li>
<li>Deployment speed vs. stability.</li>
<li>Whether teams need to collaborate across problem spaces.</li>
<li>The existence of good documentation and onboarding processes.</li>
<li>The balance between consistency, speed, and safety.</li>
</ul>
</li>
<li>Tooling:  They mention tools like Lerna, Turborepo, and PMPM that support monorepo management.</li>
<li>Potential Downsides:<!-- -->
<ul>
<li>Monorepos can slow down development if not properly managed (e.g., long CI times).</li>
<li>Developers creating a dependency chain instead of simply reusing code.</li>
<li>Consistency is hard to maintain.</li>
</ul>
</li>
<li>Monorepo vs. Technical Solution: Adopting a monorepo is often a technical solution to an organizational problem (e.g., aligning teams on coding standards).</li>
<li>The discussion shifts to how to deal with problems across the board, with more or less monorepos, more or less repos per projects, and things to consider when deciding what approach to use.</li>
</ul>
<h2>Team Structure and Code Ownership</h2>
<ul>
<li>The discussion pivots to team structure, code ownership, and velocity.</li>
<li>The hosts discuss the importance of discoverability of dependencies in monorepos.</li>
<li>Siloed Ownership in the monorepo can lead to faster development and is better for teams.</li>
<li>Speed in the form of high velocity, along with the proper North Star is critical for success.</li>
</ul>
<h2>Spicy Takes: CSS</h2>
<p>The hosts share some spicy takes, primarily focused on CSS, tune in to the episode to hear them!</p>]]></content:encoded>
            <itunes:duration>4198</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/8/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Ditch the Career Ladder</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/7/audio.mp3"
                      type="audio/mpeg"
                      length="64775023"/>
            <guid isPermaLink="false">7</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/7/ditch-the-career-ladder</link>
            <pubDate>Tue, 20 May 2025 13:39:36 GMT</pubDate>
            <description><![CDATA[The bikeshed boys talk about engineering career levels, approaching promotions, building connections and leverage through time and effort, and why levels don’t really matter.]]></description>
            <content:encoded><![CDATA[<h2>Summary</h2>
<p>The Bikeshed Podcast introduces its hosts: Scott Kaye (UI guy, coffee curator, powerlifter) and Matt Hamlin (principal engineer, senior engineering lead) and Dillon (Spicy Take) Curry. They cover software engineering, tech events, and Discord emojis.</p>
<h3>Keyboard Discussion</h3>
<p>Dillon discusses his <a href="https://nuphy.com/collections/keyboards/products/halo75-v2-qmk-via-wireless-custom-mechanical-keyboard?variant=41037254197357">new Nuphy keyboard</a> with silent red clear top switches, featuring RGB lighting. Matt reveals he recently ordered a <a href="https://nuphy.com/collections/keyboards/products/air75-v2">Nuphy Air 75 v2</a> after being influenced by Dillon. This leads to a brief discussion about potentially dedicating an entire episode to keyboards.</p>
<h3>Engineering Levels Discussion</h3>
<ul>
<li><strong>Introduction:</strong> The main topic shifts to engineering levels and promotions. They discuss the convoluted process of getting promoted and the often vague nature of career ladders.</li>
<li><strong>Promotions</strong>: Dillon suggests openly communicating promotion goals to managers early on and highlights finding a new job as another way to move up.</li>
<li><strong>Level Alignment</strong>: They acknowledge that engineering levels are not uniform across companies. A &quot;senior&quot; at one company might be a &quot;junior&quot; or &quot;staff&quot; at another. More competitive companies may make it harder to get higher-level titles.</li>
<li><strong>Fast Growth:</strong> They discuss the pros and cons of moving up the career ladder quickly and the importance of confidence and continuous learning. It’s also good to feel confident that you could interview and find a new job.</li>
<li><strong>Company Growth:</strong> The podcast touches on companies growing quickly can provide opportunity for advancement in titles.</li>
<li><strong>Lateral Growth</strong>: The hosts discuss the importance of lateral growth within a level to increase skillset. Seeking opportunities to grow and learn new things will make you more hireable in the future.</li>
<li><strong>Company Needs</strong>: The hosts emphasize identifying and solving company-wide problems as a way to stand out and grow within an organization.</li>
<li><strong>Leverage</strong>: Leverage is built through information and relationships. Leverage builds up over time in an organization and you begin to be able to better deliver results.</li>
</ul>
<h3>Building Connections</h3>
<ul>
<li><strong>Networking:</strong> The hosts discuss the importance of building a strong network across the company. Dillon recommends setting up one-on-ones with team members to understand their roles better.</li>
<li><strong>Be Nice:</strong> Genuine excitement about connections lead to great relationships.</li>
<li><strong>Authenticity</strong>: It&#x27;s important to create genuine friendships at work and enjoy the time spent with colleagues.</li>
<li><strong>Teach</strong>: Teach people selflessly.</li>
</ul>
<h3>Conclusion</h3>
<p>The hosts wrap up the discussion, emphasizing that levels matter differently to different people and depending on what their professional goals are. It&#x27;s important to pursue constant growth and balance career aspirations with personal satisfaction.</p>
<h3>Stand-up Updates</h3>
<ul>
<li>  Scott discusses his laid-back onboarding experience at Airbnb and his excitement about the new role.</li>
<li>  Dillon shares his success with morning workouts after adjusting his sleep schedule.</li>
<li>  Matt discusses his on-site event, tinkering with Obsidian and <a href="https://tinybase.org/">TinyBase</a>, and his anticipation for his new keyboard.</li>
</ul>]]></content:encoded>
            <itunes:duration>2699</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/7/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Scratching the Surface on Design Systems</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/6/audio.mp3"
                      type="audio/mpeg"
                      length="79150729"/>
            <guid isPermaLink="false">6</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/6/scratching-the-surface-on-design-systems</link>
            <pubDate>Fri, 11 Apr 2025 22:00:17 GMT</pubDate>
            <description><![CDATA[The bikeshed boys talk all about design systems, ranging from what they are, why you may (or may not) need one, and then share a few spicy takes on Storybook, modals, and Tailwind!]]></description>
            <content:encoded><![CDATA[<link rel="preload" as="image" href="https://bikeshedpod.com/mr-krabs.jpeg"/><h2>Summary:</h2>
<p>This episode of The Bikeshed Podcast covers design systems, including their benefits, trade-offs, and whether your company needs one. The hosts also share experiences from their time working on a design system team at Wayfair. Segments include stand-up updates, &quot;Two Takes and a Fake,&quot; and &quot;Spicy Takes with Curry.&quot;</p>
<h3>Stand-up Updates</h3>
<ul>
<li><strong>Dillon</strong>: Shifted to a new project requiring more help. He is listening to the audiobook &quot;Sapiens.&quot;</li>
<li><strong>Matt</strong>: Exploring the <a href="https://www.npmjs.com/package/@cloudflare/vite-plugin">Cloudflare Vite plugin</a>, which allows building a worker and a client-side app. Also experimenting with <a href="https://tinybase.org/">TinyBase</a>, a sync engine for web applications.</li>
<li><strong>Scott</strong>: Took time off before starting a new job. He completed home improvement projects such as re-grouting tiles and fixing a couch leg. Updated the Bikeshed Podcast logo and metadata. Started working on an incremental Bun compiler and playing around with a Moon monorepo.</li>
</ul>
<h3>Design Systems Discussion</h3>
<ul>
<li><strong>Benefits</strong>: Design systems are helpful, especially in larger corporations, as they standardize UI, increase speed, create brand consistency, and ease rebranding. They establish a UI contract between designers, engineers, and product teams.</li>
<li><strong>Considerations</strong>: Smaller companies might benefit more from solutions like Shadcn, where components are consumed into the application. The team should also be responsible for contributing back. Design systems should be flexible and adapt to user needs. It is important to take an empathetic approach to use cases.</li>
<li><strong>Wayfair Experience</strong>: The team discusses their experience working on a design system at Wayfair, highlighting the importance of a single source of truth for design. They also discussed the value of patterns and collaborative environment for creativity and continuous improvement. The team started rigid and inflexible, but matured to provide more flexibility for the teams they were supporting.</li>
<li><strong>Component Libraries vs. Design Systems</strong>: A component library is one piece of a design system. Component libraries are more of a starting point, less rigid, and more flexible, whereas design systems are more opinionated and include non-tangible elements like guidelines and documentation.</li>
<li><strong>Organization Size</strong>: Organization size impacts the design system. Large companies benefit from large investments in platform tooling. Design systems require dedicated people to think about them and the best way to set them up.</li>
<li><strong>Selling the Value</strong>: It is often hard to quantify and sell the value of what the team is doing. Tools that show adoption can help leaders see the value of a design system.</li>
</ul>
<h3>Spicy Takes</h3>
<p>Tune in to hear the takes that Dillon and Matt share to make Scott react like Mr Krabs:</p>
<p><div class="flex items-center justify-center"><img src="https://bikeshedpod.com/mr-krabs.jpeg" alt="An image of Mr. Krabs from Spongebob, with a dizzy-like effect around him"/></div></p>
<h3>Two Takes and a Fake</h3>
<p>The hosts play a game where they identify the fake tech-related news among two real ones. This week&#x27;s topics were Bun, Vercel changelog, and Next.js.</p>
<blockquote>
<p>Tune in to hear who wins this week!</p>
</blockquote>]]></content:encoded>
            <itunes:duration>3298</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/6/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Testing - Is It Worth It?!?</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/5/audio.mp3"
                      type="audio/mpeg"
                      length="98158259"/>
            <guid isPermaLink="false">5</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/5/testing-is-it-worth-it</link>
            <pubDate>Wed, 02 Apr 2025 21:41:07 GMT</pubDate>
            <description><![CDATA[The bikeshed boys discuss all things software testing, from manual verification to automated tests and other things you can do to ensure stability!]]></description>
            <content:encoded><![CDATA[<link rel="preload" as="image" href="https://bikeshedpod.com/testing-midwit-meme.png"/><h2>Summary:</h2>
<p>This episode of the Bikeshed Podcast features a discussion about software testing, with a focus on automated testing in frontend development. The hosts, Scott Kaye, Matt Hamlin, and Dillon Curry, explore various testing methodologies, tools, and their value in different contexts. They delve into the nuances of unit, integration, and end-to-end testing, and the trade-offs involved in choosing one over the other. The discussion also touches on the role of mocking, dependency injection, and the importance of balancing test coverage with development speed. They each share personal experiences from their development career on testing, and their favorite tools.</p>
<p>Key Discussion Points:</p>
<ul>
<li>Value of Testing: Testing is often not enjoyable in the short term, but provides significant long-term value by preventing bugs and providing confidence in code changes.</li>
<li>Unit Testing vs. Integration/End-to-End: Unit testing is valuable for specific functions, while integration and end-to-end tests are better for critical user flows. However, end-to-end tests can be flaky.</li>
<li>Mocking: The overuse of mocking can reduce the value of tests. Dependency injection is viewed more favorably than mocking, though they serve similar purposes.</li>
<li>Test Coverage: Aiming for 100% test coverage may not be efficient; focus on testing essential product features. Consider the time and effort spent on tests versus the value they provide.</li>
<li>Testing in Production: The hosts explore the concept of testing in production, with tools like Datadog synthetics. This allows the team to assess the experience for end-users in production.</li>
</ul>
<figure><img src="https://bikeshedpod.com/testing-midwit-meme.png" alt="A graphic showing the bell curve distribution of IQ score, the low end shows a comical depiction of a head with the text &#x27;test in prod&#x27; above it, the middle shows another head with the text &#x27;build a pristine hermetic environment to run tests against that matches prod 1:1&#x27;, and the right hand side also shows a head with the text &#x27;test in prod&#x27;."/><p><figcaption>The &quot;midwit&quot; meme reference that Matt made during the episode</figcaption></p></figure>
<ul>
<li>Test-Driven Development (TDD): TDD may not always be practical, especially when developing new features with unknown outputs. Writing tests after the feature is more common in these scenarios.</li>
<li>Proof of Concept (POC): Developing a proof of concept outside the main application to validate an idea before integrating it is valuable.</li>
<li>Accessibility Testing: The importance of accessibility testing is discussed, but integrating it into the development process is important.</li>
<li>Component Tests: A discussion of testing in isolation to ensure true browser experience. Component testing will ensure the system will run in the browser as expected.</li>
<li>Code and Test Half-Life: Tests lose value over time as codebase patterns change. It&#x27;s important to re-evaluate their relevance.<!-- -->
<ul>
<li><a href="https://matthamlin.me/blog/2018/december/testing-software">Referenced blog post on the half-life of code and tests</a></li>
</ul>
</li>
</ul>
<h3>Spicy Takes:</h3>
<blockquote>
<p>Tune in to the episode to hear all our spicy takes on testing!</p>
</blockquote>
<h3>Misc. References:</h3>
<p>Scott shared a few Neovim related projects that he has been working with:</p>
<ul>
<li><a href="https://github.com/folke/snacks.nvim">Folke Snacks.nvim</a></li>
<li><a href="https://github.com/folke/lazy.nvim">Folke Lazy.nvim</a></li>
<li><a href="https://github.com/folke/flash.nvim">Folke Flash.nvim</a></li>
<li><a href="https://github.com/yetone/avante.nvim">Avante.nvim</a></li>
</ul>]]></content:encoded>
            <itunes:duration>4090</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/5/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Perfecting The Pull Request</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/4/audio.mp3"
                      type="audio/mpeg"
                      length="75831088"/>
            <guid isPermaLink="false">4</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/4/perfecting-the-pull-request</link>
            <pubDate>Mon, 31 Mar 2025 18:50:07 GMT</pubDate>
            <description><![CDATA[The guys discuss best practices for code review, with a focus on creating effective pull requests (PRs) and how to approach reviewing code.]]></description>
            <content:encoded><![CDATA[<h2>Summary:</h2>
<p>This episode of the Bikeshed Podcast features Scott Kaye, Matt Hamlin, and Dillon Curry discussing best practices for code review, with a focus on creating effective pull requests (PRs) and how to approach reviewing code.</p>
<p>Creating Great Pull Requests</p>
<ul>
<li>Context is Key: Highlight the problem being solved, the goal of the PR, and the solution chosen. Explain why this solution was selected over alternatives.</li>
<li>Scope: PRs should be isolated to a single problem or feature.</li>
<li>Rollback: Consider and outline the rollback procedure for changes.</li>
<li>Templates: Minimal templates with &quot;context&quot; and &quot;details&quot; sections are generally preferred. &quot;Alternatives Considered&quot; can be a useful addition.</li>
<li>Self-Review: Conduct a self-review of the code, ideally within the GitHub PR interface, to identify potential issues.</li>
<li>Draft Mode: Utilizing draft PRs is helpful for iterative development and early feedback.</li>
<li>Visual Aids: Include screenshots, screen recordings, and preview deploys to contextualize changes, especially for UI-related PRs. Dev tool screenshots can be helpful.<!-- -->
<ul>
<li><a href="https://developer.chrome.com/blog/devtools-tips-33">How to capture full-size screenshots within Chrome Devtools</a></li>
<li><a href="https://matthamlin.me/blog/2025/march/replacing-dropbox-capture-with-raycast">Matt&#x27;s replacement for Dropbox Capture</a></li>
</ul>
</li>
<li>Tests: Defer writing tests until a solid solution and some initial feedback have been received to avoid wasted effort due to significant code changes.</li>
</ul>
<p>Reviewing Code Effectively</p>
<ul>
<li>Understand the Big Picture: Start by understanding the problem being solved and the overall goal of the PR.</li>
<li>Use Available Context: Utilize videos, screenshots, and preview deploys to understand the changes.</li>
<li>Prioritize: Focus on major changes and save minor issues for a second pass.</li>
<li>&quot;What, Why, How&quot; Approach: Consider what the change does, why it&#x27;s being made, and how it&#x27;s implemented.</li>
<li>Live Reviews/Pairing: For complex changes, consider live reviews or pair programming to accelerate feedback and build shared understanding. However, acknowledge that this is not always feasible due to time constraints.</li>
<li>Knowledge Sharing: Use code reviews as an opportunity to onboard team members and share knowledge.</li>
</ul>
<p>Spicy Takes (and Not-So-Spicy Takes)</p>
<ul>
<li>Code review maybe is not needed: It was suggested in certain situations, code review may not be necessary. This take was received as extremely situational.</li>
<li>You should almost never have to do two code reviews This take was received as neither mild or spicy, more so cold and lukewarm.</li>
</ul>
<p>What&#x27;s Up With You? (Stand-up Updates)</p>
<ul>
<li>Dillon: Was looking into something called embargoed assets in Contentful.</li>
<li>Scott: Learned about animating on scroll videos and pictures in React using the Canvas tag, bypassing React&#x27;s re-rendering limitations.</li>
<li>Matt: Investigating Content Security Policy (CSP) and durable objects on Cloudflare.</li>
</ul>]]></content:encoded>
            <itunes:duration>3159</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/4/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>A Day In The Life: Coding, Coffee, and Commit Messages</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/3/audio.mp3"
                      type="audio/mpeg"
                      length="55287558"/>
            <guid isPermaLink="false">3</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/3/a-day-in-the-life-coding-coffee-and-commit-messages</link>
            <pubDate>Wed, 26 Mar 2025 13:32:42 GMT</pubDate>
            <description><![CDATA[The guys talk about their daily routines, how they remain productive, and then share spicy hot takes!]]></description>
            <content:encoded><![CDATA[<h2>Summary:</h2>
<p>In this episode of the Bikeshed Podcast, the bikeshed boys dive into their daily routine exploring their productivity habits and workflows. They also get down and dirty on discussing their spicy takes.</p>
<p>Daily Routines for Productivity</p>
<ul>
<li>Matt: Starts his day with a morning walk and uses Obsidian as a central hub for notes and task management. He reviews notes and Slack to identify action items. He also notes that he finds opportunities to make improvements on other things while doing a given task and acts on it instead of simply noting it.</li>
<li>Scott: Begins with coffee, checks personal and work emails and Slack, reviews his calendar, and focuses with his headphones and vibes with music.. He uses Obsidian, Notion, or Notes to track tasks and goals, breaking down complex tasks into smaller, manageable parts. He also prioritizes clear communication and task articulation to minimize disruptions.</li>
<li>Dillon: Prefers working from the office for increased productivity. He maps out his day with a &quot;stand-up update&quot; and clears his email and Slack to minimize distractions and enable focused work periods.</li>
</ul>
<p>Follow-up on Daily Routines</p>
<ul>
<li>Matt and Scott both use end-of-day summaries to set the stage for the next day.</li>
<li>Dillon prefers the office to WFH and does not perform an end-of-day summary and stated it&#x27;s something he could work on.</li>
<li>Matt uses an &quot;outcomes&quot; section in his daily notes to track accomplishments and artifacts, aiding in reviews and progress tracking over time.</li>
</ul>
<p>Spicy Takes</p>
<ul>
<li>Dillon (Medium): React components often abuse props, violating the single responsibility principle due to a lack of care or education.</li>
<li>Scott (Hot): Design systems should empathetically conform to user needs and not try to influence design in a specific direction. A bolder take was that design systems shouldn&#x27;t exist at all.</li>
<li>Matt (Hot Fire): We should not always assume good intent when reviewing code or understanding legacy systems. Sometimes, it&#x27;s necessary to challenge decisions and consider alternative paths.</li>
</ul>
<p>Two Takes and a Fake</p>
<p>The hosts played a round of &quot;Two Takes and a Fake,&quot; a game where they presented three tech-related statements (two real, one fake) and challenged each other to identify the fabrication. Who will win? Tune in and find out!</p>
<p>What&#x27;s New</p>
<ul>
<li>Scott: Been working with UI heavy work to animate webm video files on scroll. Check out the homepage of <a href="https://tollbit.com/">Tollbit</a></li>
<li>Matt: Released <a href="https://github.com/hamlim/vndr/tree/main/packages/vndr">Vndr</a>, a CLI tool for vendoring (inlining) packages.</li>
</ul>]]></content:encoded>
            <itunes:duration>2303</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/3/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Is The Web Getting Worse?!?!?</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/2/audio.mp3"
                      type="audio/mpeg"
                      length="93307007"/>
            <guid isPermaLink="false">2</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/2/is-the-web-getting-worse</link>
            <pubDate>Wed, 19 Mar 2025 14:14:20 GMT</pubDate>
            <description><![CDATA[Scott and Matt talk about how things have been feeling worse on the internet in recent years, and how everything has focused on incremental optimizations over large innovations.]]></description>
            <content:encoded><![CDATA[<h2>Summary:</h2>
<p>This episode of the Bikeshed Podcast explores the concept of &quot;enshittification,&quot; the idea that the quality of products and services deteriorates over time, often accompanied by increased monetization and decreased customer value. They further discuss how this relates to web development and the broader tech industry. They explore potential cultural factors behind this.</p>
<p>Key Discussion Points:</p>
<ul>
<li>Enshittification Examples: The hosts provide examples of enshittification in popular services like Spotify (increased ads with subscription) and Netflix (higher prices for premium features). Facebook is also mentioned as a product that has seemingly declined in popularity as it has aged.</li>
<li>AI Integration: The hosts discussed the trend of tacking on AI to products just to say that they offer AI features, which can often be annoying and not serve the original purpose of the product.</li>
<li>Lost Focus on User Needs: They discuss how companies sometimes lose sight of their original mission and focus more on monetization through KPIs rather than solving customer needs. The hosts share that as measures become metrics, they become less valuable over time.</li>
<li><a href="https://grantslatton.com/nobody-cares">&quot;Nobody Cares&quot; Blog Post</a>: They discuss the Grant Slatton blog post, interpreting it as a reflection of how engineers may be disempowered from caring about the overall product due to narrow focus and lack of agency in larger organizations.</li>
<li>“Shadification of the Web”: They introduce the term &quot;shadification&quot; to describe the growing trend of websites looking the same due to the widespread use of component libraries like Shadcn/ui (copy-paste) along with Material UI and Bootstrap.</li>
<li>Optimization vs. Innovation: They discuss how companies often prioritize optimization and A/B testing over true innovation, resulting in a lack of creativity and unique user experiences.</li>
<li>Performance Costs: Optimizations made at the expense of performance degrade the customer experience.</li>
<li>Blurred Ownership: In larger companies, it becomes harder to draw ownership lines when there are more people owning things and there isn&#x27;t clear defined guidelines.</li>
<li>Impact of AI on UI Creativity: The hosts explore the potential for AI to further standardize UI patterns and stifle creativity, as AI models are trained on existing designs and may not generate truly novel solutions.</li>
<li>AI Dependency: Discussion of companies choosing to support new libraries based on the amount of support AI models know about them and recommend them, which can lead to everything becoming the same.</li>
</ul>
<p>Personal Updates:</p>
<ul>
<li>Scott has been digging into <a href="https://github.com/yetone/avante.nvim">Avante</a>, finding it helpful for learning Go. He plans to build a backend service in Node and then refactor it to Go as a learning exercise.</li>
<li>Matt has been experimenting with Cursor&#x27;s Composer agent feature and a tool called <a href="https://block.github.io/goose/">Codename Goose</a>, which uses AI to infer functionality on his computer.</li>
</ul>]]></content:encoded>
            <itunes:duration>3888</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/2/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        

          <item>
            <!-- Required Item Elements -->
            <title>Vibe Coding When The Vibes Are Off</title>
            <enclosure url="https://assets.bikeshedpod.com/episodes/1/audio.mp3"
                      type="audio/mpeg"
                      length="85070912"/>
            <guid isPermaLink="false">1</guid>

            <!-- Recommended Item Elements -->
            <link>https://bikeshedpod.com/episodes/1/vibe-coding-when-the-vibes-are-off</link>
            <pubDate>Mon, 17 Mar 2025 15:40:11 GMT</pubDate>
            <description><![CDATA[Dillon, Matt & Scott dive into AI's impact on coding, discussing its role in daily work, how to use it effectively, and balancing creativity with automation in 2025.]]></description>
            <content:encoded><![CDATA[
<p><a href="https://dilloncurry.vercel.app/">Dillon</a>, <a href="https://matthamlin.me/">Matt</a> &amp; <a href="https://scottykaye.com/">Scott</a> record an episode with some semblance of quality.</p>
<p>The bikeshed boys dive directly into software&#x27;s hottest topic: AI. We believe in using AI in your day to day job to be more successful.</p>
<p>In this episode we discuss;</p>
<ul>
<li>use cases for AI in software development,</li>
<li>the fun tasks AI has taken away and,</li>
<li>how to be successful using AI tools.</li>
</ul>
<p>Listen to us explain navigating writing code in a world where more and more companies are increasingly advocating the usage of AI at your day job.</p>
<p>How do we continue to learn and grow as human while still maintaining fun, creativity and human interaction as an engineer in 2025?</p>
<p>AI is a powerful tool used correctly, however that AI will submit to confirmation bias and your role is to prompt AI to be as unbiased as possible to the best of your ability.</p>
<h3>Episode Summary:</h3>
<p>In this episode of The Bikeshed Podcast, hosts Scott Kaye, Matt Hamlin, and Dillon Curry discuss the role of AI in software development, sharing their experiences with various AI-powered tools and debating the impact of AI on engineering workflows, learning, and job satisfaction.</p>
<p>Key Topics Discussed:</p>
<ol>
<li>AI in Software Development</li>
</ol>
<ul>
<li>The hosts discuss how AI has become integral to software engineering, particularly for writing code and automating tasks.</li>
<li>Matt introduces the main discussion: how AI is used in development today and the broader implications of its adoption.</li>
</ul>
<ol start="2">
<li>Preferred AI Tools</li>
</ol>
<ul>
<li>Dillon shares that he used Cursor until his company restricted it, forcing him to switch to Copilot, which he finds inferior.</li>
<li>Scott uses NeoVim with NeoCodium and Avante, but acknowledges their limitations compared to Cursor.</li>
<li>Matt relies on Cursor at work, noting that his company prefers it over other AI tools.</li>
</ul>
<ol start="3">
<li>AI&#x27;s Impact on Development</li>
</ol>
<ul>
<li>AI enables developers to work faster but can remove the learning process.</li>
<li>Over-reliance on AI can lead to shallow understanding of code and a decrease in creativity.</li>
<li>AI often acts like a junior engineer whose code must be reviewed, making debugging a larger part of the job.</li>
<li>Using AI can lead to less collaboration with teammates, as developers tend to consult AI over their colleagues.</li>
</ul>
<ol start="4">
<li>Concerns About AI in Software Engineering</li>
</ol>
<ul>
<li>Some engineers feel less engaged with their work as AI handles boilerplate and repetitive tasks.</li>
<li>AI&#x27;s agreeable nature can reinforce incorrect assumptions, leading to confirmation bias.</li>
<li>Companies may use AI to increase efficiency and reduce hiring, raising concerns about job displacement.</li>
</ul>
<ol start="5">
<li>AI vs. Traditional Search (Google)</li>
</ol>
<ul>
<li>Unlike Google, where users must craft precise search queries, AI allows more fluid back-and-forth conversations.</li>
<li>AI can provide immediate answers but might not always offer the best or most optimized solution.</li>
</ul>
<ol start="6">
<li>The “No AI” Challenge</li>
</ol>
<ul>
<li>The hosts agree to a two-and-a-half-day challenge of coding without AI, to evaluate how it affects their work and problem-solving abilities.</li>
</ul>
<ol start="7">
<li>Game Segment – “Two Takes and a Fake”</li>
</ol>
<ul>
<li>Scott introduces a new segment where Matt and Dillon guess which of three AI-related tweets is fake.</li>
<li>Matt wins this round, showing a keen eye for spotting AI discourse trends.</li>
</ul>
<ol start="8">
<li>What&#x27;s New?</li>
</ol>
<ul>
<li>Dillon is learning piano and music theory to slow down and disconnect from work.</li>
<li>Matt is exploring Cloudflare workers and running Deepseek R1 locally for AI experimentation.</li>
<li>Scott is focused on improving his Golang skills and debating Cherry Pepsi Zero vs. Cherry Coke Zero.</li>
</ul>
<ol start="9">
<li>Closing Thoughts</li>
</ol>
<ul>
<li>The hosts discuss burnout, learning in tech, and how side projects keep programming fun.</li>
<li>They tease next week&#x27;s episode on burnout and side projects.</li>
</ul>
<p>The episode wraps up with some lighthearted banter and a call for listeners to like, subscribe, and share.</p>]]></content:encoded>
            <itunes:duration>3544</itunes:duration>
            <podcast:transcript url="https://assets.bikeshedpod.com/episodes/1/captions.vtt" type="text/vtt"/>
            <itunes:explicit>true</itunes:explicit>
          </item>
        
      </channel>
    </rss>