<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Youness Fkhach — Writing</title><description>Senior full-stack engineer with 8+ years building products on Ruby on Rails and React. I ship performance work, AI-assisted developer tooling, and platforms that scale.</description><link>https://fkhach.me</link><language>en</language><item><title>Rebuilding my site on Vite+ to stay current</title><link>https://fkhach.me/blog/rebuilding-this-site-with-astro-and-vite-plus</link><guid isPermaLink="true">https://fkhach.me/blog/rebuilding-this-site-with-astro-and-vite-plus</guid><description>Introducing a new toolchain into a product I&apos;m shipping adds nothing to that product, so I never get to evaluate anything at work. Personal projects are the only place I do, and this time the thing under evaluation was Vite+.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><category>Vite+</category><category>Astro</category><category>Tooling</category><category>Learning</category></item><item><title>Rails signed_id is underrated</title><link>https://fkhach.me/blog/rails-signed-id-is-underrated</link><guid isPermaLink="true">https://fkhach.me/blog/rails-signed-id-is-underrated</guid><description>Email verification and password resets get re-implemented in every codebase. Most approaches add schema clutter or JWT machinery when Rails has a built-in solution.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Security</category><category>Architecture</category></item><item><title>Scrubfs: Effortless on-the-fly metadata cleaning</title><link>https://fkhach.me/blog/scrubfs-privacy-focused-fuse-filesystem</link><guid isPermaLink="true">https://fkhach.me/blog/scrubfs-privacy-focused-fuse-filesystem</guid><description>A VPN hides your location, but file metadata leaves fingerprints everywhere. I built scrubfs to strip metadata on read without modifying original files.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate><category>Rust</category><category>Linux</category><category>Privacy</category><category>Open Source</category></item><item><title>WebSockets from a PWA to a Raspberry Pi on the local network</title><link>https://fkhach.me/blog/websockets-from-a-pwa-to-a-raspberry-pi</link><guid isPermaLink="true">https://fkhach.me/blog/websockets-from-a-pwa-to-a-raspberry-pi</guid><description>Browsers won&apos;t open an insecure WebSocket from an HTTPS page, and a secure one needs a certificate they already trust. Getting one onto a Pi at a private address came down to a single decision: the Pi runs its own Wi-Fi.</description><pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate><category>PWA</category><category>WebSockets</category><category>TLS</category><category>Raspberry Pi</category><category>Let&apos;s Encrypt</category></item><item><title>Nested validation in Rails 8 without manual loops</title><link>https://fkhach.me/blog/nested-validation-in-rails-8</link><guid isPermaLink="true">https://fkhach.me/blog/nested-validation-in-rails-8</guid><description>Handling a three-tier model hierarchy in one request often leads to hand-rolled loops that get messy. Rails has solved this natively since version 2.3.</description><pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate><category>Ruby on Rails</category><category>Rails 8</category><category>Architecture</category></item></channel></rss>