<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Olawale Lawal</title><description>Payments, distributed systems, .NET and Go.</description><link>https://olawalelawal.dev/</link><item><title>Stop Rolling Your Own Transaction Management in .NET</title><link>https://olawalelawal.dev/stop-rolling-your-own-transaction-management-in-net/</link><guid isPermaLink="true">https://olawalelawal.dev/stop-rolling-your-own-transaction-management-in-net/</guid><description>Why TransactionScope is a better way to manage database transactions in .NET than a hand-rolled unit of work.</description><pubDate>Sat, 18 Apr 2026 17:36:00 GMT</pubDate><category>architecture</category><category>EF Core</category><category>C#</category><category>Distributed Systems</category><category>system design</category></item><item><title>Building Quorum: Architecture of a Multi-Tenant Approval Engine in Go</title><link>https://olawalelawal.dev/building-quorum-multi-tenant-approval-engine/</link><guid isPermaLink="true">https://olawalelawal.dev/building-quorum-multi-tenant-approval-engine/</guid><description>Every team builds maker-checker from scratch. Quorum is a standalone approval engine in Go that handles concurrent vote serialization, durable webhook delivery via the outbox pattern, multi-tenant isolation, and real-time SSE updates.</description><pubDate>Mon, 16 Mar 2026 10:37:00 GMT</pubDate><category>architecture</category><category>go</category><category>golang</category><category>maker-checker</category><category>concurrency</category><category>open source</category></item><item><title>Iterating a .NET CI/CD Pipeline From 12 Minutes to Under 5</title><link>https://olawalelawal.dev/iterating-a-net-ci-cd-pipeline-from-12-minutes-to-under-5/</link><guid isPermaLink="true">https://olawalelawal.dev/iterating-a-net-ci-cd-pipeline-from-12-minutes-to-under-5/</guid><description>I added automated API snapshot tracking to a four-service .NET backend and watched GitHub Actions build times go from 3 minutes to over 12.</description><pubDate>Tue, 17 Feb 2026 11:48:00 GMT</pubDate><category>DevOps</category><category>Github Actions</category><category>C#</category><category>openapi</category><category>.Net Core</category></item><item><title>BranchGuard: Stateless GitHub Automation for Smarter Branch Rules</title><link>https://olawalelawal.dev/building-branchguard-a-stateless-github-app-for-programmable-branch-protection/</link><guid isPermaLink="true">https://olawalelawal.dev/building-branchguard-a-stateless-github-app-for-programmable-branch-protection/</guid><description>How I built a stateless GitHub App that evaluates configurable branch protection rules based on which files changed, with zero infrastructure dependencies.</description><pubDate>Sun, 01 Feb 2026 23:54:00 GMT</pubDate><category>github</category><category>DevOps</category><category>typescript</category><category>automation</category><category>probot</category></item><item><title>Auto-Logging: Automating Away the &quot;Please Turn On Debug Logs&quot;</title><link>https://olawalelawal.dev/building-an-intelligent-observability-stack-auto-healing-debugging-with-grafana-opentelemetry-and-a-custom-auto-logging-service/</link><guid isPermaLink="true">https://olawalelawal.dev/building-an-intelligent-observability-stack-auto-healing-debugging-with-grafana-opentelemetry-and-a-custom-auto-logging-service/</guid><description>A production observability platform that auto-enables verbose logging on errors and disables it when resolved. Built with Grafana, OpenTelemetry, and .NET.</description><pubDate>Sun, 28 Dec 2025 06:56:00 GMT</pubDate><category>observability</category><category>grafana</category><category>opentelemetry</category><category>logging</category><category>DevOps</category><category>monitoring</category></item><item><title>Building CI/CD Pipelines for .NET Core on Github Actions</title><link>https://olawalelawal.dev/building-ci-cd-pipelines-for-net-core-on-github-actions/</link><guid isPermaLink="true">https://olawalelawal.dev/building-ci-cd-pipelines-for-net-core-on-github-actions/</guid><description>Learn how to build and automate CI/CD pipelines for .NET Core applications using GitHub Actions, from build to deployment.</description><pubDate>Fri, 12 Sep 2025 11:10:00 GMT</pubDate><category>DevOps</category><category>Microservice</category><category>.Net Core</category></item><item><title>Why your password is about to become obsolete</title><link>https://olawalelawal.dev/why-your-password-is-about-to-become-obsolete/</link><guid isPermaLink="true">https://olawalelawal.dev/why-your-password-is-about-to-become-obsolete/</guid><description>Passwords are on their way out. Discover why passkeys, biometrics and passwordless authentication are replacing traditional credentials for good.</description><pubDate>Fri, 29 Aug 2025 00:23:00 GMT</pubDate><category>Security</category><category>Passwords</category><category>Op-ed</category></item><item><title>The API Diff Tool That Escaped the Monolith</title><link>https://olawalelawal.dev/the-api-diff-tool-that-escaped-the-monolith/</link><guid isPermaLink="true">https://olawalelawal.dev/the-api-diff-tool-that-escaped-the-monolith/</guid><description>Three generations of a Swagger diff tool: from React SPA to embedded HTML to reusable NuGet packages. The patterns that made it work across ASP.NET projects.</description><pubDate>Tue, 08 Jul 2025 18:28:00 GMT</pubDate><category>C#</category><category>openapi</category><category>devtools</category></item><item><title>Secure, Centralized Configuration in .NET Core with Hashicorp Vault</title><link>https://olawalelawal.dev/secure-centralized-configuration-in-net-core-with-hashicorp-vault/</link><guid isPermaLink="true">https://olawalelawal.dev/secure-centralized-configuration-in-net-core-with-hashicorp-vault/</guid><description>Set up HashiCorp Vault with .NET Core for centralized static and dynamic secrets management. </description><pubDate>Fri, 30 May 2025 02:20:48 GMT</pubDate><category>.Net Core</category><category>Microservice</category></item><item><title>Why Your Phone&apos;s Battery Never Lives Up to the Hype</title><link>https://olawalelawal.dev/why-your-phones-battery-never-lives-up-to-the-hype/</link><guid isPermaLink="true">https://olawalelawal.dev/why-your-phones-battery-never-lives-up-to-the-hype/</guid><description>Phone manufacturers promise all-day battery life, but reality tells a different story. Understand the chemistry and engineering behind battery degradation.</description><pubDate>Tue, 08 Apr 2025 01:44:00 GMT</pubDate><category>Mobile Phones</category><category>Op-ed</category></item><item><title>The FinTech Staff Engineer: Translating Business Risk into Technical Architecture</title><link>https://olawalelawal.dev/the-fintech-staff-engineer-translating-business-risk-into-technical-architecture/</link><guid isPermaLink="true">https://olawalelawal.dev/the-fintech-staff-engineer-translating-business-risk-into-technical-architecture/</guid><description>A framework for fintech staff engineers to translate vague compliance mandates into concrete technical requirements, architecture patterns, and SDLC processes.</description><pubDate>Sun, 16 Mar 2025 15:11:00 GMT</pubDate><category>payment</category><category>fintech</category><category>compliance</category></item><item><title>Building for the 1%: Engineering Handling for Exceptions and Disputes</title><link>https://olawalelawal.dev/building-for-the-1-engineering-handling-for-exceptions-and-disputes/</link><guid isPermaLink="true">https://olawalelawal.dev/building-for-the-1-engineering-handling-for-exceptions-and-disputes/</guid><description>Payment engineers spend 80% of their time on 5% of transactions. Learn how to architect exception handling, dispute flows, and ledger reconciliation.</description><pubDate>Mon, 10 Feb 2025 08:21:00 GMT</pubDate><category>payment</category><category>ledger</category><category>chargebacks</category><category>resiliency</category></item><item><title>Harnessing PostGIS in .NET: Building Location-Aware Applications</title><link>https://olawalelawal.dev/harnessing-postgis-in-net-building-location-aware-applications/</link><guid isPermaLink="true">https://olawalelawal.dev/harnessing-postgis-in-net-building-location-aware-applications/</guid><description>Learn how to integrate PostGIS with .NET to build powerful, location-aware applications. A practical guide to spatial data and queries in C#.</description><pubDate>Thu, 16 Jan 2025 00:40:00 GMT</pubDate><category>.Net Core</category><category>PostgreSQL</category><category>spatial</category></item><item><title>From Debugging to Design: How Thinking in Flows Makes You a Better Payments Engineer</title><link>https://olawalelawal.dev/from-debugging-to-design/</link><guid isPermaLink="true">https://olawalelawal.dev/from-debugging-to-design/</guid><description>The Three Flows framework: funds, data, and reconciliation. Turn payment debugging from guesswork into forensic science.</description><pubDate>Wed, 01 Jan 2025 23:38:00 GMT</pubDate><category>payment</category><category>system design</category></item><item><title>The Map is Not the Territory: Navigating the Hidden Complexities of Payment Rails</title><link>https://olawalelawal.dev/the-map-is-not-the-territory-navigating-the-hidden-complexities-of-payment-rails/</link><guid isPermaLink="true">https://olawalelawal.dev/the-map-is-not-the-territory-navigating-the-hidden-complexities-of-payment-rails/</guid><description>Authorization and settlement are separate systems with separate timelines. Learn the real-world complexities of payment rails that documentation won&apos;t tell you.</description><pubDate>Tue, 10 Dec 2024 19:29:00 GMT</pubDate><category>payment</category><category>fintech</category><category>distributed-systems</category><category>reconciliation</category></item><item><title>Using Caddy as a Reverse Proxy with SSL Termination and Cloudflare in Docker Compose</title><link>https://olawalelawal.dev/using-caddy-as-a-reverse-proxy-with-ssl-termination-lets-encrypt-and-cloudflare-in-docker-compose/</link><guid isPermaLink="true">https://olawalelawal.dev/using-caddy-as-a-reverse-proxy-with-ssl-termination-lets-encrypt-and-cloudflare-in-docker-compose/</guid><description>Set up Caddy as a reverse proxy with automatic HTTPS using Let&apos;s Encrypt SSL and Cloudflare DNS validation in Docker Compose.</description><pubDate>Sat, 02 Nov 2024 18:29:00 GMT</pubDate><category>Reverse Proxy</category><category>Microservice</category></item><item><title>The Truth About &apos;Private Browsing&apos;</title><link>https://olawalelawal.dev/the-truth-about-private-browsing/</link><guid isPermaLink="true">https://olawalelawal.dev/the-truth-about-private-browsing/</guid><description>Incognito mode doesn&apos;t make you invisible online. Here&apos;s what private browsing actually hides and what it doesn&apos;t</description><pubDate>Mon, 23 Sep 2024 14:22:00 GMT</pubDate><category>Browsers</category><category>Privacy</category><category>Op-ed</category></item><item><title>Coordinating Distributed Operations with Hazelcast HMap and AsyncContext in .NET</title><link>https://olawalelawal.dev/coordinating-distributed-operations-with-hazelcast-hmap-and-asynccontext-in-net/</link><guid isPermaLink="true">https://olawalelawal.dev/coordinating-distributed-operations-with-hazelcast-hmap-and-asynccontext-in-net/</guid><description>Use Hazelcast distributed maps and .NET AsyncContext to coordinate operations across services. Covers locking, leader election and async patterns</description><pubDate>Mon, 26 Aug 2024 16:42:00 GMT</pubDate><category>.Net Core</category><category>Distributed Systems</category><category>HazelCast</category><category>Coordination</category></item><item><title>Using Ocelot as an API Gateway in a .NET Core Microservices Architecture</title><link>https://olawalelawal.dev/using-ocelot-as-an-api-gateway-in-a-net-core-microservices-architecture/</link><guid isPermaLink="true">https://olawalelawal.dev/using-ocelot-as-an-api-gateway-in-a-net-core-microservices-architecture/</guid><description>Centralize routing, authentication and load balancing in .NET Core microservices with Ocelot API Gateway.</description><pubDate>Wed, 05 Jun 2024 15:51:00 GMT</pubDate><category>.Net Core</category><category>Ocelot</category><category>Microservice</category></item><item><title>Advanced Multi-User Authentication in .NET Core</title><link>https://olawalelawal.dev/advanced-multi-user-authentication-in-net-core/</link><guid isPermaLink="true">https://olawalelawal.dev/advanced-multi-user-authentication-in-net-core/</guid><description>Extend ASP.NET Core Identity with custom UserManagers and SignInManagers to support multi-user-type authentication in a single app.</description><pubDate>Mon, 26 Feb 2024 13:16:00 GMT</pubDate><category>.Net Core</category><category>EF Core</category></item><item><title>Death to SMS OTPs!</title><link>https://olawalelawal.dev/death-to-sms-otps/</link><guid isPermaLink="true">https://olawalelawal.dev/death-to-sms-otps/</guid><description>SMS OTPs are insecure and outdated. Learn why SIM-swapping and phishing make SMS verification a liability.</description><pubDate>Wed, 20 Dec 2023 17:17:00 GMT</pubDate><category>Security</category><category>Op-ed</category></item><item><title>Structured Logging in .NET with Seq: A Developer&apos;s Guide</title><link>https://olawalelawal.dev/structured-logging-in-net-with-seq-a-developers-guide/</link><guid isPermaLink="true">https://olawalelawal.dev/structured-logging-in-net-with-seq-a-developers-guide/</guid><description>Replace noisy text logs with structured logging in .NET using Seq. Learn how to correlation across microservices and advanced querying techniques.</description><pubDate>Fri, 27 Oct 2023 21:25:00 GMT</pubDate><category>.Net Core</category><category>Microservice</category></item><item><title>Mastering TaskCompletionSource in C#</title><link>https://olawalelawal.dev/mastering-taskcompletionsource-in-c/</link><guid isPermaLink="true">https://olawalelawal.dev/mastering-taskcompletionsource-in-c/</guid><description>Bridge callback-based APIs &amp; event-driven code with async/await using TaskCompletionSource in C#. Practical patterns for custom async operations.</description><pubDate>Mon, 19 Jun 2023 03:07:00 GMT</pubDate><category>C#</category></item></channel></rss>