<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Valentyn Korzun</title><description>A developer&apos;s notes — mostly about software, sometimes about other things.</description><link>https://valentynkorzun.dev/</link><language>en</language><item><title>Boundaries before abstractions</title><link>https://valentynkorzun.dev/articles/boundaries-before-abstractions/</link><guid isPermaLink="true">https://valentynkorzun.dev/articles/boundaries-before-abstractions/</guid><description>Why I draw the lines between modules first and let the abstractions arrive later, with the diagram I use to argue for it.</description><pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate><category>architecture</category><category>design</category></item><item><title>Idempotency is a contract, not a flag</title><link>https://valentynkorzun.dev/articles/idempotency-is-a-contract/</link><guid isPermaLink="true">https://valentynkorzun.dev/articles/idempotency-is-a-contract/</guid><description>What I ask a service to promise before I call it twice, and the small table I keep to make the promise hold.</description><pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate><category>distributed-systems</category><category>architecture</category></item><item><title>Notes on reading legacy code</title><link>https://valentynkorzun.dev/articles/reading-legacy-code/</link><guid isPermaLink="true">https://valentynkorzun.dev/articles/reading-legacy-code/</guid><description>A short routine for the first two hours with an unfamiliar codebase.</description><pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate><category>practice</category></item></channel></rss>