<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>NOSTREL writing</title>
    <link>https://nostrel.com/blog</link>
    <atom:link href="https://nostrel.com/blog/rss.xml" rel="self" type="application/rss+xml" />
    <description>Long technical pieces on M-Pesa, double-entry ledgers and the parts of payments that go wrong.</description>
    <language>en-KE</language>
    <lastBuildDate>Wed, 30 Sep 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Anyone could have created money with curl, including us</title>
      <link>https://nostrel.com/blog/credit-on-a-callback</link>
      <guid isPermaLink="true">https://nostrel.com/blog/credit-on-a-callback</guid>
      <description>Safaricom does not sign its callbacks. What that means for every M-Pesa integration in Kenya, and why authenticating the endpoint is the smaller half.</description>
      <pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
      <author>support@nostrel.com (NOSTREL engineering)</author>
      <category>security</category>
    </item>
    <item>
      <title>Why your money column should never hold a float</title>
      <link>https://nostrel.com/blog/integers-all-the-way-down</link>
      <guid isPermaLink="true">https://nostrel.com/blog/integers-all-the-way-down</guid>
      <description>0.1 plus 0.2 is not 0.3, and in a payments ledger that is not a curiosity. What goes wrong, and the one rule that removes the whole class of bug.</description>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <author>support@nostrel.com (NOSTREL engineering)</author>
      <category>engineering</category>
    </item>
    <item>
      <title>Safaricom says 412. Your database says 409.</title>
      <link>https://nostrel.com/blog/the-2am-reconciliation</link>
      <guid isPermaLink="true">https://nostrel.com/blog/the-2am-reconciliation</guid>
      <description>The reconciliation problem from the point of view of the person who has to do it at month end, and why it is a bookkeeping problem rather than a payments one.</description>
      <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
      <author>support@nostrel.com (NOSTREL)</author>
      <category>payments</category>
    </item>
  </channel>
</rss>
