<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thoughtbot="https://thoughtbot.com/feeds/" xmlns:feedpress="https://feed.press/xmlns" xmlns:media="http://search.yahoo.com/mrss/" xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <feedpress:locale>en</feedpress:locale>
  <link rel="hub" href="https://feedpress.superfeedr.com/"/>
  <title>Giant Robots Smashing Into Other Giant Robots</title>
  <subtitle>Written by thoughtbot, your expert partner for design and development.
</subtitle>
  <id>https://robots.thoughtbot.com/</id>
  <link href="https://thoughtbot.com/blog"/>
  <link href="https://feed.thoughtbot.com/" rel="self"/>
  <updated>2026-09-10T00:00:00+00:00</updated>
  <author>
    <name>thoughtbot</name>
  </author>
  <entry>
    <title>5 easy, actionable tips for software development in healthcare</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17443867/5-easy-actionable-tips-for-software-development-in-healthcare"/>
    <author>
      <name>Michelle Taute</name>
    </author>
    <id>https://thoughtbot.com/blog/5-easy-actionable-tips-for-software-development-in-healthcare</id>
    <published>2026-09-10T00:00:00+00:00</published>
    <updated>2026-09-09T16:13:14Z</updated>
    <content type="html"><![CDATA[<p>We’re still thinking about some of the finer points of our recent panel about <a href="https://www.youtube.com/watch?v=nqGSXQcPAJw">Building Secure Healthcare Systems</a>. You may have seen our <a href="https://thoughtbot.com/blog/ai-makes-creating-software-faster-but-in-regulated-industries-judgment-matters-more">big picture thoughts</a> in some <a href="https://thoughtbot.com/blog/how-healthcare-tech-teams-innovate-while-balancing-speed-and-security">recent blog posts</a>, but we know it’s also nice to have some actionable tips you can fold into your workflow right now.</p>

<p>Here are five quick software development in healthcare tips from our panelists: David Pace, Executive Director at Merck Research Labs IT Enablement and User Experience, thoughtbot Development <a href="https://thoughtbot.com/blog/authors/clarissa-borges">Team Lead Clarissa Borges</a> and thoughtbot <a href="https://thoughtbot.com/blog/authors/joel-quenneville">Principal Developer Joël Quenneville.</a></p>
<h2 id="1-plan-now-for-third-party-vendor-outages-later">
  
    1. Plan now for third-party vendor outages later
  
</h2>

<p>Your healthcare software probably depends on at least one third-party vendor, but when that data source goes down, you don’t have to completely disappoint users. For a recent project, Joël and his teammates worked on deploying a dual track for users. An external third-party aggregator provided high-fidelity data on health insurance plans, but if it was down, the software was able to serve lower-fidelity information from a smaller local data set.</p>
<h2 id="2-think-about-“ai-for-developers”-differently-from-“ai-in-the-product”">
  
    2. Think about “AI for developers” differently from “AI in the product”
  
</h2>

<p>Joël also recommends thinking about your AI usage as two different risk profiles. The first one needs less scrutiny: AI tools that developers run locally to help them write code, ideate or solve problems. But the second has a higher risk profile and deserves to be locked down much more: Any AI that’s embedded in the product and touches customer data. This classification shorthand can help you quickly decide where to spend your security time.</p>
<h2 id="3-automate-infrastructure-compliance-between-audits">
  
    3. Automate infrastructure compliance between audits
  
</h2>

<p>Staying SOC 2 compliant is critical for some projects, but it’s easy to slip out of compliance with something like a cluster upgrade in Kubernetes. Unless you conduct a tedious audit, you’re likely to miss that compliance misstep. It’s why Clarissa uses <a href="https://www.vanta.com/">a compliance monitoring service called Vanta</a> that continuously audits data and infrastructure against compliance. It doesn’t cover every single compliance issue, but it provides a large safety net.</p>
<h2 id="4-create-an-ai-agent-to-find-security-vulnerabilities">
  
    4. Create an AI agent to find security vulnerabilities
  
</h2>

<p>Joël built a simple penetration testing agent that scans code, creates hypotheses for potential vectors of attack then writes them up as actual attacks in a test file. Next the agent executes the test file and reports on what went wrong. You end up with a vulnerability report and test file where everything that’s a potential threat has a failing test. This makes it easy to hand over to a developer—or another AI agent—to address.</p>
<h2 id="5-carve-out-time-for-curiosity-and-experimentation">
  
    5. Carve out time for curiosity and experimentation
  
</h2>

<p>Inspired by <a href="https://thoughtbot.com/blog/how-to-introduce-investment-day-at-your-company">thoughtbot’s investment time</a>, David Pace at Merck asks everyone in his organization to set time aside for self-directed tech projects—work-related or not. His personal explorations have included an educational version of Wordle where every answer related to research IT terms. Giving your team room to experiment helps create a strong culture that nurtures curiosity, continuous learning and new ideas.</p>

<p>Wish you had this kind of thinking to add to your healthcare tech team every day? We’d love to help shape your next innovation project or deliver custom software development for healthcare faster. <a href="https://thoughtbot.com/industries/health-tech">Let’s talk.</a></p>

<p>**</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/how-to-use-chatgpt-to-find-custom-software-consultants">How to Use ChatGPT to Find Custom Software Consultants</a></li>
<li><a href="https://thoughtbot.com/blog/from-idea-to-impact-the-role-of-rapid-prototyping-in-agetech">From idea to impact: The role of rapid prototyping in AgeTech</a></li>
<li><a href="https://thoughtbot.com/blog/protecting-user-data-in-HIPAA-compliant-staging-environments">Protecting User Data in HIPAA Compliant Staging Environments</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17443867.gif" height="1" width="1"/>]]></content>
    <summary>Big-picture thinking is great, but sometimes you just want tactics you can use today. Here are five quick tips from our recent healthcare security panel, covering everything from handling vendor outages to building your own AI-powered security scanner.</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
  <entry>
    <title>Announcing importmap-update: automated dependency updates for importmap-rails</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17443107/announcing-importmap-update-automated-dependency-updates-for-importmap-rails"/>
    <author>
      <name>Neil Carvalho</name>
    </author>
    <id>https://thoughtbot.com/blog/announcing-importmap-update-automated-dependency-updates-for-importmap-rails</id>
    <published>2026-09-09T00:00:00+00:00</published>
    <updated>2026-09-08T12:49:07Z</updated>
    <content type="html"><![CDATA[<p>Dependabot helps you keep your gems updated, and it also supports other
package managers such as NPM. However, it doesn’t know anything about
the JavaScript packages in a Rails app that uses <a href="https://github.com/rails/importmap-rails">importmap-rails</a>, and the
<a href="https://github.com/dependabot/dependabot-core/issues/6675">feature request</a> for that has been open since February 2023.</p>

<p>That means that when you dropped Node from your Rails app, you also dropped the
tooling that would tell you a pinned package had fallen behind or picked up a
published advisory.</p>

<p><a href="https://github.com/marketplace/actions/importmap-update">importmap-update</a> is a GitHub Action that closes that gap. It runs
<code>bin/importmap outdated</code> and <code>bin/importmap audit</code>, opens pull requests for what
it finds, and keeps those pull requests in sync on every run after that.</p>
<h2 id="why-importmaps-get-left-behind">
  
    Why importmaps get left behind
  
</h2>

<p>An importmap-rails app records its JavaScript dependencies in
<code>config/importmap.rb</code>. Running <code>bin/importmap pin react</code> resolves the package
through a CDN like JSPM, downloads it into <code>vendor/javascript</code>, and writes a
one-line pin with the version in a trailing comment:</p>
<div class="highlight"><pre class="highlight ruby"><code><span class="n">pin</span> <span class="s2">"react"</span> <span class="c1"># @19.1.0</span>
</code></pre></div>
<p>Your own asset pipeline serves the vendored copy from there. What lands in
source control is that comment and the JavaScript file itself, so there’s no
<code>package.json</code> and no lockfile for Dependabot to read. The information it would
want is available, just somewhere else: <code>bin/importmap outdated</code> compares your
pins against the npm registry, and <code>bin/importmap audit</code> checks them for known
advisories.</p>

<p>Half of that is already wired up for you. Since Rails 7.2, new apps are
generated with a <code>.github/workflows/ci.yml</code> that includes a <code>scan_js</code> job:</p>
<div class="highlight"><pre class="highlight yaml"><code><span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Scan for security vulnerabilities in JavaScript dependencies</span>
  <span class="na">run</span><span class="pi">:</span> <span class="s">bin/importmap audit</span>
</code></pre></div>
<p>A published advisory against one of your pins will fail the build, which is the
part you’d want to hear about first. It still stops at telling you, though.
Someone has to look up the fixed version and pin it by hand.</p>

<p>Nothing runs <code>bin/importmap outdated</code>. Ordinary version drift stays invisible
until it turns into an advisory, and by then you’re upgrading in a hurry.</p>
<h2 id="getting-started">
  
    Getting started
  
</h2>

<p>Allow GitHub Actions to create pull requests in your repository settings
(Actions &gt; General &gt; Workflow permissions), then add a workflow:</p>
<div class="highlight"><pre class="highlight yaml"><code><span class="c1"># .github/workflows/importmap-updates.yml</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">Importmap updates</span>
<span class="na">on</span><span class="pi">:</span>
  <span class="na">schedule</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="na">cron</span><span class="pi">:</span> <span class="s2">"</span><span class="s">0</span><span class="nv"> </span><span class="s">9</span><span class="nv"> </span><span class="s">*</span><span class="nv"> </span><span class="s">*</span><span class="nv"> </span><span class="s">1"</span>   <span class="c1"># Mondays 09:00 UTC</span>
  <span class="na">workflow_dispatch</span><span class="pi">:</span>

<span class="na">permissions</span><span class="pi">:</span>
  <span class="na">contents</span><span class="pi">:</span> <span class="s">write</span>
  <span class="na">pull-requests</span><span class="pi">:</span> <span class="s">write</span>

<span class="na">jobs</span><span class="pi">:</span>
  <span class="na">update</span><span class="pi">:</span>
    <span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span>
    <span class="na">steps</span><span class="pi">:</span>
      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v7</span>
      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">ruby/setup-ruby@v1</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">bundler-cache</span><span class="pi">:</span> <span class="kc">true</span>

      <span class="pi">-</span> <span class="na">uses</span><span class="pi">:</span> <span class="s">thoughtbot/importmap-update@v1</span>
        <span class="na">with</span><span class="pi">:</span>
          <span class="na">github-token</span><span class="pi">:</span> <span class="s">${{ secrets.GITHUB_TOKEN }}</span>
</code></pre></div>
<p>That’s the whole setup. Configuration is optional, and the defaults match what
you’d probably configure anyway.</p>
<h2 id="grouping">
  
    Grouping
  
</h2>

<p>Opening a pull request for every outdated package gets noisy fast, and rolling
all of them into one pull request makes for a diff nobody enjoys reviewing. The
action splits updates into security, patch, minor, and major buckets, and you
choose a strategy for each one in <code>.github/importmap-updates.yml</code>:</p>
<div class="highlight"><pre class="highlight yaml"><code><span class="na">version</span><span class="pi">:</span> <span class="m">1</span>

<span class="na">grouping</span><span class="pi">:</span>
  <span class="na">security</span><span class="pi">:</span> <span class="pi">{</span> <span class="nv">strategy</span><span class="pi">:</span> <span class="nv">individual</span> <span class="pi">}</span>   <span class="c1"># one PR per vulnerable package</span>
  <span class="na">patch</span><span class="pi">:</span>    <span class="pi">{</span> <span class="nv">strategy</span><span class="pi">:</span> <span class="nv">grouped</span> <span class="pi">}</span>      <span class="c1"># one PR for all patch bumps</span>
  <span class="na">minor</span><span class="pi">:</span>    <span class="pi">{</span> <span class="nv">strategy</span><span class="pi">:</span> <span class="nv">grouped</span> <span class="pi">}</span>      <span class="c1"># one PR for all minor bumps</span>
  <span class="na">major</span><span class="pi">:</span>    <span class="pi">{</span> <span class="nv">strategy</span><span class="pi">:</span> <span class="nv">individual</span> <span class="pi">}</span>   <span class="c1"># one PR per major bump</span>

<span class="na">open_pull_requests_limit</span><span class="pi">:</span> <span class="m">10</span>
<span class="na">labels</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">dependencies</span><span class="pi">,</span> <span class="nv">javascript</span><span class="pi">,</span> <span class="nv">importmap</span><span class="pi">]</span>
<span class="na">branch_prefix</span><span class="pi">:</span> <span class="s2">"</span><span class="s">importmap-updates"</span>
</code></pre></div>
<p>Every field is optional. Both <code>open_pull_requests_limit</code> and
<code>open-pull-requests-limit</code> work, which saves you a round of debugging if you’re
copying from a Dependabot config.</p>
<h2 id="security-updates-are-handled-differently">
  
    Security updates are handled differently
  
</h2>

<p>A vulnerable package becomes a security pull request even when the fix happens
to be a major version bump. The body still records the bump kind, so reviewers
know to expect breaking changes before they open the diff.</p>

<p>Security pull requests are also exempt from <code>open_pull_requests_limit</code>. When the
budget is tight, we fill the remaining slots with major bumps first, then minor,
then patch, since the bigger bumps are the ones somebody needs to set aside time
for.</p>
<h2 id="what-happens-on-the-next-run">
  
    What happens on the next run
  
</h2>

<p>An open pull request goes stale as soon as another version ships. On each run,
the action brings its own pull requests back in line with what’s actually
outdated: the ones whose versions have moved get updated in place, and the ones
whose packages aren’t outdated anymore get closed with a comment saying why.
Pull requests it didn’t open are left alone, even on a branch matching your
configured prefix.</p>
<h2 id="try-it-in-dry-run-mode-first">
  
    Try it in dry-run mode first
  
</h2>

<p>Set <code>dry-run: "true"</code> and the action runs end to end without side effects. It
reads your importmap, builds the plan, compares it against your open pull
requests, and logs every operation it would have performed. That’s worth doing
on a repository whose JavaScript dependencies haven’t been looked at in a while,
before it opens 10 pull requests at once.</p>
<h2 id="alternatives">
  
    Alternatives
  
</h2>

<p><a href="https://depfu.com">Depfu</a> is the only one I could find. It has supported import maps since 2023,
it’s free for public repos, and it’s a paid hosted service for private ones. If
you’d rather have one service watching your gems and your JavaScript together,
it’s worth a look.</p>

<p>Issues and pull requests are welcome on <a href="https://github.com/thoughtbot/importmap-update">GitHub</a>.</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/github-com-thoughtbot-cleanup">github.com/thoughtbot cleanup</a></li>
<li><a href="https://thoughtbot.com/blog/this-week-in-open-source-2">This Week in Open Source</a></li>
<li><a href="https://thoughtbot.com/blog/this-week-in-open-source-3">This week in open source</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17443107.gif" height="1" width="1"/>]]></content>
    <summary>Dependabot keeps your gems current, but it doesn't know about the JavaScript packages pinned in your Rails importmap. We're releasing a GitHub Action that opens pull requests for the ones that are outdated or vulnerable.</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
  <entry>
    <title>When to vibe code an app and when to hire someone</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17442233/when-to-vibe-code-an-app-and-when-to-hire-someone"/>
    <author>
      <name>Ran Craycraft</name>
    </author>
    <id>https://thoughtbot.com/blog/when-to-vibe-code-an-app-and-when-to-hire-someone</id>
    <published>2026-09-08T00:00:00+00:00</published>
    <updated>2026-09-08T10:33:18Z</updated>
    <content type="html"><![CDATA[<p>I think you should vibe code your app. At least at first.</p>

<p>LLMs have made it incredibly cheap to turn an idea into something you can use. That’s especially exciting for ideas that would have never survived the old cost of software development. Every company has things that might be useful to build someday, but probably aren’t worth putting six people on for three months just to find out.</p>

<p>Now you can find out for virtually nothing.</p>

<p>Where companies get into trouble is assuming that because AI made it cheap to discover a product, it also made it cheap to build that product well. Those are two very different problems.</p>

<p>My advice is to vibe code while you’re figuring out what to build. Once you know you’ve found something valuable, it’s time to decide whether the code you wrote to answer the question is really the code you want to build the answer on.</p>
<h2 id="vibe-coding-makes-ideas-cheaper-to-explore">
  
    Vibe coding makes ideas cheaper to explore
  
</h2>

<p>One of the most expensive parts of software development has always been getting far enough into an idea to discover whether it’s any good. A new internal tool might save hundreds of hours a year, but is it worth taking developers off the core roadmap to find out? A new customer experience might open another revenue stream, but how much should you invest before a customer has actually seen it?</p>

<p>AI has dramatically reduced the cost of answering those questions. Someone who understands the problem can make something surprisingly sophisticated, put it in front of people, and learn from what happens. That’s not half-baked software development. That’s a better way to prototype.</p>

<p>I’ve written before that <a href="https://thoughtbot.com/blog/a-prototype-is-not-a-product-it-s-a-conversation">a prototype is not a product, it’s a conversation</a>. Vibe coding lets a lot more people join that conversation.</p>
<h2 id="the-dangerous-moment-is-when-the-prototype-works">
  
    The dangerous moment is when the prototype works
  
</h2>

<p>A bad prototype is easy to throw away. A good prototype can be much more dangerous.</p>

<p>It looks like software. It smells like software. It even behaves like software. People like it. And maybe someone has already started depending on it to do their job. Suddenly, throwing anything away feels wasteful.
Beware of confirmation bias. People will be more likely to give you positive feedback on your idea which can create an illusion that there is more buy in or value in the prototype. We use <a href="https://thoughtbot.com/services/shaping-sprint">shaping sprints</a> to help us combat this and ensure what we build is actually what people want and need.</p>

<p>But a prototype is optimized for learning quickly. A production application has a different job. It needs to be secure, reliable, maintainable, <a href="https://thoughtbot.com/blog/your-vibe-coded-website-is-going-to-get-you-fined">accessible</a>, observable, and able to change as the business changes. Software has always had an iceberg problem. AI just got remarkably good at generating the part above the water.</p>

<p><img src="https://images.thoughtbot.com/v0p3u0e0w8ywi8xfgg57phoib8mh_iceberg_lo.png" alt=""></p>

<p>This is part of what I meant when I wrote <a href="https://thoughtbot.com/blog/don-t-hire-thoughtbot-to-write-code">don’t hire thoughtbot to write code</a>. Code is becoming cheaper to produce. The judgment surrounding that code is becoming more valuable.</p>
<h2 id="when-should-you-vibe-code">
  
    When should you vibe code?
  
</h2>

<p>Vibe code aggressively when the biggest risk is that the idea is wrong.</p>

<p>If you don’t know whether customers want something, whether an internal workflow makes sense, or whether a new product deserves funding, make the cheap version. Change it. Put it in front of people again. Learn what you were wrong about.</p>

<p>This is particularly interesting for established companies. There are probably people inside your company who understand a customer or operational problem incredibly well but have never been able to get their idea onto an engineering roadmap. Now they can make the idea tangible before asking the company to make a major investment.</p>

<p>Vibe coding doesn’t just make software cheaper to build. It also makes software cheaper to say no to.</p>
<h2 id="when-should-you-hire-a-professional-team">
  
    When should you hire a professional team?
  
</h2>

<p>Start spending real money on professional product development when you have evidence that the idea deserves a real investment, but not a minute before.</p>

<p>That point comes sooner when the application <a href="https://thoughtbot.com/blog/what-founders-told-us-about-working-with-ai-tools-for-startups">handles sensitive data</a>, processes money, integrates with important systems, supports a critical business process, or will be used by a significant number of customers or employees.</p>

<p>It comes much sooner in regulated industries. A vibe-coded healthcare prototype can be a fantastic way to test a patient experience. That doesn’t mean I want the same prototype storing <a href="https://thoughtbot.com/blog/health-tech-hipaa-and-humans">protected health information</a> next week.</p>

<p>Security, privacy, accessibility, auditability, permissions, and compliance aren’t things you sprinkle onto an application once people like the demo. They should influence how the application should be built in the first place.</p>

<p>I’ve written more about this in <a href="https://thoughtbot.com/blog/ai-makes-creating-software-faster-but-in-regulated-industries-judgment-matters-more">AI makes creating software faster, but in regulated industries, judgment matters more</a>.</p>
<h2 id="is-it-cheaper-to-fix-a-vibe-coded-app-or-rebuild-it">
  
    Is it cheaper to fix a vibe-coded app or rebuild it?
  
</h2>

<p>Over the last couple of years, we’ve been asked to evaluate a number of substantially vibe-coded applications. Some of these have been exceptionally well-written, but most have had serious gaps. So far, particularly in regulated industries, we haven’t seen a single one where fixing the existing application was clearly less work than rebuilding it properly.</p>

<p>That will change as the tools improve. But I also think we’re asking the wrong question.</p>

<p>If you spent $15,000 building a prototype that saved you from spending $200,000 building the wrong product, that was money well spent even if we throw away every line of code. The return on a prototype should be measured in what you learned, not how many lines of code you managed to keep.</p>

<p>A good vibe-coded application might clarify the workflows, expose bad assumptions, prove demand, or secure funding. By the time a professional team gets involved, you may know far more about what should be built than if you’d hired them on day one.</p>

<p>The prototype wasn’t the first version of the product. It was the research that made the first version better.</p>
<h2 id="how-to-decide">
  
    How to decide
  
</h2>

<p>When you’re uncertain about the idea, optimize for learning and vibe code it. Once you know the idea is valuable and the uncertainty shifts to how to make it secure, scalable, maintainable, and ready to become part of a real business, bring in experienced product designers and developers.</p>

<p>There is an exception if you genuinely want to become the long-term developer of the application yourself. If so, keep going and keep learning.</p>

<p>But if your actual job is going to be running the business, leading a product organization, practicing medicine, selling insurance, or doing anything other than becoming the developer of this application, don’t accidentally give yourself a second career because the prototype was fun and easy to make.</p>

<p><img src="https://images.thoughtbot.com/udxk1ct32fvwi2rw5vxp5sw9ysb9_how-to-decide.png" alt=""></p>

<p>I want companies to vibe code more, not less. There are good ideas sitting inside companies right now that would have been irresponsible to spend $150,000 exploring a few years ago. We should <a href="https://thoughtbot.com/blog/how-to-launch-a-lovable-mvp-in-2026">explore them</a> now.</p>

<p>Just don’t assume there needs to be a continuous line of code between the thing that helped you decide what to build and the thing your business ultimately depends on.</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/how-to-use-chatgpt-to-find-custom-software-consultants">How to Use ChatGPT to Find Custom Software Consultants</a></li>
<li><a href="https://thoughtbot.com/blog/from-idea-to-impact-the-role-of-rapid-prototyping-in-agetech">From idea to impact: The role of rapid prototyping in AgeTech</a></li>
<li><a href="https://thoughtbot.com/blog/theme-based-iterations">Theme-Based Iterations</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17442233.gif" height="1" width="1"/>]]></content>
    <summary>Vibe coding can be a great way to prototype an app, but when should you bring in professional developers? Here’s how to decide.</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
  <entry>
    <title>Why leaders have to know about PMS 🩸</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17441483/why-leaders-have-to-know-about-pms"/>
    <author>
      <name>Svenja Schäfer</name>
    </author>
    <id>https://thoughtbot.com/blog/why-leaders-have-to-know-about-pms</id>
    <published>2026-09-07T00:00:00+00:00</published>
    <updated>2026-09-04T13:30:18Z</updated>
    <content type="html"><![CDATA[<p>Let’s talk about PMS, premenstrual syndrome and why it’s utterly important for you, as a leader, to know about it.</p>
<h2 id="you-can39t-choose-who-you-lead">
  
    You can’t choose who you lead!
  
</h2>

<p>We call them Engineering Managers, Product Managers, Directors, and so on. And while these folks sometimes lead people who do a similar job, like for example, developers – in the end, they lead an individual. Their job title actually doesn’t say a lot about how you have to lead them. It doesn’t matter if you manage only designers, only developers or a combination of both. You manage people. And for that, you need people skills. Empathy. Knowledge. Experience.</p>

<p>Throughout your career as a manager, you will meet various kinds of people. Different age, different background, different personalities, people with different ways to learn. It’s your responsibility to figure out how to manage the individual person. How to help them grow. Surely, this can become quite challenging the more people you lead. Which is usually the reason, you start with leading only one or two. And with time and experience, more will follow.</p>
<h2 id="the-gender-gap">
  
    The gender gap
  
</h2>

<p>According to the <a href="https://pubmed.ncbi.nlm.nih.gov/41065140/">We need more women in STEM</a> abstract, only 26.7% of people working in the tech sector in the UK are women. In the US, <a href="https://worldmetrics.org/tech-industry-employment-statistics/">worldmetrics</a> (see the “Gender Representation” section) shows a percentage of 25.9%. These low numbers highlight a non-irrelevant issue for leaders: they get way fewer opportunities to gain experience leading people who menstruate than people who don’t.</p>

<p>At the same time, the attrition rate is immense: <a href="https://womenhack.com/women-in-tech-statistics/">Womenhack.com</a>, for example, shows in the “Retention &amp; Attrition” section, that 50% of women are leaving tech by the age of 35 and that the workplace culture is the primary reason for that. Interesting and unfortunately not surprising, or is it? Good news, it doesn’t need to stay like this. Culture can change. Leadership can change. You can change.</p>
<h2 id="workplace-culture-–-and-what-pms-has-to-do-with-it">
  
    Workplace culture – and what PMS has to do with it
  
</h2>

<p>In Germany, we have the saying “Der Fisch stinkt vom Kopf her” (“A fish rots from the head down”) which is used to describe that systematic issues often start on the leadership level. But it mustn’t be issues that start at the top, it can as well be defining a positive and safe environment that originates there. And creating a safe environment might start by understanding the effect PMS has on team members.</p>

<p>Said effect can be quite different for each individual as symptoms of PMS and similar syndromes vary. You don’t have to remember all of them. It’s even okay if you forget that PMS stands for premenstrual syndrome when you are done reading. It’s awareness I’m after.</p>

<p>Depressed mood and mood swings are 2 common symptoms. Headaches, fatigue, muscle and breast pain, inability to concentrate, weight gain, a feeling of being overwhelmed and anxiety are others. There are more and intensity varies – what’s important to remember is that these symptoms appear regularly, possibly monthly, without any input from the person. It’s a condition. Not a choice.</p>
<h2 id="no-special-treatment">
  
    No special treatment
  
</h2>

<p>Knowing about PMS doesn’t mean you have to give out special treatment. It means to be aware and to offer support. Someone who has a hard time following a meeting mentally doesn’t need to hear that they have to stay focused. Let them watch the recording at a later time if possible. Be aware that someone suffering from cramps might lie down during the day. And someone with a challenging client might need support when a difficult situation arises. Offer guidance on how to <a href="https://thoughtbot.com/blog/3-question-framework-how-to-respond-without-reacting">communicate when being on edge</a>.</p>

<p>Learning about PMS and what it means for you as a leader can be a starting point to shift workplace culture for the better, to reduce attrition and to <a href="https://thoughtbot.com/blog/you-cannot-not-lead">lead intentionally</a>.</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/building-inclusive-remote-workplaces">Fostering Inclusive Remote Workplaces</a></li>
<li><a href="https://thoughtbot.com/blog/moving-beyond-not-getting-over-imposter-syndrome">Moving Beyond, Not Getting Over, Imposter Syndrome</a></li>
<li><a href="https://thoughtbot.com/blog/feedback-training-and-resources">Upskill your team’s Feedback and Communication Skills</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17441483.gif" height="1" width="1"/>]]></content>
    <summary>It's time that every person holding a management position learn about premenstrual syndrome, PMS.</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
  <entry>
    <title>Is AI ruining my brain?</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17439440/is-ai-ruining-my-brain"/>
    <author>
      <name>Sally Hall</name>
    </author>
    <id>https://thoughtbot.com/blog/is-ai-ruining-my-brain</id>
    <published>2026-09-04T00:00:00+00:00</published>
    <updated>2026-09-03T13:38:10Z</updated>
    <content type="html"><![CDATA[<p>I am an AI skeptic/hater/slow adopter, due to a combination of concerns about the ethics and environmental impact of AI and the fact that I like doing things myself. I knit my own socks, I built a swing for my porch this summer, and every Thanksgiving I make pies from scratch — even the crust (do you like my handmade em dash?). I truly enjoy the work of writing code, so I have been hesitant to involve AI in my workflow.</p>

<p>But recently, I’ve been working on a project where the team uses a lot of AI and the domain is very complex, so I’ve reluctantly been using it to help me understand what is happening in the app and how changes I make affect areas of the app I didn’t even know existed. As I get more and more comfortable turning to Cursor to help me get unstuck in my code, I do not like what is happening to my brain.</p>

<p>I keep knitting near my desk so I have a way to keep my hands busy in meetings and I’ve been picking it up while waiting for a response from Cursor sometimes. I’m currently working on a pretty complicated sweater pattern with minimal instructions that are hard to interpret. I recently stepped back to look at my work and saw the pattern had gotten wonky a few rows back and realized my first instinct was to turn to AI. This horrified me.</p>

<p>The whole reason I enjoy knitting is the process. I spend dozens of hours and more money than I’d like to admit on yarn to create a sweater that sometimes looks no better than a $20 one I could have gotten on Amazon. But that’s not the point! I enjoy knitting. I like using my brain and my hands and figuring out solutions to problems. It feels amazing to respond to “I like your sweater” with “THANKS I MADE IT ALL BY MYSELF”. Turning to AI when I encounter a bump in the road is the opposite of that. And to be totally honest, I have tried asking ChatGPT for help on projects before and it didn’t help at all. So why did I find myself reaching for AI to fix my sweater?</p>

<p>Apparently, I can’t isolate the way I solve problems at work from the rest of my life. Even if I can justify using it on my work project (a big if), I’m not a character in <a href="https://en.wikipedia.org/wiki/Severance_(TV_series)">Severance</a>. What I do at work affects my whole brain. Getting into the habit of handing AI tedious tasks and asking it to explain things I’m not familiar with instead of trying to figure them out myself seems to have decreased how much work I’m willing to put into hard things outside of work. How far will it creep into my life? When does asking Cursor to pass the right props into the right React components turn into <a href="https://x.com/sama/status/2083221585792762171?lang=en">outsourcing talking to my kids to ChatGPT</a>?</p>

<p>I don’t have the answers to any of this, but I can be proud of something: my first instinct was to ask ChatGPT to fix my knitting, but I didn’t stop there. I paused, thought about how ChatGPT would approach the problem and how I would approach it, and decided that it was worth struggling through on my own. AI hasn’t ruined my brain yet, but I’m going to keep checking to make sure.</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/how-to-build-an-ai-startup-and-do-you-really-need-to">How to Build an AI Startup, and Do You Really Need To?</a></li>
<li><a href="https://thoughtbot.com/blog/your-phone-belongs-to-you-you-dont-belong-to-it">Your Phone Belongs to You, You Don’t Belong to It</a></li>
<li><a href="https://thoughtbot.com/blog/how-to-use-chatgpt-to-find-custom-software-consultants">How to Use ChatGPT to Find Custom Software Consultants</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17439440.gif" height="1" width="1"/>]]></content>
    <summary>Has using AI at work made me worse at other things in my life?</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
  <entry>
    <title>Tech Leaders Meetup is coming to Edinburgh</title>
    <link rel="alternate" href="https://feed.thoughtbot.com/link/24077/17438133/tech-leaders-meetup-is-coming-to-edinburgh"/>
    <author>
      <name>Chad Pytel and Maria Filimonova</name>
    </author>
    <id>https://thoughtbot.com/blog/tech-leaders-meetup-is-coming-to-edinburgh</id>
    <published>2026-09-03T00:00:00+00:00</published>
    <updated>2026-09-01T16:47:10Z</updated>
    <content type="html"><![CDATA[<p>For the first time, we’re bringing our Tech Leaders Meetup to Edinburgh, Scotland.</p>

<p>On October 21, we’ll be gathering at <strong>Badger &amp; Co</strong> for an informal evening with
fellow technology leaders from across Edinburgh and the wider Scottish tech
community.</p>

<p>If you’re leading or building technology teams, working across product or engineering, or simply want to meet more people in the local tech community, we’d love to have you join us.</p>
<h2 id="join-us-in-edinburgh">
  
    Join us in Edinburgh
  
</h2>

<ul>
<li>
<strong>Date:</strong> October 21, 2026</li>
<li>
<strong>Location:</strong> Badger &amp; Co, The Courtyard.</li>
<li>
<strong>Sign up:</strong> <a href="https://luma.com/rbilas03">https://luma.com/rbilas03</a>
</li>
</ul>

<p>We hope to see you there!</p>

<aside class="related-articles"><h2>If you enjoyed this post, you might also like:</h2>
<ul>
<li><a href="https://thoughtbot.com/blog/announcing-developer-day-boston">Announcing Developer Day, Boston</a></li>
<li><a href="https://thoughtbot.com/blog/introducing-design-with-boston">Introducing: Design With Boston</a></li>
<li><a href="https://thoughtbot.com/blog/boston-vim-meetup">Boston Vim Meetup</a></li>
</ul></aside>
<img src="https://feed.thoughtbot.com/link/24077/17438133.gif" height="1" width="1"/>]]></content>
    <summary>thoughtbot’s Tech Leaders Meetup is coming to Edinburgh on October 21, 2026.</summary>
    <thoughtbot:auto_social_share>true</thoughtbot:auto_social_share>
  </entry>
</feed>
