WritingTransmissions
23 posts on payments, distributed systems, .NET, Go and the tooling around them.
2026
- Stop Rolling Your Own Transaction Management in .NET
Why TransactionScope is a better way to manage database transactions in .NET than a hand-rolled unit of work.
- Building Quorum: Architecture of a Multi-Tenant Approval Engine in Go
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.
- Iterating a .NET CI/CD Pipeline From 12 Minutes to Under 5
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.
- BranchGuard: Stateless GitHub Automation for Smarter Branch Rules
How I built a stateless GitHub App that evaluates configurable branch protection rules based on which files changed, with zero infrastructure dependencies.
2025
- Auto-Logging: Automating Away the "Please Turn On Debug Logs"
A production observability platform that auto-enables verbose logging on errors and disables it when resolved. Built with Grafana, OpenTelemetry, and .NET.
- Building CI/CD Pipelines for .NET Core on Github Actions
Learn how to build and automate CI/CD pipelines for .NET Core applications using GitHub Actions, from build to deployment.
- Why your password is about to become obsolete
Passwords are on their way out. Discover why passkeys, biometrics and passwordless authentication are replacing traditional credentials for good.
- The API Diff Tool That Escaped the Monolith
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.
- Secure, Centralized Configuration in .NET Core with Hashicorp Vault
Set up HashiCorp Vault with .NET Core for centralized static and dynamic secrets management.
- Why Your Phone's Battery Never Lives Up to the Hype
Phone manufacturers promise all-day battery life, but reality tells a different story. Understand the chemistry and engineering behind battery degradation.
- The FinTech Staff Engineer: Translating Business Risk into Technical Architecture
A framework for fintech staff engineers to translate vague compliance mandates into concrete technical requirements, architecture patterns, and SDLC processes.
- Building for the 1%: Engineering Handling for Exceptions and Disputes
Payment engineers spend 80% of their time on 5% of transactions. Learn how to architect exception handling, dispute flows, and ledger reconciliation.
- Harnessing PostGIS in .NET: Building Location-Aware Applications
Learn how to integrate PostGIS with .NET to build powerful, location-aware applications. A practical guide to spatial data and queries in C#.
- From Debugging to Design: How Thinking in Flows Makes You a Better Payments Engineer
The Three Flows framework: funds, data, and reconciliation. Turn payment debugging from guesswork into forensic science.
2024
- The Map is Not the Territory: Navigating the Hidden Complexities of Payment Rails
Authorization and settlement are separate systems with separate timelines. Learn the real-world complexities of payment rails that documentation won't tell you.
- Using Caddy as a Reverse Proxy with SSL Termination and Cloudflare in Docker Compose
Set up Caddy as a reverse proxy with automatic HTTPS using Let's Encrypt SSL and Cloudflare DNS validation in Docker Compose.
- The Truth About 'Private Browsing'
Incognito mode doesn't make you invisible online. Here's what private browsing actually hides and what it doesn't
- Coordinating Distributed Operations with Hazelcast HMap and AsyncContext in .NET
Use Hazelcast distributed maps and .NET AsyncContext to coordinate operations across services. Covers locking, leader election and async patterns
- Using Ocelot as an API Gateway in a .NET Core Microservices Architecture
Centralize routing, authentication and load balancing in .NET Core microservices with Ocelot API Gateway.
- Advanced Multi-User Authentication in .NET Core
Extend ASP.NET Core Identity with custom UserManagers and SignInManagers to support multi-user-type authentication in a single app.
2023
- Death to SMS OTPs!
SMS OTPs are insecure and outdated. Learn why SIM-swapping and phishing make SMS verification a liability.
- Structured Logging in .NET with Seq: A Developer's Guide
Replace noisy text logs with structured logging in .NET using Seq. Learn how to correlation across microservices and advanced querying techniques.
- Mastering TaskCompletionSource in C#
Bridge callback-based APIs & event-driven code with async/await using TaskCompletionSource in C#. Practical patterns for custom async operations.