<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on The Pragmatic Engeneer</title><link>https://blog.iaroslavtsev.uk/posts/</link><description>Recent content in Posts on The Pragmatic Engeneer</description><generator>Hugo -- 0.152.2</generator><language>en-us</language><copyright>2025 Aleksei Iaroslavtsev</copyright><lastBuildDate>Fri, 03 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.iaroslavtsev.uk/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Elegant Go APIs with the Functional Options Pattern</title><link>https://blog.iaroslavtsev.uk/posts/functional-options-for-friendly-apis-in-go/</link><pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/functional-options-for-friendly-apis-in-go/</guid><description>Inspired by Dave Cheney&amp;rsquo;s classic post, this article explores how the functional options pattern can make your Go APIs cleaner, more extensible, and a joy to use, demonstrated with a practical example.</description></item><item><title>A Guide to Full-Stack Rails Optimization</title><link>https://blog.iaroslavtsev.uk/posts/a-guide-to-full-stack-rails-optimization/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/a-guide-to-full-stack-rails-optimization/</guid><description>A deep-dive case study on optimizing a Rails app, tackling everything from slow data imports (using bulk inserts) to sluggish page loads (fixing N+1 queries and adding database indexes). We cut import times by 40% and page loads by over 90%.</description></item><item><title>From 20 Seconds to 6: A Guide to Ruby Concurrency</title><link>https://blog.iaroslavtsev.uk/posts/a-deep-dive-into-ruby-concurrency-case-study/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/a-deep-dive-into-ruby-concurrency-case-study/</guid><description>An architectural breakdown of solving a concurrency challenge in Ruby, moving from a naive sequential model to a robust, scalable pattern using structured concurrency.</description></item><item><title>From Hours to Seconds: A Systematic Guide to Ruby Performance Optimization</title><link>https://blog.iaroslavtsev.uk/posts/from-hours-to-seconds-a-systematic-guide-to-ruby-performance-optimization/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/from-hours-to-seconds-a-systematic-guide-to-ruby-performance-optimization/</guid><description>A step-by-step walkthrough of how we optimized a Ruby script that was too slow to run, reducing its runtime to under 30 seconds using a methodical, profile-driven approach.</description></item><item><title>Taming Ruby's Memory Bloat: A Practical Guide to Processing Large Files</title><link>https://blog.iaroslavtsev.uk/posts/taming-rubys-memory-bloat-a-guide-to-processing-large-files/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/taming-rubys-memory-bloat-a-guide-to-processing-large-files/</guid><description>A case study on how we reduced the memory footprint of a data-processing Ruby script from over 200MB to under 70MB by ditching CSV.read and adopting a streaming, batch-processing approach.</description></item><item><title>Automating the Hunt for Berlin's Museum Sunday Tickets</title><link>https://blog.iaroslavtsev.uk/posts/museum-night-api-reverse-engineering/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/museum-night-api-reverse-engineering/</guid><description>A step-by-step guide on how I reverse-engineered the booking website&amp;rsquo;s private API to build a Ruby script that instantly finds available tickets for Berlin&amp;rsquo;s popular Museum Sunday.</description></item><item><title>Case Study: Building a Car Rental Website as a Team</title><link>https://blog.iaroslavtsev.uk/posts/car-rental-project-case-study/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/car-rental-project-case-study/</guid><description>A detailed walkthrough of how our team of six built a car rental website from scratch, focusing on our goals, technology stack, and the features we implemented, including an advanced integration with rental management software.</description></item><item><title>How I Built a Custom Blog Traffic Analyzer with Go and OpenTelemetry</title><link>https://blog.iaroslavtsev.uk/posts/how-we-analyze-blog-traffic/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/how-we-analyze-blog-traffic/</guid><description>A deep dive into my custom, privacy-friendly blog traffic analysis system built with a Go authentication service, Nginx Ingress, OpenTelemetry, and SigNoz for powerful observability.</description></item><item><title>How This Blog is Hosted: A Deep Dive into My OCI, Kubernetes, and Terraform Stack</title><link>https://blog.iaroslavtsev.uk/posts/how-this-blog-is-hosted/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.iaroslavtsev.uk/posts/how-this-blog-is-hosted/</guid><description>A complete walkthrough of the infrastructure powering this blog, built on a free Oracle Cloud account, managed with Terraform, and deployed to Kubernetes with full observability using SigNoz.</description></item></channel></rss>