<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Software Development on Nick Perkins</title>
    <link>https://nickperkins.au/categories/software-development/</link>
    <description>Recent content in Software Development on Nick Perkins</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 06 Apr 2026 10:00:00 +1000</lastBuildDate>
    <atom:link href="https://nickperkins.au/categories/software-development/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>grug make AI skill. grug happy.</title>
      <link>https://nickperkins.au/article/grug-brain-skill/</link>
      <pubDate>Mon, 06 Apr 2026 10:00:00 +1000</pubDate>
      <guid>https://nickperkins.au/article/grug-brain-skill/</guid>
      <description>grug been thinking about complexity demon lately. complexity demon sneaky. complexity demon hide in code review. complexity demon whisper &amp;ldquo;just add one more abstraction.&amp;rdquo; grug not listen.&#xA;grug make thing. thing called grug-brain.&#xA;what thing is grug-brain is AI skill. you give skill to AI, AI become grug. AI then fight complexity demon with you.&#xA;AI will:&#xA;look at code, say if too complex suggest simpler way explain things in grug speak not add factory pattern when simple function fine grug inspired by grugbrain.</description>
    </item>
    <item>
      <title>The Testing Pyramid Still Matters (Even When AI Wrote Your Tests)</title>
      <link>https://nickperkins.au/article/testing-pyramid-ai-development/</link>
      <pubDate>Sat, 07 Mar 2026 10:00:00 +1000</pubDate>
      <guid>https://nickperkins.au/article/testing-pyramid-ai-development/</guid>
      <description>I&amp;rsquo;ve been spending a lot of time in agentic AI workflows lately. Describe a feature, the agent writes the code, the tests, and the PR. It&amp;rsquo;s genuinely impressive. And the test suites are taking fifteen minutes to run, full of integration tests that didn&amp;rsquo;t need to be integration tests.&#xA;The testing pyramid didn&amp;rsquo;t become irrelevant just because AI wrote the tests.&#xA;The problem with AI and test placement AI agents are enthusiastic testers.</description>
    </item>
    <item>
      <title>AI and the Human Factor - My Observations</title>
      <link>https://nickperkins.au/article/ai-the-human-factor/</link>
      <pubDate>Wed, 20 Aug 2025 10:00:00 +1000</pubDate>
      <guid>https://nickperkins.au/article/ai-the-human-factor/</guid>
      <description>Over the last year, I&amp;rsquo;ve been watching how people use AI coding tools. GitHub Copilot, ChatGPT, Claude - everyone&amp;rsquo;s got access to them now. But the results? Completely different depending on who&amp;rsquo;s using them.&#xA;Here&amp;rsquo;s what I&amp;rsquo;ve noticed: the engineers who were already good are using AI to get even better. The ones who struggled before? They&amp;rsquo;re producing questionable code at an incredible rate now.&#xA;AI just amplifies what you already are AI tools can be amazing productivity boosters.</description>
    </item>
    <item>
      <title>Building Interactive MCP Tools with Elicitations: A Practical Guide</title>
      <link>https://nickperkins.au/code/mcp-elicitations-interactive-tools/</link>
      <pubDate>Fri, 11 Jul 2025 22:00:00 +1000</pubDate>
      <guid>https://nickperkins.au/code/mcp-elicitations-interactive-tools/</guid>
      <description>The Model Context Protocol (MCP) is revolutionising how we build AI tools, but a powerful new features recently added to the protocol will be a game changer: elicitations. These enable your MCP tools to have interactive conversations with users, gathering input dynamically rather than requiring all parameters upfront. Let me show you how to build engaging, interactive MCP tools using a practical ice cream topping recommender as our example.&#xA;What Are MCP Elicitations?</description>
    </item>
    <item>
      <title>How I Built Interactive AI-Powered Training with GitHub Copilot</title>
      <link>https://nickperkins.au/article/interactive-ai-copilot-training/</link>
      <pubDate>Fri, 27 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://nickperkins.au/article/interactive-ai-copilot-training/</guid>
      <description>One of my current projects is a migration from Azure DevOps to GitHub Actions. I saw a challenge: how to effectively train DevOps teams on new tools in an engaging, practical way? Traditional docs and tutorials often miss the mark. So, I experimented: using GitHub Copilot&amp;rsquo;s Agent Mode to build an interactive, AI-powered training platform. The result was a self-paced, conversational learning experience, guiding users through complex migration scenarios like having an AI tutor.</description>
    </item>
    <item>
      <title>A simple static blog comments system using Cloudflare Workers and D1</title>
      <link>https://nickperkins.au/code/comment-api-cloudflare-d1/</link>
      <pubDate>Wed, 12 Apr 2023 09:45:41 +1000</pubDate>
      <guid>https://nickperkins.au/code/comment-api-cloudflare-d1/</guid>
      <description>I&amp;rsquo;ve spent the last couple of weeks off work, which has given me time to tinker with some different tech. For starters, I migrated this blog over to Hugo, a static site generated written in go. I&amp;rsquo;ve never had comments on this version of my blog, but I wondered how difficult it might be to roll my own system using Cloudflare Workers?&#xA;This seemed like a good opportunity to play with one of Cloudflare&amp;rsquo;s newest offerings, D1.</description>
    </item>
    <item>
      <title>Using pyodbc in AWS Lambda functions</title>
      <link>https://nickperkins.au/code/lamda-pyodbc/</link>
      <pubDate>Sun, 21 Jul 2019 12:57:05 +1000</pubDate>
      <guid>https://nickperkins.au/code/lamda-pyodbc/</guid>
      <description>This week I was working on an AWS Lambda function that needed to read and write from a legacy Microsoft SQL database. It&amp;rsquo;s written using the AWS Chalice framework and in local testing everything looked great. Not so much when we needed to deploy it to AWS for testing.&#xA;Why? Most of the time that you include a python package for use in a lambda function, Chalice is able to package that into the deployment, and you&amp;rsquo;re good to go.</description>
    </item>
  </channel>
</rss>
