<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>metalops.dev</title><description>A technical blog about software, systems, infrastructure and DevOps. Deep dives on Rust, infrastructure automation, and building resilient production systems.</description><link>https://metalops.dev/</link><item><title>Applying data engineering for image editing</title><link>https://metalops.dev/blog/data-engineering-for-photo-editing/</link><guid isPermaLink="true">https://metalops.dev/blog/data-engineering-for-photo-editing/</guid><description>Build an automated Python CLI pipeline for RAW photo processing. Generate AVIF variants, extract EXIF metadata, and create YAML catalogs for Astro portfolios.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Building a Fail2Ban log parser with rust</title><link>https://metalops.dev/blog/fail2ban-log-parser-intro/</link><guid isPermaLink="true">https://metalops.dev/blog/fail2ban-log-parser-intro/</guid><description>Build a high-performance Fail2Ban log parser in Rust. Parse structured data from log files with winnow parser combinators. Includes Python bindings guide.</description><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Welcome to Metalops</title><link>https://metalops.dev/blog/metalops/</link><guid isPermaLink="true">https://metalops.dev/blog/metalops/</guid><description>A technical blog about software, systems, infrastructure and DevOps. Deep dives on Rust, infrastructure automation, and building resilient production systems.</description><pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>