<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cliff Jansen — Engineering Essays &amp; Production Runbooks</title>
    <link>https://cliffjansen.com</link>
    <description>Technical essays, software ventures, and reproducible engineering runbooks covering fintech, M-Pesa rails, WhatsApp Cloud API, and multi-tenant architectures by Cliff Jansen, Founder &amp; Software Engineer at Byte Nuru.</description>
    <language>en</language>
    <atom:link href="https://cliffjansen.com/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Sat, 19 Sep 2026 04:26:27 GMT</lastBuildDate>

    <item>
      <title>Access Window Architecture: An Independently Revocable Context Boundary for API Protection</title>
      <link>https://cliffjansen.com/blog/access-window-architecture</link>
      <guid isPermaLink="true">https://cliffjansen.com/blog/access-window-architecture</guid>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Security Architecture / API Protection</category>
      <description><![CDATA[The Access Window concept introduces an opaque, independently revocable context layer between endpoint discovery and authentication—making administrative and sensitive API surfaces less predictable without relying on secrecy.]]></description>
    </item>

    <item>
      <title>Designing Resilient M-Pesa Webhooks Under Intermittent Connectivity</title>
      <link>https://cliffjansen.com/blog/resilient-mpesa-webhooks</link>
      <guid isPermaLink="true">https://cliffjansen.com/blog/resilient-mpesa-webhooks</guid>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <category>Fintech Rails</category>
      <description><![CDATA[Handling mobile money transactions in East Africa requires designing for network timeouts, duplicate callbacks, and out-of-order deliveries. Here is how we build idempotent payment ingestion engines.]]></description>
    </item>

    <item>
      <title>Production-Grade Paystack Integration: Checkout, Webhooks &amp; Idempotency</title>
      <link>https://cliffjansen.com/learning/paystack-integration-guide</link>
      <guid isPermaLink="true">https://cliffjansen.com/learning/paystack-integration-guide</guid>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <category>Fintech &amp; Payments</category>
      <description><![CDATA[A definitive guide to integrating Paystack payments in Node.js/TypeScript. Covers server-side transaction initialization, signature-verified webhooks, idempotency keys, and reconciliation.]]></description>
    </item>

    <item>
      <title>Automated CI/CD Pipeline: Docker, GitHub Actions &amp; DigitalOcean</title>
      <link>https://cliffjansen.com/learning/docker-github-actions-digitalocean-cicd</link>
      <guid isPermaLink="true">https://cliffjansen.com/learning/docker-github-actions-digitalocean-cicd</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <category>DevOps &amp; Cloud</category>
      <description><![CDATA[A battle-tested CI/CD setup for modern web apps. Containerizes a full-stack TypeScript application with multi-stage Docker builds, runs GitHub Actions checks, and deploys with zero downtime to a DigitalOcean Droplet using Docker Compose and health checks.]]></description>
    </item>

    <item>
      <title>Building Resilient WhatsApp Cloud API Webhook Ingestion</title>
      <link>https://cliffjansen.com/learning/whatsapp-cloud-api-webhook-resilience</link>
      <guid isPermaLink="true">https://cliffjansen.com/learning/whatsapp-cloud-api-webhook-resilience</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <category>Messaging &amp; APIs</category>
      <description><![CDATA[How we process thousands of concurrent WhatsApp customer messages on BiasharaChats. Covers Meta hub.challenge verification, x-hub-signature-256 HMAC validation, fast async queue dispatching, and message deduplication.]]></description>
    </item>

    <item>
      <title>Zero-Downtime PostgreSQL Schema Migrations with Drizzle ORM</title>
      <link>https://cliffjansen.com/learning/safe-postgresql-migrations-drizzle</link>
      <guid isPermaLink="true">https://cliffjansen.com/learning/safe-postgresql-migrations-drizzle</guid>
      <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
      <category>Database &amp; Storage</category>
      <description><![CDATA[A disciplined approach to running database migrations on live production systems without table lock contention, dropped transactions, or deployment regressions.]]></description>
    </item>

    <item>
      <title>Why We Built BiasharaChats: The Reality of Conversational Commerce</title>
      <link>https://cliffjansen.com/blog/conversational-commerce-whatsapp-crm</link>
      <guid isPermaLink="true">https://cliffjansen.com/blog/conversational-commerce-whatsapp-crm</guid>
      <pubDate>Sat, 01 Nov 2025 00:00:00 GMT</pubDate>
      <category>Product Engineering</category>
      <description><![CDATA[In Kenya, informal and formal commerce thrives inside WhatsApp chats. Here is why conventional enterprise CRMs fail African SMEs, and what a specialized inbox looks like.]]></description>
    </item>

    <item>
      <title>Our Modern Multi-Tenant Stack: Next.js, Hono, and Drizzle</title>
      <link>https://cliffjansen.com/blog/multi-tenant-stack-nextjs-hono</link>
      <guid isPermaLink="true">https://cliffjansen.com/blog/multi-tenant-stack-nextjs-hono</guid>
      <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
      <category>SaaS Architecture</category>
      <description><![CDATA[How we structure multi-tenant enterprise applications at Byte Nuru to achieve ultra-fast cold starts, strict tenant isolation, and developer velocity.]]></description>
    </item>

    <item>
      <title>Offline-Tolerant Architecture for Multi-Branch Retail</title>
      <link>https://cliffjansen.com/blog/offline-tolerant-retail-erps</link>
      <guid isPermaLink="true">https://cliffjansen.com/blog/offline-tolerant-retail-erps</guid>
      <pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate>
      <category>Distributed Systems</category>
      <description><![CDATA[What happens to a retail point-of-sale when fiber internet drops mid-day? Building systems that operate smoothly without constant connectivity.]]></description>
    </item>
  </channel>
</rss>
