Three things are true of every project on this page. The work is done by our own engineers. Nothing reaches production before it has been rehearsed on a copy of the real database. And the figures quoted are the ones measured on delivery — client names are withheld under confidentiality, the scope and the outcome are not.
Rehearse first, then commit to a date
The three-version upgrade was rehearsed one version at a time — 16 to 17, 17 to 18, 18 to 19 — on a copy, with the customizations reviewed against what upstream had changed at each step. The cutover itself then took a single planned window.
Decide each customization, don't drop it
All 84 customized modules came across in that upgrade. The ones broken by upstream changes were repaired rather than removed, so no working process was lost on the way.
Build where the work happens
The attendance app writes to Odoo HR in real time and validates a clock-in against a site geofence, because a record reconciled later is a record nobody can defend. The HR life cycle work moved every stage inside Odoo with a named owner, an approval and a date.