<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: perkovsky</title><link>https://news.ycombinator.com/user?id=perkovsky</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 21 Jun 2026 08:38:52 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=perkovsky" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: NGB, an open-source .NET platform for document-driven business apps]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/ngbplatform/NGB">https://github.com/ngbplatform/NGB</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48588924">https://news.ycombinator.com/item?id=48588924</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 18 Jun 2026 17:50:55 +0000</pubDate><link>https://github.com/ngbplatform/NGB</link><dc:creator>perkovsky</dc:creator><comments>https://news.ycombinator.com/item?id=48588924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48588924</guid></item><item><title><![CDATA[New comment by perkovsky in "Testing distributed systems with AI agents"]]></title><description><![CDATA[
<p>I like the “claim-driven” framing.<p>For stateful systems, tests named after setup details often get weakened over time. Tests named after the claim they are trying to falsify are harder to water down.<p>The part I’d be most interested in is how well this works for business invariants like idempotent posting, no lost acknowledgements and recovery after partial failure.</p>
]]></description><pubDate>Wed, 20 May 2026 15:44:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48209654</link><dc:creator>perkovsky</dc:creator><comments>https://news.ycombinator.com/item?id=48209654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48209654</guid></item><item><title><![CDATA[New comment by perkovsky in "Mini Shai-Hulud Strikes Again: 314 npm Packages Compromised"]]></title><description><![CDATA[
<p>Agree. Postinstall scripts should be explicit opt-in, not ambient capability.<p>Most packages should not need arbitrary code execution during install. And when they do, that should be obvious during review.<p>The default should probably be: install files, don’t run code.</p>
]]></description><pubDate>Tue, 19 May 2026 13:04:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48192761</link><dc:creator>perkovsky</dc:creator><comments>https://news.ycombinator.com/item?id=48192761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48192761</guid></item><item><title><![CDATA[New comment by perkovsky in "Leaving GitHub for Forgejo"]]></title><description><![CDATA[
<p>I agree with this. Moving the git repo is easy, moving the whole project surface is the hard part.<p>Issues, releases, CI, docs, security advisories, search and discoverability all tend to get coupled to GitHub over time.<p>For open-source projects, I like the idea of self-hosted as the source of truth, but still keeping a read-only GitHub mirror so people can actually find it.</p>
]]></description><pubDate>Wed, 13 May 2026 13:55:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48121942</link><dc:creator>perkovsky</dc:creator><comments>https://news.ycombinator.com/item?id=48121942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48121942</guid></item><item><title><![CDATA[New comment by perkovsky in "Learning Software Architecture"]]></title><description><![CDATA[
<p>Yes. I’d add: design the module boundaries before splitting deployment.<p>A modular monolith still forces you to name ownership, data boundaries and invariants, but without making every mistake a networking/ops problem.</p>
]]></description><pubDate>Tue, 12 May 2026 16:32:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48110587</link><dc:creator>perkovsky</dc:creator><comments>https://news.ycombinator.com/item?id=48110587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48110587</guid></item></channel></rss>