<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Konstantinos Papadopoulos — Essays</title>
    <link>https://knspap.com/essays</link>
    <description>Building beautiful things. Tech + quant finance.</description>
    <language>en</language>
    <atom:link href="https://knspap.com/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The Cost of a Clever Abstraction</title>
      <link>https://knspap.com/essays/the-cost-of-a-clever-abstraction</link>
      <guid isPermaLink="true">https://knspap.com/essays/the-cost-of-a-clever-abstraction</guid>
      <description>I once replaced four hundred lines of repetitive code with forty lines nobody could read. Here is the arithmetic I now do before doing that again.</description>
      <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
      <category>Practice</category>
      <category>Architecture</category>
    </item>
    <item>
      <title>Half a Million Points on a Phone</title>
      <link>https://knspap.com/essays/half-a-million-points-on-a-phone</link>
      <guid isPermaLink="true">https://knspap.com/essays/half-a-million-points-on-a-phone</guid>
      <description>Velvynote renders a world map of user notes on hardware that is mostly a battery with a screen. The map was never the hard part — the transitions between zoom levels were.</description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>Geospatial</category>
      <category>Performance</category>
    </item>
    <item>
      <title>Reading the Query Plan</title>
      <link>https://knspap.com/essays/reading-the-query-plan</link>
      <guid isPermaLink="true">https://knspap.com/essays/reading-the-query-plan</guid>
      <description>Postgres will tell you exactly why your query is slow, in a format designed to be ignored. Four things to look at, in order.</description>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <category>Postgres</category>
      <category>Performance</category>
    </item>
    <item>
      <title>Migrations That Survive Production</title>
      <link>https://knspap.com/essays/migrations-that-survive-production</link>
      <guid isPermaLink="true">https://knspap.com/essays/migrations-that-survive-production</guid>
      <description>Every project I have shipped eventually developed two sources of truth for its schema. Here is the discipline that finally stopped it happening.</description>
      <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
      <category>Postgres</category>
      <category>Practice</category>
    </item>
    <item>
      <title>Motion With Intent</title>
      <link>https://knspap.com/essays/motion-with-intent</link>
      <guid isPermaLink="true">https://knspap.com/essays/motion-with-intent</guid>
      <description>Most animation on the web is decoration wearing a costume. The test I use to decide whether a transition earns its milliseconds.</description>
      <pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
      <category>Interface</category>
      <category>Motion</category>
    </item>
  </channel>
</rss>