Odoo that fits how you already work.
Most Odoo problems are not configuration problems. They are the gap between the standard flow and the one process your business actually runs on. I build and fix that gap — custom modules, integrations, and the parts that have to talk to hardware, gateways and other systems.
Describe your problem See the workWhat I build
Odoo 16 through 19, Community and Enterprise. Backend work, not theme tweaks.
Custom modules
New models, workflows and reports that follow Odoo's own conventions, so they survive upgrades instead of breaking on the next version.
Integrations
WhatsApp, payment gateways, n8n, external APIs, EDI. Including the awkward ones where the other side has no documentation.
POS & hardware
Receipt printers, barcode scanners, scales, payment terminals. The layer where most retail projects actually stall.
Migrations
Version upgrades and moves between hosting, with the custom code carried across rather than rewritten from scratch.
Rescue work
Implementations that stalled, or code left behind by someone else. I read it, tell you honestly what is salvageable, then finish it.
Server & deployment
Odoo on your own infrastructure — nginx, TLS, backups, staging, systemd services that come back after a reboot.
Selected work
Client names withheld. Happy to walk through any of these on a call.
WhatsApp ↔ Odoo connector without Meta approval
Order confirmations, delivery updates and driver dispatch over WhatsApp, routed through a QR-based gateway instead of Meta's Business API. Built as a patch on Odoo's own WhatsApp layer, so every native send goes through it and nothing else in the system had to change.
Driver dispatch that holds under real concurrency
Assignment of jobs to drivers where several drivers accept the same job at the same moment. Proven atomic under concurrent load, so two drivers can never take one delivery.
IMEI-level stock tracking
Serial tracking for devices where each unit must be traceable through purchase, stock and sale, built without touching Odoo's core tracking field — so upgrades stay clean.
Marketplace commission on POS payments
A percentage application fee taken on card payments through a POS terminal, settled through the payment provider's connected-accounts model.
Geofenced quotations
Quotations that can only be confirmed inside an approved location, with the limits of browser geolocation documented up front rather than sold as certainty.
Recovering an inherited Odoo.sh codebase
Took over a project mid-flight, recovered the code, and got the deployment pipeline working again before adding anything new.
How I work
I tell you what will not work
If a requirement fights Odoo's data model, or a platform limit makes it impossible, you hear that before the invoice, not after.
Fixed scope, written down
What is included, what is not, and what "done" means — agreed in writing before work starts, so neither of us is guessing.
Code you can keep
Standard Odoo module structure, no vendor lock-in, no obfuscation. Another developer can pick it up without me.
Tell me what is not working
A short description of the process and where it breaks is enough to start. You will get an honest answer on whether it is worth building.
Get in touch