<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Valentin Vivier</title><description>Software engineer, mostly Go/TypeScript/Python. Currently Director of Engineering at Stamus Networks.</description><link>https://example.com/</link><item><title>Stop letting AI decide when to run your tests</title><link>https://example.com/blog/ai-qa-gates/</link><guid isPermaLink="true">https://example.com/blog/ai-qa-gates/</guid><description>I built an AI code generation orchestrator where the AI never gets to skip the test suite. Deterministic QA gates, plans in the database, and why prompt engineering won&apos;t fix this.</description><pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Building a SaaS for radiation dosimetry in Go and React</title><link>https://example.com/blog/dosismart-stack/</link><guid isPermaLink="true">https://example.com/blog/dosismart-stack/</guid><description>Dosismart is a dose calculation platform I&apos;m building for the French operational dosimetry market. Zitadel auth, OpenTelemetry tracing, 12 containers in the dev stack, and HDS certification ahead.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Tuning Elasticsearch for 40k events/sec on bare metal</title><link>https://example.com/blog/elasticsearch-bare-metal-tuning/</link><guid isPermaLink="true">https://example.com/blog/elasticsearch-bare-metal-tuning/</guid><description>Thread pools, shard strategy, custom analyzers, and the Logstash-to-Fluentd migration. How I got an NDR pipeline to handle Suricata at 100Gbps.</description><pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate></item><item><title>I built a monorepo template because I kept wasting the first two weeks</title><link>https://example.com/blog/monorepo-vs-polyrepo/</link><guid isPermaLink="true">https://example.com/blog/monorepo-vs-polyrepo/</guid><description>Every project starts the same way: auth, database, CI, Docker, tests. I got tired of redoing it, so I built a template. Here&apos;s what kept going wrong and how I fixed it.</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Running Kubernetes across Scaleway, OVH, and a Proxmox box</title><link>https://example.com/blog/multi-cloud-gitops/</link><guid isPermaLink="true">https://example.com/blog/multi-cloud-gitops/</guid><description>Terraform for 4 providers, ArgoCD app-of-apps, Cilium network policies, CrunchyData PostgreSQL operator, and NixOS VMs for on-prem K3s. How I manage 5 clusters.</description><pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Managing 4 NixOS machines with one flake</title><link>https://example.com/blog/nixos-multi-machine-flake/</link><guid isPermaLink="true">https://example.com/blog/nixos-multi-machine-flake/</guid><description>My declarative setup for 2 desktops and 2 laptops. Overlays for custom packages, Home Manager for user configs, and why I stopped configuring things by hand.</description><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Live theme switching on NixOS across 10 apps at once</title><link>https://example.com/blog/nixos-theme-switcher/</link><guid isPermaLink="true">https://example.com/blog/nixos-theme-switcher/</guid><description>I built a theme system in Nix that generates configs for waybar, dunst, kitty, neovim, tmux, Firefox, VSCode, Qt5 apps, swaylock, and the login greeter from a single color palette.</description><pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Two commands to a working NDR stack</title><link>https://example.com/blog/stamusctl-1-two-commands/</link><guid isPermaLink="true">https://example.com/blog/stamusctl-1-two-commands/</guid><description>I wrote a Go CLI that pulls templates from an OCI registry, renders a Docker Compose config, and gives you a full Suricata-based network detection system in minutes.</description><pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Docker plumbing and PCAP replay</title><link>https://example.com/blog/stamusctl-2-docker-and-pcap/</link><guid isPermaLink="true">https://example.com/blog/stamusctl-2-docker-and-pcap/</guid><description>Circuit breakers for Docker, binary protocol parsing for log streaming, and how readpcap spins up a temporary Suricata container to turn a PCAP file into indexed security data.</description><pubDate>Tue, 26 Aug 2025 00:00:00 GMT</pubDate></item><item><title>The daemon, observability, and testing</title><link>https://example.com/blog/stamusctl-3-daemon-and-testing/</link><guid isPermaLink="true">https://example.com/blog/stamusctl-3-daemon-and-testing/</guid><description>stamusd exposes the same CLI as a REST API. Priority-based shutdown, hot-reloading auth, rate limiting with Redis fallback, and testing with an in-memory filesystem.</description><pubDate>Tue, 02 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Using YAML as a database for a React app</title><link>https://example.com/blog/yaml-driven-react-app/</link><guid isPermaLink="true">https://example.com/blog/yaml-driven-react-app/</guid><description>I built a game codex viewer where all the data lives in YAML files. Singleton loader with concurrent fetching, React hooks, character creator with localStorage persistence, and PDF export.</description><pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate></item></channel></rss>