THOUGHTS + NOTES

BLOG

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

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
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