<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Productivity on Pauls Blog</title><link>https://prule.github.io/pauls-blog/tags/productivity/</link><description>Recent content in Productivity on Pauls Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 03 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://prule.github.io/pauls-blog/tags/productivity/index.xml" rel="self" type="application/rss+xml"/><item><title>Sample data</title><link>https://prule.github.io/pauls-blog/post/coding/2026/sample-data/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/sample-data/</guid><description>&lt;h2 id="the-strategic-case-for-programmable-sample-data"&gt;The Strategic Case for Programmable Sample Data&lt;/h2&gt;
&lt;h3 id="i-the-core-thesis"&gt;I. The Core Thesis&lt;/h3&gt;
&lt;p&gt;Manual database entry is a bottleneck that introduces inconsistency. The most effective way to ensure environmental parity and development velocity is to treat &lt;strong&gt;sample data as code&lt;/strong&gt;. By leveraging business services to seed the database with deterministic, UUID-based records, teams create a stable foundation for testing, UI development, and collaborative debugging.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="ii-supporting-arguments"&gt;II. Supporting Arguments&lt;/h3&gt;
&lt;h4 id="1-enforcement-of-business-logic-via-service-seeding"&gt;1. Enforcement of Business Logic via Service Seeding&lt;/h4&gt;
&lt;p&gt;A common mistake is seeding a database via direct SQL scripts. This bypasses the application’s validation rules and side effects.&lt;/p&gt;</description></item><item><title>Eliminate PR Noise with ktfmt</title><link>https://prule.github.io/pauls-blog/post/coding/2026/ktfmt/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/ktfmt/</guid><description>&lt;p&gt;Few things are as frustrating during a code review as seeing a 50-line diff, only to realize that 45 of those lines are just re-ordered imports or adjusted indentation. This is &amp;ldquo;PR noise&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;In the Kotlin world, &lt;strong&gt;ktfmt&lt;/strong&gt; is one of the best tools to solve this. Developed by Meta, it&amp;rsquo;s a deterministic formatter that ensures every developer on your team produces the exact same output, regardless of their individual IDE settings.&lt;/p&gt;</description></item><item><title>AI-Assisted Engineering: From Implementation to Specification</title><link>https://prule.github.io/pauls-blog/post/coding/2026/ai-coding/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/ai-coding/</guid><description>&lt;p&gt;The more I use AI to assist with coding, the more I realize that &lt;strong&gt;context is the primary currency of effective assistance.&lt;/strong&gt; The quality of the output is directly proportional to the quality of information available to the assistant.&lt;/p&gt;
&lt;p&gt;This realization has fundamentally changed how I work. I’ve started treating ADRs (Architecture Decision Records) and design documents not as &amp;ldquo;after-the-fact&amp;rdquo; documentation, but as essential inputs to be versioned in Git alongside the code. Goodbye Confluence; hello documentation-as-code.&lt;/p&gt;</description></item></channel></rss>