<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Irvan Mahendra&apos;s Blog</title><description>Personal thoughts on self-development and reflection, sometimes about tech.</description><link>https://irvanmahendra.com/</link><language>en-us</language><item><title>How to Write Effective Blameless Postmortems: A Guide to Learning from Incidents for Software Engineer</title><link>https://irvanmahendra.com/blog/how-to-write-effective-blameless-postmortems-a-guide-to-learning-from-incidents/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/how-to-write-effective-blameless-postmortems-a-guide-to-learning-from-incidents/</guid><description>Incidents are inevitable — what matters is how your team responds. Learn how to write blameless postmortems that turn failures into learning opportunities without creating a culture of fear.</description><pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Balancing Perfection and Pragmatism in Software Development</title><link>https://irvanmahendra.com/blog/balancing-perfection-and-pragmatism-in-software-development/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/balancing-perfection-and-pragmatism-in-software-development/</guid><description>Clean code and perfect architecture sound great, but sometimes business reality demands we just ship it. How can engineers balance both worlds?</description><pubDate>Sat, 10 May 2025 00:00:00 GMT</pubDate></item><item><title>In Praise of Legacy Code: Why Bad Code Deserves Respect</title><link>https://irvanmahendra.com/blog/in-praise-of-legacy-code-why-bad-code-deserves-respect/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/in-praise-of-legacy-code-why-bad-code-deserves-respect/</guid><description>Legacy code is often seen as a burden, but without it, most companies wouldn’t even exist. Let’s explore why we should respect it, not just hate it.</description><pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate></item><item><title>The Uneasy Side of Building Automation Tools</title><link>https://irvanmahendra.com/blog/the-uneasy-side-of-building-automation-tools/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/the-uneasy-side-of-building-automation-tools/</guid><description>A reflection on being asked to build automation tools that may make certain roles redundant—between pride in efficiency and the guilt of displacement.</description><pubDate>Wed, 04 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Trunk-Based Development (TBD) in SaaS: Backward Compatibility, Gradual Rollout, and a Real Migration Case Study</title><link>https://irvanmahendra.com/blog/tbd-and-backward-compatibility/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/tbd-and-backward-compatibility/</guid><description>A comprehensive, sequential guide to Trunk-Based Development (TBD) with SaaS-focused examples (HRIS &amp; e-sign), backward compatibility patterns, gradual rollout playbooks, and an INT→DECIMAL subscription migration case study.</description><pubDate>Tue, 17 Sep 2024 00:00:00 GMT</pubDate></item><item><title>Distributed Locks (Without Microservices): A Deep Dive for Real-World Monoliths</title><link>https://irvanmahendra.com/blog/distributed-locks-deep-dive/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/distributed-locks-deep-dive/</guid><description>Prevent race conditions in a single-application architecture: DB row locks, Postgres advisory locks, Redis locks (SET NX PX), and when a unique constraint is all you need.</description><pubDate>Wed, 03 Jul 2024 00:00:00 GMT</pubDate></item><item><title>Partitioning &amp; Sharding: From One Big Table to Scalable Storage</title><link>https://irvanmahendra.com/blog/sharding-partitioning-deep-dive/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/sharding-partitioning-deep-dive/</guid><description>A practical, staged playbook to introduce PostgreSQL partitioning (and later sharding) without rewriting your app.</description><pubDate>Sat, 27 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Zero-Downtime Database Migrations: A Practical Guide</title><link>https://irvanmahendra.com/blog/database-migration-zero-downtime/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/database-migration-zero-downtime/</guid><description>Learn strategies to migrate your database schema safely without taking production offline.</description><pubDate>Tue, 06 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Database Indexing Strategies: From EXPLAIN to Index-Only Scans (PostgreSQL focus)</title><link>https://irvanmahendra.com/blog/database-indexing-deep-dive/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/database-indexing-deep-dive/</guid><description>A hands-on methodology to design, validate, and maintain high-impact indexes in a single-app stack.</description><pubDate>Wed, 01 Nov 2023 00:00:00 GMT</pubDate></item><item><title>Lembur Bukan Prestasi</title><link>https://irvanmahendra.com/blog/lembur-bukan-prestasi/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/lembur-bukan-prestasi/</guid><description>Budaya lembur sering dianggap bukti dedikasi, padahal lebih sering merupakan sinyal ada yang keliru dalam cara kita bekerja.</description><pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Membebaskan Diri dari Validasi Orang Lain: Merdeka Secara Psikologis</title><link>https://irvanmahendra.com/blog/membebaskan-diri-dari-validasi-orang-lain/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/membebaskan-diri-dari-validasi-orang-lain/</guid><description>Kamu baru benar-benar bebas ketika tak lagi bergantung pada tepuk tangan orang lain.</description><pubDate>Fri, 07 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Mengapa Tidak Semua Pendapat Perlu Dibantah</title><link>https://irvanmahendra.com/blog/mengapa-tidak-semua-pendapat-perlu-dibantah/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/mengapa-tidak-semua-pendapat-perlu-dibantah/</guid><description>Mengenali kekuatan dalam diam dan kebijaksanaan dalam memilih pertempuran</description><pubDate>Sun, 26 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Hello World</title><link>https://irvanmahendra.com/blog/hello-world/</link><guid isPermaLink="true">https://irvanmahendra.com/blog/hello-world/</guid><description>My first blog post — a brief introduction to who I am and what I&apos;ll be writing about here.</description><pubDate>Thu, 01 Dec 2022 00:00:00 GMT</pubDate></item></channel></rss>