<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:posse="https://posseparty.com/2024/Feed">
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <link href="https://mikemcquaid.com/thoughts.xml" rel="self" type="application/atom+xml" />
  <link href="https://mikemcquaid.com/" rel="alternate" type="text/html" />
  <updated>2026-04-07T15:58:22+00:00</updated>
  <id>https://mikemcquaid.com/thoughts.xml</id>

  
  

  <title type="html">Mike McQuaid | Thoughts</title>
  <subtitle>CTPO and Homebrew Project Leader</subtitle>
  <author>
    <name>Mike McQuaid</name>
    
      <email>mike@mikemcquaid.com</email>
    
    
      <uri>https://mikemcquaid.com</uri>
    
  </author>

  
  

  

  
  
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>At work, you have two jobs: being good at your job, being pleasant to…</title>
      <link href="https://mikemcquaid.com/thoughts/20260402174600/" rel="alternate" type="text/html" title="At work, you have two jobs: being good at your job, being pleasant to…" />
      
      <published>2026-04-02T16:46:00+00:00</published>
      <updated>2026-04-02T16:46:00+00:00</updated>
      <id>https://mikemcquaid.com/thoughts/20260402174600/</id>
      
      <content type="html" xml:base="https://mikemcquaid.com/thoughts/20260402174600/"><![CDATA[<p>At work, you have two jobs: being good at your job, being pleasant to work with.</p>

<p>You can sometimes get by for a while not doing them both but it’s hard to survive doing neither.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[At work, you have two jobs: being good at your job, being pleasant to work with. You can sometimes get by for a while not doing them both but it's hard to survive doing neither.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":false,"attach_link":false}]]></posse:post>
      

      
      
        
        <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mikemcquaid.com/images/me.jpg" />
        <media:content medium="image" url="https://mikemcquaid.com/images/me.jpg" xmlns:media="http://search.yahoo.com/mrss/" />
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>Every time you open an issue or pull request with “No description…</title>
      <link href="https://mikemcquaid.com/thoughts/20260401123545/" rel="alternate" type="text/html" title="Every time you open an issue or pull request with “No description…" />
      
      <published>2026-04-01T11:35:45+00:00</published>
      <updated>2026-04-01T11:35:45+00:00</updated>
      <id>https://mikemcquaid.com/thoughts/20260401123545/</id>
      
      <content type="html" xml:base="https://mikemcquaid.com/thoughts/20260401123545/"><![CDATA[<p>Every time you open an issue or pull request with “No description provided”, an open source maintainer dies.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[Every time you open an issue or pull request with "No description provided", an open source maintainer dies.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":false,"attach_link":false}]]></posse:post>
      

      
      
        
        <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mikemcquaid.com/images/me.jpg" />
        <media:content medium="image" url="https://mikemcquaid.com/images/me.jpg" xmlns:media="http://search.yahoo.com/mrss/" />
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>One of the strengths of Homebrew, despite it being unpopular, is…</title>
      <link href="https://nesbitt.io/2026/03/31/npms-defaults-are-bad.html" rel="alternate" type="text/html" title="One of the strengths of Homebrew, despite it being unpopular, is…" />
      
        <link href="https://mikemcquaid.com/thoughts/20260331192849/" rel="related" type="text/html" title="One of the strengths of Homebrew, despite it being unpopular, is…" />
      
      <published>2026-03-31T18:28:49+00:00</published>
      <updated>2026-03-31T18:28:49+00:00</updated>
      <id>https://nesbitt.io/2026/03/31/npms-defaults-are-bad.html</id>
      
      <content type="html" xml:base="https://nesbitt.io/2026/03/31/npms-defaults-are-bad.html"><![CDATA[<p>One of the strengths of Homebrew, despite it being unpopular, is being willing to break backwards compatibility when necessary.</p>

<p>NPM’s unwillingness to do so reflects GitHub’s: both show excessive caution that harm both security and usability.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[One of the strengths of Homebrew, despite it being unpopular, is being willing to break backwards compatibility when necessary. NPM's unwillingness to do so reflects GitHub's: both show excessive caution that harm both security and usability.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"npm's Defaults Are Bad","summary":"The npm client's default settings are a root cause of JavaScript's recurring supply chain security problems."}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>My talk “Ruby on Guard (Rails)” from Haggis Ruby 2024 is now on…</title>
      <link href="https://www.youtube.com/watch?v=KgjFrEtMadQ" rel="alternate" type="text/html" title="My talk “Ruby on Guard (Rails)” from Haggis Ruby 2024 is now on…" />
      
        <link href="https://mikemcquaid.com/thoughts/20260325130259/" rel="related" type="text/html" title="My talk “Ruby on Guard (Rails)” from Haggis Ruby 2024 is now on…" />
      
      <published>2026-03-25T13:02:59+00:00</published>
      <updated>2026-03-25T13:02:59+00:00</updated>
      <id>https://www.youtube.com/watch?v=KgjFrEtMadQ</id>
      
      <content type="html" xml:base="https://www.youtube.com/watch?v=KgjFrEtMadQ"><![CDATA[<p>My talk “Ruby on Guard (Rails)” from Haggis Ruby 2024 is now on YouTube.</p>

<p>Weird watching in hindsight when I was very much pre-AI.</p>

<p>If anything, AI only makes the guardrails more important and valuable.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[My talk "Ruby on Guard (Rails)" from Haggis Ruby 2024 is now on YouTube. Weird watching in hindsight when I was very much pre-AI. If anything, AI only makes the guardrails more important and valuable.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"Ruby on Guard (Rails)","summary":"Ruby is powerful, and you want to move fast. So having guardrails can be useful?"}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>Job security for engineers is dead.</title>
      <link href="https://mikemcquaid.com/thoughts/20260319173434/" rel="alternate" type="text/html" title="Job security for engineers is dead." />
      
        <link href="https://mikemcquaid.com/thoughts/20260325130259/" rel="related" type="text/html" title="Job security for engineers is dead." />
      
      <published>2026-03-19T17:34:34+00:00</published>
      <updated>2026-03-19T17:34:34+00:00</updated>
      <id>https://mikemcquaid.com/thoughts/20260319173434/</id>
      
      <content type="html" xml:base="https://mikemcquaid.com/thoughts/20260319173434/"><![CDATA[<p>Job security for engineers is dead.</p>

<p>Career security is what matters.</p>

<p>You build it by learning, changing, taking risks, being reliable and stepping outside your lane.</p>

<p>Your employer won’t prioritise your long-term career.</p>

<p>You should.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[Job security for engineers is dead. Career security is what matters. You build it by learning, changing, taking risks, being reliable and stepping outside your lane. Your employer won’t prioritise your long-term career. You should.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":false,"attach_link":false}]]></posse:post>
      

      
      
        
        <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mikemcquaid.com/images/me.jpg" />
        <media:content medium="image" url="https://mikemcquaid.com/images/me.jpg" xmlns:media="http://search.yahoo.com/mrss/" />
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>This was a good read.</title>
      <link href="https://apenwarr.ca/log/20260316" rel="alternate" type="text/html" title="This was a good read." />
      
        <link href="https://mikemcquaid.com/thoughts/20260317091239/" rel="related" type="text/html" title="This was a good read." />
      
      <published>2026-03-17T09:12:39+00:00</published>
      <updated>2026-03-17T09:12:39+00:00</updated>
      <id>https://apenwarr.ca/log/20260316</id>
      
      <content type="html" xml:base="https://apenwarr.ca/log/20260316"><![CDATA[<p>This was a good read. Review is good but it does slow things down.</p>

<p>With async PR review, I prefer the “✅ with comments” review. Unblock the person from merging with trust they will read and resolve your comments first.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[This was a good read. Review is good but it does slow things down. With async PR review, I prefer the "✅ with comments" review. Unblock the person from merging with trust they will read and resolve your comments first.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"Every layer of review makes you 10x slower","summary":"We've all heard of those network effect laws: the value of a network goes up with the square of the number of members."}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>In case you missed it in Homebrew 5.1.0 release notes: we’re doing a…</title>
      <link href="https://docs.google.com/forms/d/e/1FAIpQLSeeNd7T0Zj9zOl8Y2MP1YITPk_qNUIP5knfCqSmOH2oB2O_UQ/viewform" rel="alternate" type="text/html" title="In case you missed it in Homebrew 5.1.0 release notes: we’re doing a…" />
      
        <link href="https://mikemcquaid.com/thoughts/20260313121433/" rel="related" type="text/html" title="In case you missed it in Homebrew 5.1.0 release notes: we’re doing a…" />
      
      <published>2026-03-13T12:14:33+00:00</published>
      <updated>2026-03-13T12:14:33+00:00</updated>
      <id>https://docs.google.com/forms/d/e/1FAIpQLSeeNd7T0Zj9zOl8Y2MP1YITPk_qNUIP5knfCqSmOH2oB2O_UQ/viewform</id>
      
      <content type="html" xml:base="https://docs.google.com/forms/d/e/1FAIpQLSeeNd7T0Zj9zOl8Y2MP1YITPk_qNUIP5knfCqSmOH2oB2O_UQ/viewform"><![CDATA[<p>In case you missed it in Homebrew 5.1.0 release notes: we’re doing a short user survey to inform future development.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[In case you missed it in Homebrew 5.1.0 release notes: we're doing a short user survey to inform future development.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"Homebrew User Survey","summary":"Questions for current users to inform future Homebrew development"}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>Today I’m proud to announce the release of Homebrew 5.1.0.</title>
      <link href="https://brew.sh/2026/03/10/homebrew-5.1.0/" rel="alternate" type="text/html" title="Today I’m proud to announce the release of Homebrew 5.1.0." />
      
        <link href="https://mikemcquaid.com/thoughts/20260311203451/" rel="related" type="text/html" title="Today I’m proud to announce the release of Homebrew 5.1.0." />
      
      <published>2026-03-11T20:34:51+00:00</published>
      <updated>2026-03-11T20:34:51+00:00</updated>
      <id>https://brew.sh/2026/03/10/homebrew-5.1.0/</id>
      
      <content type="html" xml:base="https://brew.sh/2026/03/10/homebrew-5.1.0/"><![CDATA[<p>Today I’m proud to announce the release of Homebrew 5.1.0. The most significant changes since 5.0.0 are expanded <code class="language-plaintext highlighter-rouge">brew bundle</code> support, <code class="language-plaintext highlighter-rouge">brew version-install</code>, new <code class="language-plaintext highlighter-rouge">-full</code> formula handling and installer updates.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[Today I'm proud to announce the release of Homebrew 5.1.0. The most significant changes since 5.0.0 are expanded `brew bundle` support, `brew version-install`, new `-full` formula handling and installer updates.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"5.1.0","summary":"Homebrew 5.1.0 has been released."}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>Great post here from Andrew, particularly on why Homebrew doesn’t…</title>
      <link href="https://nesbitt.io/2026/03/04/package-managers-need-to-cool-down.html#language-vs-system-package-managers" rel="alternate" type="text/html" title="Great post here from Andrew, particularly on why Homebrew doesn’t…" />
      
        <link href="https://mikemcquaid.com/thoughts/20260305172958/" rel="related" type="text/html" title="Great post here from Andrew, particularly on why Homebrew doesn’t…" />
      
      <published>2026-03-05T17:29:58+00:00</published>
      <updated>2026-03-05T17:29:58+00:00</updated>
      <id>https://nesbitt.io/2026/03/04/package-managers-need-to-cool-down.html#language-vs-system-package-managers</id>
      
      <content type="html" xml:base="https://nesbitt.io/2026/03/04/package-managers-need-to-cool-down.html#language-vs-system-package-managers"><![CDATA[<p>Great post here from Andrew, particularly on why Homebrew doesn’t need a NPM-style cooldown.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[Great post here from Andrew, particularly on why Homebrew doesn't need a NPM-style cooldown.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"Package Managers Need to Cool Down","summary":"A survey of dependency cooldown support across package managers and update tools."}]]></posse:post>
      

      
      
    </entry>
  
    <entry>
      
      
      
      
      
      
      
      
      
      

      <title>Should be obvious but seems it’s not: don’t spam OSS maintainers or…</title>
      <link href="https://simonwillison.net/guides/agentic-engineering-patterns/anti-patterns/" rel="alternate" type="text/html" title="Should be obvious but seems it’s not: don’t spam OSS maintainers or…" />
      
        <link href="https://mikemcquaid.com/thoughts/20260305172641/" rel="related" type="text/html" title="Should be obvious but seems it’s not: don’t spam OSS maintainers or…" />
      
      <published>2026-03-05T17:26:41+00:00</published>
      <updated>2026-03-05T17:26:41+00:00</updated>
      <id>https://simonwillison.net/guides/agentic-engineering-patterns/anti-patterns/</id>
      
      <content type="html" xml:base="https://simonwillison.net/guides/agentic-engineering-patterns/anti-patterns/"><![CDATA[<p>Should be obvious but seems it’s not: don’t spam OSS maintainers or coworkers with AI code you’ve not reviewed yourself.</p>

<p>For coworkers only, sometimes fine explaining your testing and why reviewed isn’t necessary e.g. a one-time script.</p>]]></content>

      
      
      
      

      <author>
        <name>Mike McQuaid</name>
        
          <email>mike@mikemcquaid.com</email>
        
        
          <uri>https://mikemcquaid.com</uri>
        
      </author>

      
      
        <summary type="html"><![CDATA[Should be obvious but seems it's not: don't spam OSS maintainers or coworkers with AI code you've not reviewed yourself. For coworkers only, sometimes fine explaining your testing and why reviewed isn't necessary e.g. a one-time script.]]></summary>
      

      
      
        <posse:post format="json"><![CDATA[{"format_string":"{{content}}","append_url":true,"attach_link":false,"append_url_spacer":"\n\n","platform_overrides":{"bsky":{"append_url":false,"attach_link":true},"threads":{"append_url":false,"attach_link":true},"linkedin":{"append_url":false,"attach_link":true}},"title":"Anti-patterns: things to avoid","summary":"Agentic Engineering Patterns"}]]></posse:post>
      

      
      
    </entry>
  
</feed>
