Systems in Practice
Real-world lessons in distributed systems, Java, Kafka, AWS and financial technology.
2024
Customer Data Synchronization Architecture
The ingestion and cache-refresh architecture for synchronising customer profiles and mandates from a central banking system into an investment platform.
Designing an Event-Driven Legal Intelligence Platform
A practical HLD and LLD using Java, Kafka, Azure Event Grid, Amazon S3, OpenTelemetry and Kubernetes
2022
Designing Real-Time Pricing, Quotes and Orders on AWS
A practical architecture for market-data ingestion, price freshness, immutable quotes and transactional order acceptance
Designing GrowthFlow: A Reference Architecture for Real-Time Growth Experimentation
A production-oriented Java 21, Kotlin, Kafka, Python and Go architecture for event collection, customer segmentation, A/B testing, activation and AI-assisted growth analysis
Why Updating One Law Becomes a Distributed-Systems Problem
The business problem behind keeping legislation, editions, tables of contents, commentary and citations consistent at global scale
Designing a Global Legal-Intelligence Platform on AWS
An incremental architecture for legislation, editions, HTML, TOCs, citations and linked editorial content
2021
Java Security Code Review Cheat Sheet
A practical reference for reviewing Java code through a security lens — the ten threat categories that matter most, and a deep dive on one of the most damaging real-world vulnerability classes: unsafe polymorphic deserialization in Jackson.
Kafka Core Concepts: From Consumer Groups to High Throughput
A practical guide to consumer groups, offsets, Schema Registry, producer internals and the design choices that make Kafka fast.
System Design Interview Guide: A 5-Step Roadmap
The core concepts, trade-offs and practice method you need for system design interviews
System Design: Multi-Region Payee Store & DynamoDB Cheat Sheet
A practical reference covering the design of a scalable, multi-region payee storage system, followed by a deep dive into DynamoDB — the data store that makes the client-scoped access pattern fast.
Java Design Patterns & Resilience Cheat Sheet
A practical reference covering when design patterns earn their weight, thread-safe design patterns, patterns common in financial systems, Builder/records for clean construction, and resilience patterns for microservices.
Java Garbage Collection Cheat Sheet
A practical reference covering GC collector trade-offs, G1's region-based layout, low-pause collectors (ZGC/Shenandoah), and how to diagnose GC behavior in production.
Java Memory Model & Concurrency Cheat Sheet
A practical reference covering JVM memory internals and Java concurrency — heap structure, the Java Memory Model, thread lifecycle, synchronization primitives, executors, CompletableFuture, and the concurrency bugs that bite hardest.
Java NIO & Netty Cheat Sheet
A practical reference covering Java's non-blocking I/O model, Netty's pipeline architecture, and the zero-copy techniques that make high-throughput network servers fast.
Java Reactive Programming & Virtual Threads Cheat Sheet
A practical reference covering why thread-per-request breaks at scale, Reactor's Mono/Flux model, the flatMap vs concatMap distinction, backpressure, and Project Loom's virtual threads.
Java Collections Cheat Sheet
A practical reference covering how Java's core collections work under the hood — HashMap bucket internals, ConcurrentHashMap's lock-free design, ArrayList vs LinkedList performance, sorted/ordered maps, and choosing the right queue.
Elasticsearch Cheat Sheet
A practical reference covering Elasticsearch's core mental model (index, document, mapping, inverted index, sharding) and how to build fast type-ahead autocomplete with the Completion Suggester.
