<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dimuthu Wickramanayake — Writing</title><description>Notes on AI platform and agent infrastructure, distributed systems, and reliability — by Dimuthu Wickramanayake.</description><link>https://billacode.org</link><language>en-gb</language><item><title>Why MCP, Not REST APIs?</title><link>https://billacode.org/blogs/why-mcp-not-rest-apis</link><guid isPermaLink="true">https://billacode.org/blogs/why-mcp-not-rest-apis</guid><description>The question comes up the moment you try to make an agent use your existing API. The answer isn&apos;t that REST is wrong — it&apos;s that REST was designed for a client who reads the docs at build time, and an LLM isn&apos;t that client.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>From Raw Events to Per-User Intelligence: The Techniques Behind a Persona &amp; Propensity System</title><link>https://billacode.org/blogs/techniques-behind-a-persona-and-propensity-system</link><guid isPermaLink="true">https://billacode.org/blogs/techniques-behind-a-persona-and-propensity-system</guid><description>A field guide to the techniques that turn billions of behavioural events into per-user personas and forward-looking scores — identity resolution, RFM, quantile bucketing, time-share archetyping, temporal validation, leakage control, and transparent composite scoring.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Go vs NestJS: The Backend Decision You&apos;ll Thank Yourself For Later</title><link>https://billacode.org/blogs/go-vs-nestjs-the-backend-decision-youll-thank-yourself-for-later</link><guid isPermaLink="true">https://billacode.org/blogs/go-vs-nestjs-the-backend-decision-youll-thank-yourself-for-later</guid><description>A practical comparison for engineers who&apos;ve felt the growing pains of Node.js at scale — with real numbers, honest tradeoffs, and a story about a Cloud Function that forced the question.</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate></item><item><title>The Saga Pattern in Event-Driven Gamification Systems: Orchestrating Complexity with CQRS</title><link>https://billacode.org/blogs/saga-pattern-in-gamification-systems</link><guid isPermaLink="true">https://billacode.org/blogs/saga-pattern-in-gamification-systems</guid><description>How reactive sagas keep complex gamification workflows decoupled, resilient, and maintainable — and why the tradeoffs are worth it.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Import-Aware CI/CD for Firebase Cloud Functions: Deploy Only What Changed</title><link>https://billacode.org/blogs/import-aware-cicd-for-firebase-cloud-functions</link><guid isPermaLink="true">https://billacode.org/blogs/import-aware-cicd-for-firebase-cloud-functions</guid><description>If you have a monorepo with many Cloud Functions, setting up CI/CD can feel like something to avoid. In this guide I&apos;ll show a better approach: selective deployment using static import analysis, without any complex monorepo tooling like Bazel or Nx.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Building a Multi-Tenant E-Commerce Platform on Kubernetes with Linkerd, OpenTelemetry, and Helm</title><link>https://billacode.org/blogs/building-multi-tenant-microservices-on-kubernetes</link><guid isPermaLink="true">https://billacode.org/blogs/building-multi-tenant-microservices-on-kubernetes</guid><description>A hands-on guide to production-grade microservices with namespace-level tenant isolation, mTLS, observability, and a React dashboard — all running locally on kind.</description><pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate></item><item><title>What If Your LLM Could Remember You? Building a Neurotransmitter-Inspired Memory System for Local Language Models</title><link>https://billacode.org/blogs/living-llm-neurotransmitter-memory</link><guid isPermaLink="true">https://billacode.org/blogs/living-llm-neurotransmitter-memory</guid><description>How I drew on neuroscience to give a locally-running Llama 3.1 persistent memory, a personal knowledge graph, and the ability to learn from its own conversations.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Traditional software engineering jobs are FINISHED!!!!</title><link>https://billacode.org/blogs/traditional-software-engineering-jobs-are-finished</link><guid isPermaLink="true">https://billacode.org/blogs/traditional-software-engineering-jobs-are-finished</guid><description>For the first time after long resisting letting AI agents do full changes to a codebase, this weekend I did a project using Claude Code and didn&apos;t write a single line of code.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Handling RPC Exceptions in NestJS Microservices</title><link>https://billacode.org/blogs/handling-rpc-exceptions-in-nestjs-microservices</link><guid isPermaLink="true">https://billacode.org/blogs/handling-rpc-exceptions-in-nestjs-microservices</guid><description>How to properly handle RPC exceptions when communicating between NestJS microservices.</description><pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate></item><item><title>NestJS — Microservice to Microservice Communication Using RPC</title><link>https://billacode.org/blogs/nestjs-microservice-to-microservice-communication-using-rpc</link><guid isPermaLink="true">https://billacode.org/blogs/nestjs-microservice-to-microservice-communication-using-rpc</guid><description>So you split your giant monolith into microservices. Now how do they talk to each other? Here&apos;s how to use RPC in NestJS.</description><pubDate>Fri, 17 Oct 2025 00:00:00 GMT</pubDate></item><item><title>My Recycling App Did 3 Pivots and 0 Recycles. A Post-Mortem.</title><link>https://billacode.org/blogs/my-recycling-app-did-3-pivots-and-0-recycles-a-post-mortem</link><guid isPermaLink="true">https://billacode.org/blogs/my-recycling-app-did-3-pivots-and-0-recycles-a-post-mortem</guid><description>I was gonna save the planet. With code. Here&apos;s how zylobin failed spectacularly.</description><pubDate>Sat, 11 Oct 2025 00:00:00 GMT</pubDate></item><item><title>This is Fine: How Disabling Caching Can Set Your Database Ablaze</title><link>https://billacode.org/blogs/this-is-fine-how-disabling-caching-can-set-your-database-ablaze</link><guid isPermaLink="true">https://billacode.org/blogs/this-is-fine-how-disabling-caching-can-set-your-database-ablaze</guid><description>A cautionary tale from the trenches of application development about what happens when you disable caching to fix a bug.</description><pubDate>Sat, 11 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Your Laptop&apos;s &quot;AI Superpower&quot; is Kinda Dumb (Compared to Real APIs)</title><link>https://billacode.org/blogs/your-laptops-ai-superpower-is-kinda-dumb-compared-to-real-apis</link><guid isPermaLink="true">https://billacode.org/blogs/your-laptops-ai-superpower-is-kinda-dumb-compared-to-real-apis</guid><description>Or: How I Learned to Stop Worrying and Love the Cloud.</description><pubDate>Fri, 10 Oct 2025 00:00:00 GMT</pubDate></item><item><title>I Built a Website Because Sri Lankan Banks Won&apos;t (Credit Card Deals Aggregator)</title><link>https://billacode.org/blogs/i-built-a-website-because-sri-lankan-banks-wont-credit-card-deals-aggregator</link><guid isPermaLink="true">https://billacode.org/blogs/i-built-a-website-because-sri-lankan-banks-wont-credit-card-deals-aggregator</guid><description>Tired of missing credit card promotions in Sri Lanka, I scraped 50 bank websites and built CardPromotions.org — using Python, Playwright, and local AI.</description><pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Firebase dynamic links deprecated — Implement one in house</title><link>https://billacode.org/blogs/firebase-dynamic-links-deprecated-implement-one-in-house</link><guid isPermaLink="true">https://billacode.org/blogs/firebase-dynamic-links-deprecated-implement-one-in-house</guid><description>Firebase Dynamic Links are deprecated. Here&apos;s how to build your own deferred deep link system in-house.</description><pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Creating a VOD application (like Netflix, Amazon prime) using AWS</title><link>https://billacode.org/blogs/creating-a-vod-application-like-netflix-amazon-prime-using-aws-media-converter-s</link><guid isPermaLink="true">https://billacode.org/blogs/creating-a-vod-application-like-netflix-amazon-prime-using-aws-media-converter-s</guid><description>How to design and build a video-on-demand service using AWS MediaConvert, S3, and CloudFront.</description><pubDate>Sun, 23 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Estimating Bigquery result row count without running the whole query</title><link>https://billacode.org/blogs/estimating-bigquery-result-row-count-without-running-the-whole-query</link><guid isPermaLink="true">https://billacode.org/blogs/estimating-bigquery-result-row-count-without-running-the-whole-query</guid><description>How to estimate BigQuery result count without running the full query using dry run.</description><pubDate>Mon, 27 Jan 2025 00:00:00 GMT</pubDate></item></channel></rss>