Projects

Selected work

Six engagements that best represent the kind of problems I take on — infrastructure with real constraints, real users and measurable outcomes.

2024 Lead Backend Engineer

Ledger Core — Payments Platform

A double-entry ledger and settlement engine for multi-currency business payments, replacing a legacy batch process with an event-sourced service.

Outcome: End-of-day reconciliation dropped from 3 hours to under 6 minutes.

GoPostgreSQLKafkaAWSTerraform
2023 Senior Software Engineer

Atlas Fleet Telemetry

Streaming ingestion and analytics for 18,000 connected vehicles, feeding live dispatch dashboards and a historical route replay tool.

Outcome: Sustained 40k events/second with p99 latency under 120 ms.

TypeScriptNode.jsTimescaleDBKubernetes
2022 Full-Stack Engineer

Cedar Health Patient Portal

Appointment booking, secure messaging and records access for a regional clinic network, built to WCAG 2.1 AA with full audit logging.

Outcome: Call-centre booking volume fell 34% in the first quarter.

ReactDjangoRedisPostgreSQL
2023 Platform Engineer

Waypoint — Internal Developer Platform

Self-service service scaffolding, preview environments and golden-path CI templates so product teams could ship without filing infra tickets.

Outcome: New service bootstrap time went from 4 days to 25 minutes.

TerraformGitHub ActionsKubernetesGo
2022 Consulting Engineer

Signal — Observability Rollout

Instrumented 21 services with OpenTelemetry, defined SLOs with each owning team and rebuilt alerting around user-visible symptoms.

Outcome: Pager volume down 70%; mean time to detect halved.

OpenTelemetryPrometheusGrafanaPython
2021 Author & Maintainer

Quill — Open-Source Migration Toolkit

A small CLI for authoring reversible SQL migrations with dry-run diffs and CI verification, extracted from work at two previous roles.

Outcome: Adopted by several teams; 600+ GitHub stars and steady contributions.

GoSQLCobraGitHub Actions
Case study

Rewriting a payments ledger, live

How the Ledger Core project moved from overnight batch to real-time settlement without a maintenance window.

Context

A fintech processing 1.2M monthly transactions was running settlement as an overnight batch job. Any failure meant a manual replay and a delayed payout for merchants.

Approach

We modelled the domain as an append-only ledger with immutable entries, moved settlement to a Kafka-driven workflow, and shadow-ran the new engine against production for six weeks.

Result

Zero-downtime cutover, reconciliation in minutes rather than hours, and a ledger that auditors could query directly instead of requesting exports.

Want the longer version?

I'm happy to walk through architecture diagrams, trade-offs and the things that went wrong along the way.