Booking billing, rebuilt and finally testable.
Billing ran in an old monolith that assembled its XML documents as raw strings right in the code, hard to read and barely testable. I moved it into the modern Symfony monolith and restructured it from the ground up.
- A typed object model replaces the XML strings. Every invoice is easy to read and extend.
- Unit tests protect the billing rules, made possible by the new class structure.
- Before-and-after diffs between old and new system made every deviation visible before it went live.
- Optimised performance so billing runs finish faster.
- Structured logging makes every invoice traceable.
- Symfony
- PHPUnit
- XML
- MySQL
- Docker
Hundredsof bookings a day run through the new billing




traudel.app