Case study · 2022–24

Ledgerline

Invoice reconciliation service

Ledgerline — summary

Problem
Finance teams were matching payments to invoices by hand after a nightly batch missed ambiguous records.
Role
Back-end developer
Years
2022–24
Stack
Go · Postgres · Kafka · gRPC · Terraform
Invoices a month
2.1 million
p95 match time
under 300 ms
Manual review
34% to 6%

Ledgerline.md

This case study is sample content. Replace it with verified work before production deployment.

Start with the decision

The expensive part was not computing a match. It was deciding when the system had enough evidence to make one without a person. I modelled the pipeline around that decision and made each reason inspectable.

Change the engine without changing the contract

We introduced the streaming path behind the existing API, replayed a representative month of events, and compared every decision. The team could tune thresholds without redeploying the ingestion service, while operations kept the same dashboards and runbooks.

What improved

Matches arrived during the day instead of the next morning. The smaller review queue mattered more than raw throughput: finance specialists spent their time on truly ambiguous records.

Make the hard choice visible.

A durable decision leaves enough context for the next person to understand the tradeoff, not merely the outcome.

Go to

↑ ↓ moveEnter openEsc close