About
Ten years
inside one ERP.
I am Waqas Riasat. I write Odoo: products for the app store, systems for firms whose work does not fit the standard apps, and the platform that hosts both.
I started on Odoo in 2016 doing implementations, which is the fastest way to learn what the framework will and will not tolerate. The products came later, out of the same frustration every time: the module that would have solved a client's problem either did not exist, or existed as a demo with nothing behind it.
Today that is a catalogue of a hundred and eighty modules, a control plane looking after two hundred and fifty-four tenants, and long-running client work across the UAE, Spain, the UK, the United States, Egypt, Kuwait, Saudi Arabia, Switzerland and Pakistan.
I work through Way4Tech, which is where the team, the hosting and the commercial side live. This site is the engineering half.
- Odoo
- 13 through 19, Community and Enterprise
- Python
- ORM, migrations, the bits of the framework nobody reads
- PostgreSQL
- schema, query plans, and restoring at 3 a.m.
- JavaScript
- OWL components, the web client, a desktop agent
- Infrastructure
- Docker, nginx, Cloudflare, Odoo.sh, bare metal
- Integrations
- WhatsApp, Twilio, Shopify, n8n, ZKTeco, payment gateways
How I work
I say no to the wrong thing first
Most requests are three requests in a coat. Working out which one actually pays for itself is usually worth more than the code that follows.
It ships with tests or it does not ship
Not because it is virtuous. Because every one of these systems gets changed again in six months, by me, and I will have forgotten.
Demo data is part of the product
A module that installs empty cannot be evaluated, cannot be trained on, and cannot be sold. Every one of mine installs with a business already in it.
I tell you when it is going badly
Early, in writing, with the number. A project that slips quietly is how a client finds out at the go-live meeting.
Worth writing to me about
- An Odoo implementation that has stalled, and you want a straight answer on why.
- A module on the store that is close but not right, and needs to become yours.
- A version upgrade with real customisation in it, where the estimate matters more than the enthusiasm.
- Selling Odoo to your own customers and needing somewhere to put them.