<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Minh Pham — Engineering Writing</title><link>https://minhpham06.com/blog.html</link><description>Notes on distributed systems, backend correctness, databases, networking, and ML systems.</description><language>en-us</language><item><title>The SQL Query That Made Me Rethink Every Layer Below It</title><link>https://minhpham06.com/blog/pagedb-from-pages-to-sql.html</link><description>Building PageDB from fixed pages to a bounded SQL server, one inspectable layer at a time.</description><pubDate>Tue, 08 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/pagedb-from-pages-to-sql.html</guid></item><item><title>A Security Control Is a Claim Until It Meets a Failure</title><link>https://minhpham06.com/blog/aegis-controls-need-failure-evidence.html</link><description>Testing Aegis with admission failures, a bad signed release, destructive restores, and a broken datapath.</description><pubDate>Tue, 08 Sep 2026 11:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/aegis-controls-need-failure-evidence.html</guid></item><item><title>A Payment Timeout Is Not a Decline</title><link>https://minhpham06.com/blog/payment-timeout-is-not-a-decline.html</link><description>Payment ambiguity, durable request identity, and reconciliation in CommerceCore.</description><pubDate>Mon, 07 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/payment-timeout-is-not-a-decline.html</guid></item><item><title>A CI System Is a Lease Protocol with Shell Commands Attached</title><link>https://minhpham06.com/blog/ci-system-is-a-lease-protocol.html</link><description>Fenced ownership and conservative remote-execution recovery in ForgeCI.</description><pubDate>Sun, 06 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/ci-system-is-a-lease-protocol.html</guid></item><item><title>Leader Election Was the Easy Part: What Building Raft Actually Required</title><link>https://minhpham06.com/blog/raft-after-leader-election.html</link><description>The persistence and client semantics QuorumKV needed beyond election.</description><pubDate>Sat, 05 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/raft-after-leader-election.html</guid></item><item><title>High Availability Is Not Recovery</title><link>https://minhpham06.com/blog/high-availability-is-not-recovery.html</link><description>What PgSentry taught me about failover, durability, and historical recovery.</description><pubDate>Fri, 04 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/high-availability-is-not-recovery.html</guid></item><item><title>I Built TCP Until curl Worked — Then the Interesting Problems Started</title><link>https://minhpham06.com/blog/tcp-after-curl-worked.html</link><description>The retransmission, congestion, window, and close behavior behind a working request.</description><pubDate>Thu, 03 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/tcp-after-curl-worked.html</guid></item><item><title>When the Performance Model Meets the GPU</title><link>https://minhpham06.com/blog/performance-model-meets-gpu.html</link><description>Keeping analytical predictions separate from measured hardware evidence.</description><pubDate>Wed, 02 Sep 2026 12:00:00 -0500</pubDate><guid isPermaLink="true">https://minhpham06.com/blog/performance-model-meets-gpu.html</guid></item></channel></rss>
