<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Théo Penavaire · Blog</title><description>Posts on CI/CD, test automation and developer platforms.</description><link>https://theopnv.com/</link><language>en-GB</language><item><title>Flow Town: a map of the work behind software delivery</title><link>https://theopnv.com/blog/2026/10/flow-town/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/10/flow-town/</guid><description>Flow Town is a free interactive map of Enablement Engineering: find where your software delivery is stuck, or choose your next DevOps specialisation.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><enclosure url="https://theopnv.com/_astro/cover.Bm0eJ7A2_5X8ih.jpeg" length="0" type="image/jpeg"/></item><item><title>Of the state of trains in Europe in 2026</title><link>https://theopnv.com/blog/2026/10/trains-in-europe/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/10/trains-in-europe/</guid><description>I took the train to go from Paris 🇫🇷 to Stavanger in Norway 🇳🇴. That&apos;s 9 different trains, 2550km, about 33 hours on a train seat, and 3 days total.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>Travel &amp; Events</category><enclosure url="https://theopnv.com/_astro/cover.BJT0mM5n_ZeJE2g.jpeg" length="0" type="image/jpeg"/></item><item><title>Read Obsidian notes in your browser, without publishing them</title><link>https://theopnv.com/blog/2026/09/obsidian-page-to-browser/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/09/obsidian-page-to-browser/</guid><description>A small open-source viewer that renders any note from your Obsidian vault as a local webpage, so bookmarks, todo lists and cheatsheets are one click away in your browser toolbar.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><category>Tools &amp; Productivity</category><enclosure url="https://theopnv.com/_astro/cover.DgWgxXPL_Z7kEHj.jpeg" length="0" type="image/jpeg"/></item><item><title>How many changes can you land at once?</title><link>https://theopnv.com/blog/2026/08/merge-queues/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/08/merge-queues/</guid><description>Merge queues automate rebasing and testing PRs at scale, with batching, speculative checks, and bisection tradeoffs explained through failure-rate math.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><enclosure url="https://theopnv.com/_astro/cover.B3hUWXWN_Z28C0eN.jpeg" length="0" type="image/jpeg"/></item><item><title>The tests you didn&apos;t need to run</title><link>https://theopnv.com/blog/2026/07/scoping-tests/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/07/scoping-tests/</guid><description>Fix slow CI with test selection: test impact analysis, only-changed flags and Meta&apos;s Predictive Test Selection skip the tests a change can&apos;t break.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><enclosure url="https://theopnv.com/_astro/cover.DSbQcBFg_4T2So.jpeg" length="0" type="image/jpeg"/></item><item><title>Two CI strategies to keep main green</title><link>https://theopnv.com/blog/2026/07/blocking-vs-chasing-failures/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/07/blocking-vs-chasing-failures/</guid><description>A discussion on CI/CD strategies to keep main green: block bad changes with a merge gate, or land them fast and chase failures with automated bisection and rollback. Or blend both!</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><enclosure url="https://theopnv.com/_astro/cover.BRvgglS8_2oNbfc.jpeg" length="0" type="image/jpeg"/></item><item><title>A short series on Test Automation</title><link>https://theopnv.com/blog/2026/07/ci-speed-vs-quality/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/07/ci-speed-vs-quality/</guid><description>Slow CI and flaky tests feel like the price of quality. DORA research shows speed and stability move together. A series on test automation strategies.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><enclosure url="https://theopnv.com/_astro/cover.DylVRMpw_ZXp9rV.jpeg" length="0" type="image/jpeg"/></item><item><title>56 Repositories, 5 Hours and $80: How I automated a large-scale update with AI</title><link>https://theopnv.com/blog/2026/06/multi-repositories-update/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/06/multi-repositories-update/</guid><description>A reproducible AI-assisted workflow for large-scale migrations across many repositories, with Renovate and Claude. 56 repositories, 5 hours, $80.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>CI/CD &amp; Testing</category><category>AI</category><enclosure url="https://theopnv.com/_astro/cover.CGQ7cWE5_Z7hFrd.jpeg" length="0" type="image/jpeg"/></item><item><title>Jobpocalypse: Designing Economic Systems for the AI era</title><link>https://theopnv.com/blog/2026/05/economics-of-ai/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/05/economics-of-ai/</guid><description>AI threatens millions of jobs while political debate ignores it. Four economic models for the transition: bans, UBI taxes, token taxes, job-creation incentives.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><category>AI</category><category>Tech &amp; Society</category><enclosure url="https://theopnv.com/_astro/cover.BhILxp9H_ZFxqTj.jpeg" length="0" type="image/jpeg"/></item><item><title>Surveillance 2.0: how to become a ghost</title><link>https://theopnv.com/blog/2026/04/privacy/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/04/privacy/</guid><description>Surveillance 2.0: how to become a ghost</description><pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate><category>Tech &amp; Society</category><enclosure url="https://theopnv.com/_astro/jason-bourne.DLLjY_LB_Zl5eSW.jpeg" length="0" type="image/jpeg"/></item><item><title>Surveillance 2.0: when privacy becomes a luxury</title><link>https://theopnv.com/blog/2026/02/privacy/</link><guid isPermaLink="true">https://theopnv.com/blog/2026/02/privacy/</guid><description>Tech giants and governments are converging on mass surveillance, from Chat Control to AI-powered facial scans. Why privacy is becoming a luxury.</description><pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate><category>Tech &amp; Society</category><enclosure url="https://theopnv.com/_astro/cover.NHQqgOUB_Z2fX5JY.jpeg" length="0" type="image/jpeg"/></item><item><title>15 tips for putting your life on autopilot</title><link>https://theopnv.com/blog/life-hacks/</link><guid isPermaLink="true">https://theopnv.com/blog/life-hacks/</guid><description>15 tips for putting your life on autopilot</description><pubDate>Thu, 22 Dec 2022 11:30:03 GMT</pubDate><category>Tools &amp; Productivity</category><enclosure url="https://theopnv.com/_astro/cover.C91I8snz_2hjtpd.jpeg" length="0" type="image/jpeg"/></item><item><title>Build a Node.js Server — Part 4/4: Testing</title><link>https://theopnv.com/blog/nodejs-server-04/</link><guid isPermaLink="true">https://theopnv.com/blog/nodejs-server-04/</guid><description>Part 4/4: test the Koa.js, GraphQL, and MongoDB server with Mocha and Chai, using an in-memory MongoDB instance to keep tests fast and isolated.</description><pubDate>Sun, 29 Nov 2020 04:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.CWlO0coy_19BLB5.jpeg" length="0" type="image/jpeg"/></item><item><title>Build a Node.js Server — Part 3/4: The API</title><link>https://theopnv.com/blog/nodejs-server-03/</link><guid isPermaLink="true">https://theopnv.com/blog/nodejs-server-03/</guid><description>Part 3/4: build a GraphQL API with Apollo Server and MongoDB, using GraphQL Code Generator to keep schema, types, and database models in sync.</description><pubDate>Sun, 29 Nov 2020 03:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.CWlO0coy_19BLB5.jpeg" length="0" type="image/jpeg"/></item><item><title>Build a Node.js Server — Part 2/4: Docker</title><link>https://theopnv.com/blog/nodejs-server-02/</link><guid isPermaLink="true">https://theopnv.com/blog/nodejs-server-02/</guid><description>Part 2/4: containerize the Node.js server and a MongoDB database with Docker and Docker Compose, then manage secrets with environment variables.</description><pubDate>Sun, 29 Nov 2020 02:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.CWlO0coy_19BLB5.jpeg" length="0" type="image/jpeg"/></item><item><title>Build a Node.js Server — Part 1/4</title><link>https://theopnv.com/blog/nodejs-server-01/</link><guid isPermaLink="true">https://theopnv.com/blog/nodejs-server-01/</guid><description>Part 1/4: bootstrap a Node.js server with Koa.js and TypeScript, then add ESLint, Husky git hooks, and Nodemon for a clean development workflow.</description><pubDate>Sun, 29 Nov 2020 01:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.CWlO0coy_19BLB5.jpeg" length="0" type="image/jpeg"/></item><item><title>An intro to the git basics</title><link>https://theopnv.com/blog/git-101/</link><guid isPermaLink="true">https://theopnv.com/blog/git-101/</guid><description>Learning Git - 101</description><pubDate>Tue, 09 Oct 2018 11:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.DRgV9tmQ_tp4Mj.jpeg" length="0" type="image/jpeg"/></item><item><title>Load a C++ class from a shared library (Modern C++)</title><link>https://theopnv.com/blog/cpp-dynamic-loading/</link><guid isPermaLink="true">https://theopnv.com/blog/cpp-dynamic-loading/</guid><description>Loading of a C++ class from a shared library (Modern C++)</description><pubDate>Mon, 26 Feb 2018 11:30:03 GMT</pubDate><category>Tutorials</category><enclosure url="https://theopnv.com/_astro/cover.MEgdlYi__Z11gaDY.jpeg" length="0" type="image/jpeg"/></item><item><title>Can Vivatechnology make Paris tech again?</title><link>https://theopnv.com/blog/vivatech/</link><guid isPermaLink="true">https://theopnv.com/blog/vivatech/</guid><description>Vivatech event review</description><pubDate>Sat, 07 Oct 2017 11:30:03 GMT</pubDate><category>Travel &amp; Events</category><enclosure url="https://theopnv.com/_astro/cover.C2CvItWH_Z1D6G2U.jpeg" length="0" type="image/jpeg"/></item><item><title>A modern and lightweight Arch-Linux (xfce) configuration</title><link>https://theopnv.com/blog/xfce/</link><guid isPermaLink="true">https://theopnv.com/blog/xfce/</guid><description>Arch Linux - XFCE configuration</description><pubDate>Fri, 07 Jul 2017 11:30:03 GMT</pubDate><category>Tools &amp; Productivity</category><enclosure url="https://theopnv.com/_astro/desktop.KAXS5LIs_ZBhYac.jpeg" length="0" type="image/jpeg"/></item></channel></rss>