Case studies

Engineering work, with the reasoning attached.

Each of these is a real system: what was wrong, how it was rebuilt, which trade-offs were made and what changed as a result. Employer-confidential detail is deliberately absent — the engineering is not.

01

Payment Distribution Engine

30–40 min → 6–8 min per cycle

A credit-card payment distribution cycle taking 30–40 minutes per execution, rebuilt around range-based processing, card-hierarchy grouping and bounded parallelism.

ArchitecturePerformanceConcurrencyJavaSpring BootSQLInformix
02

FedNow ISO-20022 Message Handling

3,000+ parameters, specified and validated

Parsing and validation for US Federal Reserve FedNow ISO-20022 messages, plus the parameter specification that made the implementation reviewable.

CorrectnessStandardsValidationJavaSpring BootISO-20022XML Schema
03

Payment Hub — Two-Level Cache

Local JCS → Redis → database

A two-level caching architecture that cut database dependency on the hot path while keeping a single, well-defined invalidation story.

ArchitectureCachingResilienceJavaSpring BootRedisJCS
04

Billing Invoice Engine

Master → workers → RAW files

A horizontally scalable master/worker pipeline for generating large billing RAW files, designed so throughput is a function of worker count.

ScalingBatch ProcessingArchitectureJavaSpring BootSQLDocker
05

Enterprise Desktop App — Startup and Size

30–40 s → 5–10 s startup, 25–30% smaller

An enterprise jewellery management platform that took over half a minute to open, traced to eager loading and duplicated UI, then rebuilt around lazy loading and shared components.

PerformanceArchitectureRefactoringC#.NETMSSQLWPF