<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Valentin Prugnaud</title>
    <link>https://valentinprugnaud.dev</link>
    <description>AI Product Engineer with 14+ years of experience in TypeScript. Building Hookie and RSC Boundary.</description>
    <language>en</language>
    <lastBuildDate>Sun, 16 Aug 2026 23:04:33 GMT</lastBuildDate>
    <copyright>All rights reserved 2026</copyright>
    <atom:link href="https://valentinprugnaud.dev/feed" rel="self" type="application/rss+xml"/>
    <image>
      <url>https://valentinprugnaud.dev/images/og-image.png</url>
      <title>Valentin Prugnaud</title>
      <link>https://valentinprugnaud.dev</link>
    </image>
    <item>
      <title>A Release Pipeline With No Long-Lived Tokens and No Silent Tampering</title>
      <link>https://valentinprugnaud.dev/posts/2026/07/hardening-the-release-pipeline</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/07/hardening-the-release-pipeline</guid>
      <description>How I secured the Hookie CLI release pipeline with OIDC trusted publishing, staged npm releases behind 2FA, and immutable GitHub release assets.</description>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>A CLI Should Do More Than Wrap Your API</title>
      <link>https://valentinprugnaud.dev/posts/2026/07/if-your-cli-only-wraps-your-api</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/07/if-your-cli-only-wraps-your-api</guid>
      <description>Notes from building Hookie: API-shaped commands are useful, but AI-native dev workflows need CLI commands that own the whole task.</description>
      <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Shipping Code Faster Is Not the Bottleneck</title>
      <link>https://valentinprugnaud.dev/posts/2026/07/shipping-code-faster-is-not-the-bottleneck</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/07/shipping-code-faster-is-not-the-bottleneck</guid>
      <description>Agent-loop discourse sells parallel code output. For solo builders the binding constraint is usually demand, and a useful receipt needs cost, artifact, and a user-visible before/after.</description>
      <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>The Interview Gap</title>
      <link>https://valentinprugnaud.dev/posts/2026/06/the-interview-gap</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/06/the-interview-gap</guid>
      <description>The industry says AI agents will write most of the code. Senior engineering interviews still gate on whether you can produce a graph traversal cold in 45 minutes. A checkpoint piece, four months into the job search, on the gap between the two.</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Building incident memory from Slack and Meet transcripts</title>
      <link>https://valentinprugnaud.dev/posts/2026/06/ai-incident-memory-platform</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/06/ai-incident-memory-platform</guid>
      <description>How we built an internal AI post-incident platform around the workflow responders already used: PagerDuty, Slack, Google Meet, structured reports, retrieval, and the tradeoffs that showed up once agent orchestration became production work.</description>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>I didn&apos;t know what was in my context window. So I went looking.</title>
      <link>https://valentinprugnaud.dev/posts/2026/05/i-didnt-know-what-was-in-my-context-window-so-i-went-looking</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/05/i-didnt-know-what-was-in-my-context-window-so-i-went-looking</guid>
      <description>After installing gstack, I wanted to dig deeper than vendor UIs into what actually lands in context. I built Context Mate as a local experiment to unify traces across Cursor, Claude Code, and Codex. So far it is only partly successful: useful for coarse Cursor buckets and Claude token curves, but not a full inventory by name, and fragile on undocumented storage.</description>
      <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Hookie: multiplayer webhook relay for AI-native development</title>
      <link>https://valentinprugnaud.dev/posts/2026/04/hookie-webhook-fan-out-relay</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/04/hookie-webhook-fan-out-relay</guid>
      <description>Multiplayer webhooks for AI-native development: one stable URL, gRPC fan-out to developer and agent environments, HMAC-faithful passthrough, and explicit flow control.</description>
      <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>If you can&apos;t see the boundary, you can&apos;t reason about the system</title>
      <link>https://valentinprugnaud.dev/posts/2026/04/if-you-cant-see-the-boundary-you-cant-reason-about-the-system</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/04/if-you-cant-see-the-boundary-you-cant-reason-about-the-system</guid>
      <description>For App Router practitioners: React Server Components are not hard because the idea is hard. They are hard because the server and client boundary stays invisible at runtime. This post explains why that breaks reasoning, where Next.js dev tooling already helps and where RSC observability could go deeper (dev indicator, MCP), introduces RSC Boundary as the dev overlay I ship today, and sketches a constructive extension point so ecosystem tools could register inside the Next.js dev UI instead of separate chrome.</description>
      <pubDate>Mon, 06 Apr 2026 10:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>The hidden complexity of webhook debugging</title>
      <link>https://valentinprugnaud.dev/posts/2026/03/the-hidden-complexity-of-webhook-debugging</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/03/the-hidden-complexity-of-webhook-debugging</guid>
      <description>Webhooks look simple, but delivery guarantees, retries, and local tunnel workflows create subtle failure modes that waste engineering time. This post maps the real problems teams face and defines what a reliable debugging workflow should provide.</description>
      <pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Building a Vercel-like platform on Cloud Run</title>
      <link>https://valentinprugnaud.dev/posts/2026/02/building-vercel-like-platform-on-cloud-run</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/02/building-vercel-like-platform-on-cloud-run</guid>
      <description>How we built an internal deployment platform on GCP with Cloud Build, Artifact Registry, Cloud Run, Secret Manager, shared routing, tenant isolation, and merged build/runtime logs.</description>
      <pubDate>Mon, 16 Feb 2026 12:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Gatekeeping vs. Golden Paths: Two Models of Platform Engineering</title>
      <link>https://valentinprugnaud.dev/posts/2026/02/gatekeeping-vs-golden-paths-two-models-of-platform-engineering</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/02/gatekeeping-vs-golden-paths-two-models-of-platform-engineering</guid>
      <description>Platform teams often slow developers down with approval boards and ticket queues. Golden paths achieve the same compliance goals through self-service and opinionated defaults, and developers actually use them.</description>
      <pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>KSUID in PostgreSQL: A custom function for sortable, prefixed IDs</title>
      <link>https://valentinprugnaud.dev/posts/2026/02/ksuid-in-postgres</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2026/02/ksuid-in-postgres</guid>
      <description>KSUID is a sortable string ID format that is commonly used in distributed systems. In this post, we implement a KSUID-style generator in PostgreSQL with optional human-readable prefixes, using pgcrypto.</description>
      <pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>How I setup my monorepo</title>
      <link>https://valentinprugnaud.dev/posts/2025/05/how-i-setup-my-monorepo</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2025/05/how-i-setup-my-monorepo</guid>
      <description>I&apos;ve been working on a monorepo for a while now and I&apos;ve developed a few patterns that work well for me. Here are some of the things I&apos;ve learned.</description>
      <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Advanced Zod: Designing Complex Validation Schemas</title>
      <link>https://valentinprugnaud.dev/posts/2025/01/zod-series/03-advanced-zod-designing-complex-validation-schemas</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2025/01/zod-series/03-advanced-zod-designing-complex-validation-schemas</guid>
      <description>Dive deeper into advanced Zod schema design for TypeScript. Learn sophisticated validation patterns, performance optimization, and complex schema composition techniques for enterprise-level applications.</description>
      <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Intermediate Zod: Validation Workflows and Techniques</title>
      <link>https://valentinprugnaud.dev/posts/2025/01/zod-series/02-intermediate-zod-validation-workflows-and-techniques</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2025/01/zod-series/02-intermediate-zod-validation-workflows-and-techniques</guid>
      <description>Explore advanced Zod validation techniques for TypeScript. Master complex schema creation, custom validation rules, and effective error handling to build robust data validation workflows.</description>
      <pubDate>Wed, 08 Jan 2025 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Beginner Zod: Introduction to Schema Validation</title>
      <link>https://valentinprugnaud.dev/posts/2025/01/zod-series/01-beginner-zod-introduction-to-schema-validation</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2025/01/zod-series/01-beginner-zod-introduction-to-schema-validation</guid>
      <description>Learn the fundamentals of Zod schema validation in TypeScript. Discover how to create basic schemas, validate primitive types, and implement simple validation strategies for your projects.</description>
      <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Port Forwarding: a Deno 2.0 experiment</title>
      <link>https://valentinprugnaud.dev/posts/2024/10/port-forwarding-a-deno-2.0-experiment</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2024/10/port-forwarding-a-deno-2.0-experiment</guid>
      <description>Exploring Deno 2.0 by creating a streamlined port forwarding script for GKE clusters.</description>
      <pubDate>Tue, 22 Oct 2024 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Force Prerelease with Semantic Release</title>
      <link>https://valentinprugnaud.dev/posts/2024/02/force-prerelease-with-semantic-release</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2024/02/force-prerelease-with-semantic-release</guid>
      <description>Recently, I had a project at work running Semantic Release to manage releases. But it didn&apos;t go as planned!</description>
      <pubDate>Tue, 20 Feb 2024 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Setup Webhook Signature with Supabase</title>
      <link>https://valentinprugnaud.dev/posts/2023/11/setup-webhook-signature-with-supabase</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2023/11/setup-webhook-signature-with-supabase</guid>
      <description>Supabase Database Webhook is a great way to trigger a function when a database event occurs. However, it is important to secure the webhook endpoint to prevent abuse.</description>
      <pubDate>Thu, 16 Nov 2023 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
    <item>
      <title>Resolving the Mystery of Zombie Node Services in Kubernetes</title>
      <link>https://valentinprugnaud.dev/posts/2023/10/resolving-the-mystery-of-zombie-node-services-in-kubernetes</link>
      <guid isPermaLink="true">https://valentinprugnaud.dev/posts/2023/10/resolving-the-mystery-of-zombie-node-services-in-kubernetes</guid>
      <description>Mysteriously, services were spontaneously restarting, while others, confoundingly, remained running but were dead to any incoming requests. Let&apos;s unravel this enigma, from its discovery to its resolution, with the hope that our experiences can assist others in a similar bind.</description>
      <pubDate>Tue, 24 Oct 2023 00:00:00 GMT</pubDate>
      <author>Valentin Prugnaud</author>
    </item>
  </channel>
</rss>