<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Developer Experience on Nick Perkins</title>
		<link>https://nickperkins.au/tags/developer-experience/</link>
		<description>Recent content in Developer Experience on Nick Perkins</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Sat, 20 Jun 2026 10:00:00 +1000</lastBuildDate>
		
			<atom:link href="https://nickperkins.au/tags/developer-experience/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>I Stopped Using MCPs and Replaced Them with Skills and Scripts</title>
				<link>https://nickperkins.au/article/skills-over-mcps/</link>
				<pubDate>Sat, 20 Jun 2026 10:00:00 +1000</pubDate>
				<guid>https://nickperkins.au/article/skills-over-mcps/</guid>
				<description>&lt;p&gt;Everyone&amp;rsquo;s excited about MCPs. The Model Context Protocol is supposed to be the standard way AI agents talk to external services. And it is good, for what it is. But I&amp;rsquo;ve been replacing MCPs with skills and scripts in my own workflows, and honestly, I&amp;rsquo;m not going back.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem-with-mcps&#34;&gt;The problem with MCPs&lt;/h2&gt;&#xA;&lt;p&gt;When you load an MCP server, all of its tool definitions get injected into the agent&amp;rsquo;s context. Every tool name, every parameter schema, every description. The Atlassian MCP alone exposes dozens of tools across Jira and Confluence. That&amp;rsquo;s a lot of schema sitting in your context window before you&amp;rsquo;ve even asked the agent to do anything.&lt;/p&gt;</description>
			</item>
			<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>&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;grug make thing. thing called &lt;a href=&#34;https://github.com/nickperkins/grug-brain&#34;&gt;grug-brain&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-thing-is&#34;&gt;what thing is&lt;/h2&gt;&#xA;&lt;p&gt;grug-brain is AI skill. you give skill to AI, AI become grug. AI then fight complexity demon with you.&lt;/p&gt;&#xA;&lt;p&gt;AI will:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;look at code, say if too complex&lt;/li&gt;&#xA;&lt;li&gt;suggest simpler way&lt;/li&gt;&#xA;&lt;li&gt;explain things in grug speak&lt;/li&gt;&#xA;&lt;li&gt;not add factory pattern when simple function fine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;grug inspired by &lt;a href=&#34;https://grugbrain.dev/&#34;&gt;grugbrain.dev&lt;/a&gt;. you should go read. very wise. grug just made it easier to load into AI assistant.&lt;/p&gt;</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>&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;The testing pyramid didn&amp;rsquo;t become irrelevant just because AI wrote the tests.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem-with-ai-and-test-placement&#34;&gt;The problem with AI and test placement&lt;/h2&gt;&#xA;&lt;p&gt;AI agents are enthusiastic testers. Ask one to add coverage for a new feature and it&amp;rsquo;ll write tests, lots of them. The problem isn&amp;rsquo;t that they default to any particular layer. It&amp;rsquo;s that they&amp;rsquo;re trained to optimise for quality and coverage, not for the cost of achieving it. Nobody&amp;rsquo;s system prompt says &amp;ldquo;think about how long this test suite will take to run.&amp;rdquo; So they go overboard. Spinning up a database, creating records via factories, hitting an HTTP endpoint, asserting on the response. It works. The test passes. But it&amp;rsquo;s expensive.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
