THOUGHTS + NOTES

BLOG

Field notes on backend architecture, distributed systems, delivery tradeoffs, and practical lessons from production work.

Designing a Fintech Backend: Crypto + Open Banking Under One Roof
BlockchainCoinbaseCryptoDappEidasFapiFintech

Designing a Fintech Backend: Crypto + Open Banking Under One Roof

Over the better part of this year, I’ve been building a platform designed to serve both banks and blockchains through one request pipeline, one ledger, and one compliance engine. If that sounds straightforward, you haven't tried it. The two domains share surface-level primitives (accounts, transactions, balances, identity) and then diverge on literally everything that matters: trust models, settlement finality, regulatory frameworks, and failure modes. This post is the architecture document I wish existed when I started. It covers everything from event sourcing patterns to gas estimation heuristics to why your HSM setup will make or break you. No hand-waving, no "it depends" without explaining what it depends on.

38 MIN READ
Read articlearrow_forward
Coinbase and EVM Payment Integration
BlockchainCoinbaseCryptoDappDistributed SystemDistributed SystemsEvmFintechHardhatSmart Contracts

Coinbase and EVM Payment Integration

If you've ever tried to accept crypto payments in a real web application - not a hackathon demo, not a Medium tutorial copy-paste, an actual production system - you already know the documentation situation is somewhere between "sparse" and "actively hostile." The Coinbase Commerce docs read like they were written by someone who's never had to debug a webhook at 2 AM. The ethers.js examples assume you're building a hello-world dApp, not a payment pipeline that needs to handle underpayments, expired charges, and the occasional user who sends DAI to an ETH address and then emails you about it.

32 MIN READ
Read articlearrow_forward
PSD2 and Open Banking Integration: A Developer's Field Guide
ApiEidasFapiFintechInfrastructureKubernetesMtlsOpenbankingPsd2

PSD2 and Open Banking Integration: A Developer's Field Guide

Over the better part of the last year and a half, I’ve worked extensively on PSD2 integrations - connecting to bank APIs across Europe, troubleshooting certificate chains late into the night, and learning firsthand how “technology neutral” can become a very non-neutral challenge in implementation. This post is what I wish existed when I started. Not the regulatory overview your compliance team sends around. Not the vendor pitch deck. The actual engineering reality of building a PSD2-compliant third-party provider application from scratch, deploying it, and keeping it alive in production. If you're a backend engineer who's been told "we need to connect to bank accounts" and you're staring at the Berlin Group spec wondering what hit you - this is for you.

23 MIN READ
Read articlearrow_forward
gRPC + Go + Kafka + Cassandra: A Stack for Low-Latency Financial Data
AwsCassandraDistributed SystemDistributed SystemsFintechGoGrpcInfrastructureMicroservices

gRPC + Go + Kafka + Cassandra: A Stack for Low-Latency Financial Data

This post is the write-up I wish existed when I started. Not the "hello world gRPC tutorial" kind. The kind where I tell you what actually happens when you push 400K quote updates per second through this stack, what happens when a Kafka consumer group rebalances during a market open, what Cassandra does to your disk at 3 AM during compaction, and why your gRPC load balancer is silently routing everything to one pod.

35 MIN READ
Read articlearrow_forward
Building a Chat System at Scale: Microservices Lessons
AwsCeleryDistributed SystemDistributed SystemsFintechGoIbkrInfrastructureInteractive BrokersMicroservicesMqttMt4Mt5PythonRmqTrading

Building a Chat System at Scale: Microservices Lessons

We needed one real-time connection per client to carry both financial tick data and social chat - with sub-100ms delivery for prices and guaranteed delivery for messages. This is how we unified both workloads on a single MQTT broker cluster, wired four programming languages through RabbitMQ, ran self-managed Kubernetes on AWS before EKS existed, and built a TradingView-integrated OHLCV pipeline from raw MetaTrader ticks.

28 MIN READ
Read articlearrow_forward
FIX Protocol Demystified: Building Real-Time Stock Quote Distribution
Distributed SystemsFintechFixGoInfrastructureMicroservicesTradingXml

FIX Protocol Demystified: Building Real-Time Stock Quote Distribution

This post is the guide I wish I'd had when I first had to build a real-time market data distribution system. We're going to cover FIX from the wire format up through session management, market data semantics, a full working implementation in Go using QuickFIX/Go, the XML-to-Go code generation pipeline that makes it all type-safe, and finally how to actually deploy and run this thing in production on Linux with systemd - because that's where it lives in the real world, not in some Kubernetes cluster that your DevOps team just discovered at KubeCon.

5 MIN READ
Read articlearrow_forward
PostgreSQL at Scale: Lessons from a Trading Platform
PgbouncerPostgresPostgresql

PostgreSQL at Scale: Lessons from a Trading Platform

I've spent the better part of two years running PostgreSQL as the backbone of a high-throughput equities trading platform. Not a toy. Not a side project. A real system processing north of 30,000 transactions per second during peak market hours, managing an order book spanning thousands of instruments, and maintaining the kind of audit trail that keeps compliance people from having nightmares - and soon, MiFID II regulators satisfied.

27 MIN READ
Read articlearrow_forward
Real-Time Messaging with ZeroMQ: Patterns That Actually Work
AwsDistributed SystemElasticsearchInfrastructureJavascriptNodejsZmq

Real-Time Messaging with ZeroMQ: Patterns That Actually Work

For the last eight months I've been building a real-time notification, messaging, and event processing system from scratch. The stack: Node.js, ZeroMQ, Elasticsearch, and Socket.IO, running across a handful of AWS EC2 instances. No RabbitMQ. No ActiveMQ. No Kafka. No broker at all.

30 MIN READ
Read articlearrow_forward