MySpecialist is a Belgian SaaS marketplace that pairs customers needing specialist work with vetted independent providers, across Belgium and Switzerland. The platform handles the full lifecycle — inbound quote requests, provider matching and acceptance, scheduling, billing, Peppol e-invoicing, post-job satisfaction — in three languages (FR / NL / EN) and two markets, out of one codebase.
We were engaged in 2022 to take it over end-to-end. What we inherited was a Symfony tier that had accreted as fast as features had shipped — hand-rolled forms, no test suite, internal-tool layer entangled with business logic — running against an Odoo 8 instance five major versions behind. The first stretch of the engagement was a rescue: the Symfony layer was rebuilt as a clean Django app, and the Odoo side was migrated from 8 to 16 through a custom ETL pipeline — customers, orders, invoices, message threads, moved schema-by-schema and validated against the old database before cutover.
That's been the foundation of every shipped feature since 2023. Four years and over thirteen hundred commits in, we're still the engineering team behind it — the same three people, the same codebase, and a deployment policy that hasn't produced a destructive incident.
The interesting parts aren't where you'd expect a marketplace's interesting parts to be. They sit in the seams: Belgian e-invoicing law, two-sided ownership with a shared customer pool, a CRM pipeline that has to self-advance only when three boolean gates all flip green, and an Odoo 19 EDI module that had to be carefully translated back into Odoo 16 idioms.