<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Software on Purpose]]></title><description><![CDATA[Challenging industry assumptions. Applying sound principles, best practices, and established patterns to modern software engineering — including Agile delivery and the age of agentic AI.]]></description><link>https://softwareonpurpose.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!8l7b!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c4b84b7-93f8-4019-8708-a51abcfcdc32_500x500.png</url><title>Software on Purpose</title><link>https://softwareonpurpose.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 17 Jun 2026 21:02:56 GMT</lastBuildDate><atom:link href="https://softwareonpurpose.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Craig Stockton]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[softwareonpurpose@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[softwareonpurpose@substack.com]]></itunes:email><itunes:name><![CDATA[Craig Stockton]]></itunes:name></itunes:owner><itunes:author><![CDATA[Craig Stockton]]></itunes:author><googleplay:owner><![CDATA[softwareonpurpose@substack.com]]></googleplay:owner><googleplay:email><![CDATA[softwareonpurpose@substack.com]]></googleplay:email><googleplay:author><![CDATA[Craig Stockton]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Software Testing for Dummies — exposed and ridiculed]]></title><description><![CDATA[One test execution per requirement = unsustainable cost and delay]]></description><link>https://softwareonpurpose.substack.com/p/software-testing-for-dummies-exposed</link><guid isPermaLink="false">https://softwareonpurpose.substack.com/p/software-testing-for-dummies-exposed</guid><dc:creator><![CDATA[Craig Stockton]]></dc:creator><pubDate>Mon, 08 Jun 2026 10:00:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yLM4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yLM4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLM4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 424w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 848w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 1272w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yLM4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png" width="1152" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:964476,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://softwareonpurpose.substack.com/i/200935464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yLM4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 424w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 848w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 1272w, https://substackcdn.com/image/fetch/$s_!yLM4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fb1f698-2d1f-4a77-b276-1b1ac13cd6a8_1152x928.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Software engineers &#8212; have you ever honestly considered how we approach testing of fully integrated software systems? If we applied our approach to any other mature industry, we would be laughed out of existence.</p><p>Can you imagine a car manufacturer, in crash testing their vehicle, using a crash dummy with sensors for one particular body part? They set up the dummy with head sensors, crash a car head-on, then read the results to ensure compliance with regulatory standards. They then swap to torso sensors, crash a second car head-on, then read the results. Next, they refit the dummy with lower body sensors, and crash a third car head-on. Each test destroys a vehicle. Each vehicle could have been sold.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Software on Purpose is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>How long do you think that car manufacturer could remain in business? The material cost of destroying a sellable vehicle for each individual sensor reading would be staggering &#8212; and every one of those results could have been captured in a single test. The approach of using one sensor per test may be best practice for testing a component &#8212; an airbag, for example &#8212; pre-assembly. But it is the wrong approach when testing a post-assembly product like a vehicle. Yet this is commonly the approach used in testing fully integrated software systems, each test with verifications for a single, specific requirement. Is it any wonder that the cost of testing fully integrated systems is so high, and why there are so many delays in delivering finished product?</p><p>Now imagine applying to software development the approach used in mature industries. Given data in a unique scenario, perform a set of actions to a destination, with sensors &#8212; verifications &#8212; in place to confirm any number of result states, each responding with feedback regardless of how many indicate failures. A multitude of individual results can now be measured against any number of requirements, in a single test. No verification is dependent on the success of any other verification.</p><p>Take the analogy one step further. Every crash dummy is fitted with the same standard harness of sensors &#8212; regulatory compliance verified identically across every test, without exception, regardless of what additional sensors a specific scenario requires. The comprehensive baseline is not assembled test by test. It is built into the dummy itself.</p><p>The same principle applies to software. A single validation module &#8212; shared across every test that validates the same subject &#8212; ensures that baseline verification is comprehensive, consistent, and not dependent on the discipline of the individual engineer who wrote the test. The standard sensors are always in place. The scenario-specific verifications are added on top. Every test benefits from both, without the author having to think about either.</p><p>This is similar to setting up a crash dummy with head, torso, arm and leg sensors, submitting the vehicle to a head-on collision, then verifying the results of each and every sensor individually. Use the same fully-sensorized dummy in every crash scenario, and the number of unique test executions required is greatly reduced. Doing the same for each software scenario has the same result: a smaller, more manageable test library and greatly reduced number of unique test executions.</p><p>This principle does not change in the age of AI-assisted testing. AI generates tests based on what it understands to be important &#8212; which is almost always derived from the requirements. It will set up one sensor per test as reliably as any engineer trained to do the same. The approach does not become comprehensive simply because a tool generated it. Comprehensive validation requires deliberate design &#8212; the decision to instrument every sensor, not just the one the requirement described.</p><p>Reconciling our approach to validation of post-assembly software with that used by other mature industries makes comprehensive, resilient, effective and efficient testing of fully integrated software systems achievable. The result is higher-quality software, delivered in a sustainable release cycle, at greatly reduced cost.</p><p><em>Be reconciled!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Software on Purpose is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What Your Tests Aren't Telling You]]></title><description><![CDATA[Your tests are passing. That doesn't mean your system is working.]]></description><link>https://softwareonpurpose.substack.com/p/what-your-tests-arent-telling-you</link><guid isPermaLink="false">https://softwareonpurpose.substack.com/p/what-your-tests-arent-telling-you</guid><dc:creator><![CDATA[Craig Stockton]]></dc:creator><pubDate>Mon, 18 May 2026 02:48:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!O9yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O9yw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O9yw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 424w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 848w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 1272w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O9yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png" width="1376" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:931523,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://softwareonpurpose.substack.com/i/198205040?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O9yw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 424w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 848w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 1272w, https://substackcdn.com/image/fetch/$s_!O9yw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99ec9577-e5ba-49ab-bc8c-cdb04f0d6c26_1376x752.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Early in my career I was working as an automated test engineer on a web application that had been in production for years. The application included a feature for editing client company data &#8212; name, address, contact information, that sort of thing. Routine functionality. Any issues discovered were addressed, and regression testing passed.</p><p>The testing framework available to our team was exceptional &#8212; one of the best I have ever worked with. Among its capabilities was the ability to query for a suitable test record at runtime, apply logic to determine expected values dynamically, and then validate any number of fields at the end of the test. I set up a test for the company edit feature and validated every column of the database record. On the first execution, the test failed.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Software on Purpose is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I looked at the data. The name was correct. The address was correct. The contact information was correct &#8212; everything the requirement cared about looked exactly right. I ran it again, got the same result, and began removing verifications one by one trying to isolate the failure. Then my eyes caught something. The ID value was different.</p><p>A query of the database told the rest of the story. Every time a company record was edited through the web application, a brand new row was being created in the database. The original record was not updated. It was orphaned. The company now existed twice &#8212; or more, depending on how many times it had been edited. This had been happening in production for quite some time.</p><p>When I reported the defect, it was deferred. The tests had never caught it. Production had never complained. The risk was judged acceptable. A couple of months later, production performance degraded badly enough to impact the business. The defect was addressed &#8212; along with several other behaviors of the same kind that the investigation surfaced.</p><div><hr></div><p>The tests had been passing for years. What they were not doing was telling the truth about what the system was actually doing.</p><p>The previous approach to validation was the industry standard: verify what the requirement specifies, confirm the visible outcome, move on. By that measure, the company edit feature worked perfectly. The name changed. The address changed. The contact changed. Requirement met. Test passed. What no test had ever asked was: what happened to the rest of the record?</p><p>The answer, it turned out, was the most important answer in the test. And no one had ever asked the question.</p><p>This is what your tests are not telling you &#8212; and the rise of AI-assisted testing does not change it. AI generates tests based on what it understands to be important, which is almost always derived from the requirements. It would have verified the name, the address, the contact. It would not have thought to verify the ID. A developer writing AI-assisted unit tests for this feature faces the same risk &#8212; the AI reflects the developer&#8217;s intent, not the system&#8217;s complete behavior. What gets verified is what was considered. What was never considered remains invisible. Expertise &#8212; the kind that knows what a comprehensive validation must include and ensures it is there &#8212; is not something AI supplies. It is something the engineer brings to the AI.</p><p>A test suite that verifies the requirement and nothing more is producing confidence. It is not producing coverage. And confidence without coverage is not a passing test. It is a deferred defect &#8212; one you will find eventually, in the environment where finding it costs the most.</p><p>Comprehensive validation means verifying the complete state of the entity under test &#8212; not just the fields that changed, but every field that should not have changed. Not just the visible outcome, but the underlying record that outcome is built on. When you validate the entire entity, you are asking the system to account for itself. That is where the lies get exposed.</p><p>Being reconciled to a comprehensive validation approach in all testing &#8212; application, services, or database &#8212; requires a bit more effort up front. But the risks mitigated and cost of correction saved is worth the attention to detail, and provides trustworthy confidence for the business and clients.</p><p><em>Be reconciled!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Software on Purpose is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Any Fool with a Scalpel]]></title><description><![CDATA[Nana recently underwent surgery for a large abdominal hernia.]]></description><link>https://softwareonpurpose.substack.com/p/any-fool-with-a-scalpel</link><guid isPermaLink="false">https://softwareonpurpose.substack.com/p/any-fool-with-a-scalpel</guid><dc:creator><![CDATA[Craig Stockton]]></dc:creator><pubDate>Wed, 15 Apr 2026 23:10:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!f4o0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f4o0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f4o0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f4o0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png" width="1408" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1592072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://softwareonpurpose.substack.com/i/194352944?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f4o0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 424w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 848w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 1272w, https://substackcdn.com/image/fetch/$s_!f4o0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff02b6dff-369b-42d6-829e-97f7c587bf3a_1408x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Nana recently underwent surgery for a large abdominal hernia. Afterward, she shared a picture of the operating room. Hanging from the ceiling was a device best described as remarkable &#8212; several articulating arms, each tipped with a precision instrument, positioned over the operating table. There was no large incision. No surgeon reaching directly into her body. Instead, several small punctures, through which each instrument was inserted and guided as needed. The operation was performed entirely through the machine.</p><p>I looked at that picture and thought: what an extraordinary tool. And then, almost immediately: imagine handing it to a first-year resident who has never held a scalpel, never lost a patient, and never developed the judgment that only comes from years of training under surgeons who demanded more than competence.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Software on Purpose! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Surgery in the early 1900s was educated guesswork performed with blunt instruments, unreliable anesthesia, and almost no understanding of infection. Patients who survived the procedure frequently did not survive the recovery.</p><p>Every advancement that followed &#8212; antiseptics, precision instruments, imaging, anesthesia, and eventually robotic-assisted surgery &#8212; did not lower the skill requirement. It raised the consequences of lacking it.</p><p>The scalpel did not make surgeons interchangeable. It made the gap between a trained surgeon and an untrained hand more dangerous. The tool never replaced judgment. It amplified it &#8212; in both directions.</p><p>Agentic AI is the articulating arm hanging from the ceiling of software engineering. It is an extraordinary advancement.</p><p>In the wrong hands, it produces results that are clean, confident, and completely wrong &#8212; at a speed and scale previously impossible.</p><p>To business and technical leaders: the assumption that agentic AI produces superior results, or results that are &#8220;good enough,&#8221; regardless of who is directing it, is the assumption that the robotic surgical system operates itself.</p><p>It does not.</p><p>Someone trained, experienced, and principled is still standing at the controls. The tool amplifies what that person brings. Nothing more.</p><p>If what they bring is shallow, the tool amplifies that too &#8212; faster, and at greater cost than before.</p><p>The businesses most at risk are not the ones that fail to adopt agentic AI. They are the ones that adopt it without understanding what they are actually putting in charge of their software.</p><p>To development engineers: the question is not whether agentic AI will change your career. It <strong>will.</strong></p><p>The question is what you bring to it.</p><p>The engineers who will thrive are not the ones who learned to prompt. They are the ones who understand sound principles and best practices deeply enough to recognize when the tool is right, when it is wrong, and when it is confidently producing something that will cost the business dearly six months from now.</p><p>If you cannot reliably make that distinction, the tool is not making you more effective. It is making you more dangerous.</p><p>The tool will not tell you. It does not know. It cannot know.</p><p>Only you can know &#8212; and only if you have done the work to develop the judgment that makes that knowledge possible.</p><p>Nana&#8217;s surgeon did not walk into that operating room because a remarkable machine was hanging from the ceiling.</p><p>The machine was there because a remarkable surgeon was walking into the room.</p><p>The advancement of the tool has never, in any industry, reduced the value of the skilled practitioner.</p><p>It has always increased it. And made the cost of the unskilled harder to hide.</p><p>Reconciling yourself to the value of proven experience &#8212; engineers who have built sound principles and best practices through years of deliberate practice &#8212; is what keeps businesses from accelerating headlong into disaster, and what keeps engineers relevant in the age of the very tools threatening to replace them.</p><p>The businesses that thrive will be the ones who identify and retain true Software Crafters. The engineers who thrive will be the ones who have committed to becoming one.</p><p><em>Be reconciled!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Software on Purpose! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Things You Don't Know You Don't Know]]></title><description><![CDATA[Years ago, while building a business, a colleague recommended a book.]]></description><link>https://softwareonpurpose.substack.com/p/things-you-dont-know-you-dont-know</link><guid isPermaLink="false">https://softwareonpurpose.substack.com/p/things-you-dont-know-you-dont-know</guid><dc:creator><![CDATA[Craig Stockton]]></dc:creator><pubDate>Wed, 15 Apr 2026 23:02:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1vuz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1vuz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1vuz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1vuz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/398e466c-8900-4fba-8892-d3235503853b_1376x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1444201,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://softwareonpurpose.substack.com/i/194352052?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1vuz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 424w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 848w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 1272w, https://substackcdn.com/image/fetch/$s_!1vuz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F398e466c-8900-4fba-8892-d3235503853b_1376x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Years ago, while building a business, a colleague recommended a book. I don&#8217;t recall the title. What I do recall is a story from its pages &#8212; one that stayed with me.</p><p>In that story, a young man eager for success is challenged by his mentor. The mentor tells him, plainly: achieving great success will not come from the things you know. Nor will it come from the things you know you don&#8217;t know. It is the things you don&#8217;t know you don&#8217;t know which will hold you back, or enable your success. Discovering and mastering those &#8212; that is where success is secured.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Software on Purpose! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Agile Open Northwest draws people at the cutting edge of Agile and AI-assisted software engineering &#8212; practitioners actively shaping how software is built and delivered. I go there specifically knowing I will hear and see things I would never think of on my own. I go to share my perspectives and have them challenged or confirmed. I leave every time with new insight and practical vision that makes me better as a Software Crafter.</p><p>A graduate just beginning their career opened a session by sharing all the things they knew they didn&#8217;t know. They were looking for guidance from experienced peers in the industry.</p><p>When my turn came, I referred to that story from the book.</p><p>The most experienced engineers in the room nodded, genuinely. The comments that followed confirmed what the nods already said: the engineers who go furthest in this craft are, without exception, the ones who stayed open. Not the ones who accumulated the most answers. The ones who remained most willing to question the answers they already had.</p><p>Have you even dismissed something? I know I have. A principle recommended by someone whose work you respect. A practice you half-heartedly attempted. A pattern that keeps appearing in the work of engineers you admire.</p><p>You may be right about it. Some things deserve to be dismissed. But here is the question you cannot answer honestly without doing the work: how would you know? Did you consider it thoughtfully? Did you test it yourself?</p><p>Seniority makes this worse, not better. Every year of experience adds another layer of confidence between you and the risk of being wrong. By the time you reach senior engineer, staff engineer, or architect &#8212; the insulation is considerable. You have earned your opinions. You have the battle scars to prove them. And that is precisely when the unknown unknowns are most dangerous, because you have the most authority to act on them and the least incentive to question them.</p><p>The engineer who stopped being challenged is the engineer who stopped growing. The tragedy is they are usually the last to know it.</p><p>A sermon I heard as a child has never left me. The preacher said: you can learn from your own thirty years of wisdom &#8212; or another&#8217;s thirty years of wisdom can give you a head start.</p><p>Whose thirty years are you learning from?</p><p>Reconciling yourself to continuously discovering what you don&#8217;t know you don&#8217;t know keeps you fresh. It strengthens sound principles, refines your practices, and sets an example for those who follow.</p><p>Be reconciled!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://softwareonpurpose.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Software on Purpose! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>