Ledgerline · Fintech

A reconciliation API that finance teams trust

Replaced a nightly batch job with an event-driven reconciliation service that matches bank transactions to invoices within minutes.

Role
Lead backend engineer
Year
2026
Duration
7 months
Stack
Go, PostgreSQL, Kafka, OpenTelemetry, Terraform
Diagram of connected services with one highlighted node, representing the reconciliation pipeline

Outcomes

  • Minutesfrom bank feed to matched invoice, down from next morning
  • 0double-booked payments since launch
  • 3engineers onboarded to own the service

Demo content: replace these figures with your own, verifiable results.

The challenge

Ledgerline's customers reconciled payments with a batch job that ran overnight. When it failed, finance teams started the day with stale numbers and a support queue full of "where is my payment?" tickets.

The job had grown over five years into a single 4,000-line script. Nobody wanted to touch it, and every bank added a new edge case.

The approach

  • Mapped every bank feed format and failure mode with the support team before writing any code.
  • Split ingestion, matching and posting into small Go services connected by Kafka topics, each with an idempotency key so retries never double-post.
  • Kept PostgreSQL as the single source of truth and used an outbox table instead of distributed transactions.
  • Ran the new pipeline in shadow mode for six weeks, comparing results with the old job every night before switching over.

The result

The overnight job was switched off in a single release with no customer-facing incident. The in-house team now owns the service, with runbooks and dashboards written alongside the code.

“Mira didn't just rebuild the system, she left us a team that understands it. The handover was the best I've seen from a contractor.”

— Head of Engineering, Ledgerline

More work

Related projects

Available for new projects from January 2027

Need something similar?

Tell me what you're building and where you're stuck. I'll reply within two working days with honest next steps, even if I'm not the right fit.