<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Paulund</title>
    <link>https://paulund.co.uk</link>
    <description>Developer notebook — articles on AI, and software engineering.</description>
    <language>en</language>
    <lastBuildDate>Fri, 19 Jun 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://paulund.co.uk/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Stop Blaming the Model</title>
      <link>https://paulund.co.uk/notebook/ai/stop-blaming-the-model</link>
      <description>Google just published a 51-page paper on the new SDLC. The single most important idea: your agent is not the model. It is the harness around it.</description>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/stop-blaming-the-model</guid>
    </item>
    <item>
      <title>Harness Engineering</title>
      <link>https://paulund.co.uk/notebook/ai/harness-engineering</link>
      <description>Cole Medin breaks down what makes a coding agent harness and why it matters more than the model. Here is what I took from his framing and how it maps to...</description>
      <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/harness-engineering</guid>
    </item>
    <item>
      <title>A Modern Quality Pipeline and Testing Strategy for Frontend Projects</title>
      <link>https://paulund.co.uk/notebook/good-code/a-modern-quality-pipeline-and-testing-strategy-for-frontend-projects</link>
      <description>A practical guide to building a 15-layer frontend quality pipeline, from type safety to observability, and how to adopt it in phases so each layer pays ...</description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/good-code/a-modern-quality-pipeline-and-testing-strategy-for-frontend-projects</guid>
    </item>
    <item>
      <title>Agents Are Cron Jobs and Markdown Files</title>
      <link>https://paulund.co.uk/notebook/ai/agents-are-cron-jobs-and-markdown-files</link>
      <description>Ryan Carson runs his startup solo with AI agents. His core thesis is the cleanest articulation yet of what agentic automation actually is: schedulers an...</description>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/agents-are-cron-jobs-and-markdown-files</guid>
    </item>
    <item>
      <title>Measure Your Agent Skills or Delete Them</title>
      <link>https://paulund.co.uk/notebook/ai/measure-your-agent-skills-or-delete-them</link>
      <description>Nick Nisi discovered one of his skills dropped accuracy from 97% to 77%. The lesson: skills actively hurt without measurement. Evaluate or delete.</description>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/measure-your-agent-skills-or-delete-them</guid>
    </item>
    <item>
      <title>What to Do If You&apos;re Not Detail Oriented</title>
      <link>https://paulund.co.uk/notebook/career/what-to-do-if-youre-not-detail-oriented</link>
      <description>Wes Kao four-question self-check for shipping quality work and why you only need to be good enough at details, not in the ninety-fifth percentile for de...</description>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/career/what-to-do-if-youre-not-detail-oriented</guid>
    </item>
    <item>
      <title>How to Stay Resilient in a Difficult Engineering Job</title>
      <link>https://paulund.co.uk/notebook/career/staying-resilient-in-a-difficult-engineering-job</link>
      <description>Seven strategies for staying intact when your engineering job drains you, adapted for developers dealing with on-call pressure, toxic environments, and ...</description>
      <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/career/staying-resilient-in-a-difficult-engineering-job</guid>
    </item>
    <item>
      <title>Agentic Engineering Patterns</title>
      <link>https://paulund.co.uk/notebook/ai/agentic-engineering-patterns</link>
      <description>Willison agentic engineering guide codifies patterns I use daily in my agent orchestration system. What maps, what does not, and three things I am adopt...</description>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/agentic-engineering-patterns</guid>
    </item>
    <item>
      <title>AI Ate the Translation Layer</title>
      <link>https://paulund.co.uk/notebook/ai/ai-ate-the-translation-layer</link>
      <description>Ajey Gore&apos;s thesis on AI-native organizations — why the translation layer between business and engineering is collapsing and what the new org chart look...</description>
      <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/ai-ate-the-translation-layer</guid>
    </item>
    <item>
      <title>Why Smaller Teams Will Win With AI</title>
      <link>https://paulund.co.uk/notebook/ai/why-smaller-teams-will-win-with-ai</link>
      <description>AI narrows the advantage of large teams. Small teams move faster, have fewer handoffs and redesign without process layers. AI amplifies that speed advan...</description>
      <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/why-smaller-teams-will-win-with-ai</guid>
    </item>
    <item>
      <title>AI Code Review: Pre-Existing Bugs as a Side Quest</title>
      <link>https://paulund.co.uk/notebook/ai/ai-code-review-pre-existing-bugs-as-a-side-quest</link>
      <description>Running multiple AI models in parallel for PR review finds bugs you never knew you had. The catch? It makes you slower, not faster. And that is the point.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/ai-code-review-pre-existing-bugs-as-a-side-quest</guid>
    </item>
    <item>
      <title>Software Factory: Build Factories, Not Features</title>
      <link>https://paulund.co.uk/notebook/ai/software-factory-build-factories-not-features</link>
      <description>How senior engineers build software factories: agentic pipelines that autonomously plan, build, validate, and ship features, compounding output over time.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/software-factory-build-factories-not-features</guid>
    </item>
    <item>
      <title>Small npm Packages Are Mostly Dead</title>
      <link>https://paulund.co.uk/notebook/ai/small-npm-packages-are-mostly-dead</link>
      <description>Why AI-generated code replaces the need for small npm packages, and where the line is between a dependency you still need and one an LLM can write on th...</description>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/small-npm-packages-are-mostly-dead</guid>
    </item>
    <item>
      <title>The Four Levels of Working with AI</title>
      <link>https://paulund.co.uk/notebook/ai/the-four-levels-of-working-with-ai</link>
      <description>Matt Maher&apos;s four-level framework reveals most developers are stuck at level 2. Here is what level 3 looks like in practice and why it matters to move up.</description>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/the-four-levels-of-working-with-ai</guid>
    </item>
    <item>
      <title>What Happens to Developers Who Don&apos;t Adapt to AI</title>
      <link>https://paulund.co.uk/notebook/ai/what-happens-to-developers-who-dont-adapt-to-ai</link>
      <description>Which developer skills depreciate and appreciate in 2026, why half-adopting AI is riskier than refusing it, and advice for engineers who feel left behind.</description>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/what-happens-to-developers-who-dont-adapt-to-ai</guid>
    </item>
    <item>
      <title>Software Ecology and the 10x Moment</title>
      <link>https://paulund.co.uk/notebook/ai/software-ecology-and-the-10x-moment</link>
      <description>A framework for understanding developer ecosystems as socio-technical systems, and what breaks first when AI-driven velocity pushes every node to 10x ca...</description>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/software-ecology-and-the-10x-moment</guid>
    </item>
    <item>
      <title>How AI Agents Made Me CLI-First</title>
      <link>https://paulund.co.uk/notebook/ai/how-ai-agents-made-me-cli-first</link>
      <description>How AI agents pulled me into the terminal and changed how I build software, from nested loops and AFK workflows to risk-gated PRs and scheduled orchestr...</description>
      <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/how-ai-agents-made-me-cli-first</guid>
    </item>
    <item>
      <title>How I Build Software With Agent Loops</title>
      <link>https://paulund.co.uk/notebook/ai/how-i-build-software-with-agent-loops</link>
      <description>The AI-assisted development workflow I use every day, from human-in-the-loop planning to AFK implementation, risk-gated PRs, and continuous learning loops.</description>
      <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/ai/how-i-build-software-with-agent-loops</guid>
    </item>
    <item>
      <title>paulund/goldcli v1.1.0 - Caching layer keeps you under the API free tier</title>
      <link>https://paulund.co.uk/releases/paulundgoldcli-v110-caching-layer-keeps-you-under-the-api-free-tier</link>
      <description>goldcli v1.1.0 adds local caching for gold price API responses, cutting redundant requests and keeping you safely inside the 100-request-per-month free ...</description>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/releases/paulundgoldcli-v110-caching-layer-keeps-you-under-the-api-free-tier</guid>
    </item>
    <item>
      <title>Higher-Order Components and Why Hooks Replaced Them</title>
      <link>https://paulund.co.uk/notebook/react/higher-order-components-and-why-hooks-replaced-them</link>
      <description>What higher-order components are, how they worked in class-based React, and why hooks are a better solution for the same cross-cutting concern problems.</description>
      <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/higher-order-components-and-why-hooks-replaced-them</guid>
    </item>
    <item>
      <title>Pure Components and Why Purity Matters in React</title>
      <link>https://paulund.co.uk/notebook/react/pure-components-and-why-purity-matters-in-react</link>
      <description>Learn why React treats your components like pure functions and how keeping renders side-effect free makes your app predictable, testable, and less buggy.</description>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/pure-components-and-why-purity-matters-in-react</guid>
    </item>
    <item>
      <title>React Fragments and When You Actually Need Them</title>
      <link>https://paulund.co.uk/notebook/react/react-fragments-and-when-you-actually-need-them</link>
      <description>Why React components must return a single root element, how Fragments solve this without polluting the DOM, and the three different ways to write them.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/react-fragments-and-when-you-actually-need-them</guid>
    </item>
    <item>
      <title>Refs and when useRef beats useState</title>
      <link>https://paulund.co.uk/notebook/react/refs-and-when-useref-beats-usestate</link>
      <description>I used to reach for useState for everything. Here is why useRef is often the better tool for values that do not need to trigger a component re-render.</description>
      <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/refs-and-when-useref-beats-usestate</guid>
    </item>
    <item>
      <title>Default Props and Optional Props in React</title>
      <link>https://paulund.co.uk/notebook/react/default-props-and-optional-props-in-react</link>
      <description>How to type optional props in TypeScript and set sensible default values without reaching for the deprecated defaultProps API in modern React applications.</description>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/default-props-and-optional-props-in-react</guid>
    </item>
    <item>
      <title>Handling Form Submission in React</title>
      <link>https://paulund.co.uk/notebook/react/handling-form-submission-in-react</link>
      <description>How to handle form submission in React including async submit handlers, loading states, error display, and resetting the form after a successful submiss...</description>
      <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/handling-form-submission-in-react</guid>
    </item>
    <item>
      <title>Client-side validation before Server Actions in Next.js</title>
      <link>https://paulund.co.uk/notebook/nextjs/client-side-validation-before-server-actions-in-nextjs</link>
      <description>Server Actions do not replace client validation. Catch invalid form input early and prevent unhandled errors from becoming five hundred server error res...</description>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/nextjs/client-side-validation-before-server-actions-in-nextjs</guid>
    </item>
    <item>
      <title>Type-Safe Adapter Registries with as const and satisfies</title>
      <link>https://paulund.co.uk/notebook/typescript/type-safe-adapter-registries-with-as-const-and-satisfies</link>
      <description>Learn how to replace hard-coded service calls with a type-safe adapter registry using TypeScript&apos;s as const, satisfies, and derived union types for safety.</description>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/typescript/type-safe-adapter-registries-with-as-const-and-satisfies</guid>
    </item>
    <item>
      <title>Using Service Interfaces and Null Objects for Resilient TypeScript Scripts</title>
      <link>https://paulund.co.uk/notebook/typescript/using-service-interfaces-and-null-objects-for-resilient-typescript-scripts</link>
      <description>How to combine service interfaces, factory functions, and the Null Object pattern to build TypeScript scripts that run without credentials or third-part...</description>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/typescript/using-service-interfaces-and-null-objects-for-resilient-typescript-scripts</guid>
    </item>
    <item>
      <title>Validating Multi-Provider Credentials with Zod Discriminated Unions</title>
      <link>https://paulund.co.uk/notebook/typescript/validating-multi-provider-credentials-with-zod-discriminated-unions</link>
      <description>How to use Zod&apos;s discriminatedUnion to validate per-platform credentials, with a runtime-injected discriminant and TypeScript narrowing at call sites.</description>
      <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/typescript/validating-multi-provider-credentials-with-zod-discriminated-unions</guid>
    </item>
    <item>
      <title>paulund/ai v3.1.0 - Writing Humanizer skill</title>
      <link>https://paulund.co.uk/releases/paulundai-v310-writing-humanizer-skill</link>
      <description>Version 3.1.0 adds a dedicated Writing Humanizer skill to the paulundai collection, giving Claude Code a way to strip AI-generated patterns from text.</description>
      <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/releases/paulundai-v310-writing-humanizer-skill</guid>
    </item>
    <item>
      <title>Building a URL Shortener with Next.js</title>
      <link>https://paulund.co.uk/notebook/nextjs/building-a-url-shortener-with-nextjs</link>
      <description>How to design the data model, slug generator, and IP hashing for a short-link service using Prisma, Web Crypto, and HMAC-SHA256 for anonymised click tra...</description>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/nextjs/building-a-url-shortener-with-nextjs</guid>
    </item>
    <item>
      <title>Magic Link Authentication in Next.js</title>
      <link>https://paulund.co.uk/notebook/apis/magic-link-authentication-in-nextjs</link>
      <description>How to build passwordless sign-in with email magic links using Supabase Auth, a React Email template, and a clean service wrapper around the OTP flow.</description>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/apis/magic-link-authentication-in-nextjs</guid>
    </item>
    <item>
      <title>API Key Management in Next.js</title>
      <link>https://paulund.co.uk/notebook/apis/api-key-management-in-nextjs</link>
      <description>How to generate, hash, store, and revoke API keys in a Next.js app using SHA-256 hashing, server actions, and cross-project guards for secure access con...</description>
      <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/apis/api-key-management-in-nextjs</guid>
    </item>
    <item>
      <title>paulund/ai v3.0.0 - Skills-only layout and new planning skills</title>
      <link>https://paulund.co.uk/releases/pauundai-v300-skills-only-layout-and-new-planning-skills</link>
      <description>Version 3.0.0 removes the Claude plugin system for a flat skills directory and adds plan, ship, and several developer workflow skills to the collection.</description>
      <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/releases/pauundai-v300-skills-only-layout-and-new-planning-skills</guid>
    </item>
    <item>
      <title>Transactional Email with Resend and React Email</title>
      <link>https://paulund.co.uk/notebook/nextjs/transactional-email-with-resend-and-react-email</link>
      <description>How to build a mailer module that renders React Email templates and sends through Resend, with test-time capture so you never send real emails from CI.</description>
      <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/nextjs/transactional-email-with-resend-and-react-email</guid>
    </item>
    <item>
      <title>Type Annotations vs Type Inference: When to Write the Type</title>
      <link>https://paulund.co.uk/notebook/typescript/type-annotations-vs-type-inference</link>
      <description>TypeScript can infer most types on its own, but knowing when to add an explicit annotation anyway is what separates readable code from a sea of colons.</description>
      <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/typescript/type-annotations-vs-type-inference</guid>
    </item>
    <item>
      <title>The Compound Component Pattern in React</title>
      <link>https://paulund.co.uk/notebook/react/the-compound-component-pattern-in-react</link>
      <description>Learn how the compound component pattern lets you build flexible and composable React UI components that share state without prop drilling or complex APIs.</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/the-compound-component-pattern-in-react</guid>
    </item>
    <item>
      <title>The Render Prop Pattern in React</title>
      <link>https://paulund.co.uk/notebook/react/the-render-prop-pattern-in-react</link>
      <description>How the render prop pattern lets you share behaviour between components, why hooks mostly replaced it, and the cases where render props still earn their...</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/the-render-prop-pattern-in-react</guid>
    </item>
    <item>
      <title>useReducer for Complex State</title>
      <link>https://paulund.co.uk/notebook/react/usereducer-for-complex-state</link>
      <description>Learn when and how to use useReducer in React to manage complex component state that has multiple related values or state transitions depending on each ...</description>
      <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/usereducer-for-complex-state</guid>
    </item>
    <item>
      <title>Week 16, 2026</title>
      <link>https://paulund.co.uk/newsletter/2026-w16</link>
      <description>This week&apos;s links cover dynamic OG images, dyslexia and engineering, git commands for reading new codebases, and a new Claude Design tool from Anthropic.</description>
      <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/newsletter/2026-w16</guid>
    </item>
    <item>
      <title>The React Context API: Shared State Without a Library</title>
      <link>https://paulund.co.uk/notebook/react/the-react-context-api-shared-state-without-a-library</link>
      <description>Learn how to use React&apos;s built-in Context API to share state across components without prop drilling or reaching for a third-party state management libr...</description>
      <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/the-react-context-api-shared-state-without-a-library</guid>
    </item>
    <item>
      <title>Dynamic OG Images in Next.js with opengraph-image.tsx</title>
      <link>https://paulund.co.uk/notebook/nextjs/dynamic-og-images-in-nextjs-with-opengraph-imagetsx</link>
      <description>How to generate a unique Open Graph image per page at build time using Next.js App Router&apos;s opengraph-image.tsx convention, with static export support.</description>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/nextjs/dynamic-og-images-in-nextjs-with-opengraph-imagetsx</guid>
    </item>
    <item>
      <title>Lifting State Up in React</title>
      <link>https://paulund.co.uk/notebook/react/lifting-state-up-in-react</link>
      <description>When two components need to share state, you move it to their closest common ancestor. Here is what that looks like in practice and why the pattern works.</description>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/lifting-state-up-in-react</guid>
    </item>
    <item>
      <title>Conditional Rendering Patterns in React</title>
      <link>https://paulund.co.uk/notebook/react/conditional-rendering-patterns-in-react</link>
      <description>A practical look at the different ways to conditionally render content in React, covering when to use each pattern and which approaches you should avoid.</description>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/conditional-rendering-patterns-in-react</guid>
    </item>
    <item>
      <title>Lists and Keys in React: Why They Actually Matter</title>
      <link>https://paulund.co.uk/notebook/react/lists-and-keys-in-react-why-they-actually-matter</link>
      <description>React keys do more than silence console warnings. Understanding how React uses keys during reconciliation reveals why the wrong key introduces subtle bugs.</description>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/lists-and-keys-in-react-why-they-actually-matter</guid>
    </item>
    <item>
      <title>Why Dyslexia Made Me a Better Software Engineer</title>
      <link>https://paulund.co.uk/notebook/career/why-dyslexia-made-me-a-better-software-engineer</link>
      <description>A personal essay on how dyslexia shaped debugging instincts, pattern recognition, and systems thinking across a software engineering career of over a de...</description>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/career/why-dyslexia-made-me-a-better-software-engineer</guid>
    </item>
    <item>
      <title>Event Handling in React</title>
      <link>https://paulund.co.uk/notebook/react/event-handling-in-react</link>
      <description>How React&apos;s event system works, why it differs from vanilla JS, and how to handle clicks, form inputs, and keyboard events correctly with TypeScript types.</description>
      <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/event-handling-in-react</guid>
    </item>
    <item>
      <title>Git Commands for Reading New Codebases</title>
      <link>https://paulund.co.uk/notebook/git/git-commands-for-reading-new-codebases</link>
      <description>Five git commands to run before opening a single file in a new project, revealing churn hotspots, bus factor, bug clusters, and commit velocity at a gla...</description>
      <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/git/git-commands-for-reading-new-codebases</guid>
    </item>
    <item>
      <title>Props, Children, and Component Composition in React</title>
      <link>https://paulund.co.uk/notebook/react/props-children-and-component-composition-in-react</link>
      <description>Learn how props and the children prop work in React components, and how to use component composition to build flexible user interfaces without tight cou...</description>
      <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/react/props-children-and-component-composition-in-react</guid>
    </item>
    <item>
      <title>Extracting a Queries Layer from Next.js Server Components</title>
      <link>https://paulund.co.uk/notebook/nextjs/extracting-a-queries-layer-from-nextjs-server-components</link>
      <description>How to introduce a typed queries layer in a Next.js and Prisma app, moving read functions out of page components to improve discoverability and reuse.</description>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <guid isPermaLink="true">https://paulund.co.uk/notebook/nextjs/extracting-a-queries-layer-from-nextjs-server-components</guid>
    </item>
  </channel>
</rss>