Muhammad Yaseen
Software Consultant
Team lead
Leads the dashboard/reporting platform, security hardening, and infrastructure work across both deployments.
When payroll, VAT or stock quietly disagree, it is usually because several parts of the system each keep their own version of the same fact. We are a small, senior team that gives that fact one definition.
For example: payroll that was off by half a day, every month. Read the fix
Click through to see exactly how we solved it, for who, and what changed afterward.
“Payroll is off by half a day for a few people, every single month, and nobody can figure out why.”
See how we solved this“We're manually retyping customer forms into the ERP all day — PDFs, scans, the occasional phone photo.”
See how we solved this“Filing our VAT return is a multi-day spreadsheet exercise, and one missed row means it's wrong.”
See how we solved this“Finance has a depreciation schedule and operations has a spreadsheet of who's holding what — and they don't agree.”
See how we solved this“Our biometric attendance data is technically 'real' but practically fiction — duplicate punches everywhere.”
See how we solved this“Changing a single letterhead logo on our invoices means opening a code editor and redeploying.”
See how we solved this“We need dashboards our team can actually build themselves, without a developer for every new chart.”
See how we solved this“We bill flight/project hours by hand, and disputes over 'how many hours was that really' happen constantly.”
See how we solved this“Our database backups exist, but nobody's confident they'd actually work in an emergency — or that the admin console is even locked down.”
See how we solved this“Sales reps burn hours on repetitive CRM admin — writing the same follow-up checklists over and over.”
See how we solved thisEverything below is something we've shipped into a production Odoo system, and each practice links to the case studies that show it.
For numbers that are quietly wrong. We trace the symptom back to the parts of the system that disagree, fix the disagreement rather than the symptom, and leave tests behind.
How we do itUpgrades across Odoo 16–19 with the custom modules, data and reports, and Enterprise features replaced so the licence stops being a line item. Rehearsed on a copy of the live database first.
VAT return engines, multi-company GCC reporting and Saudi ZATCA e-invoicing on UBL 2.1.
How we do itModules that extend Odoo rather than edit its core, and integrations with biometric devices, WhatsApp, exchange rates and AI models.
How we do itReal screens, each with the problem it solves.
Payroll is off by half a day for a few people, every single month, and nobody can figure out why.
See itSaudi e-invoicing wants every invoice in the ZATCA format, with its QR code on the printout. We set it up on live systems; it is not part of the trial.
See itA demo in someone else's colours is hard to picture as your own system. The trial takes your logo and builds the whole system in its colours.
See itAlerts that went to an inbox nobody read arrive on WhatsApp instead, and stay in the record's history.
See itTwo different Odoo versions, two different industries, three engineers moving between them — and the same root cause kept recurring: several parts of a system quietly disagreeing about the same fact. Payroll disagreeing with attendance. Tax logic scattered instead of centralized. A security secret stored somewhere a bad actor could also reach.
Our answer is never a fourth opinion. It's collapsing the disagreement into one definition everyone calls.
Every case study here opens with the sentence a client actually brought us. "Payroll is off by half a day" is a better starting point than a requirements document.
The bug is rarely the arithmetic. It's usually several parts of the system quietly holding different opinions about the same fact.
One day classifier. One tax category. One stock move. Everything else reads from it, so there is nothing left to drift.
Put the rule where it can't be walked around, keep the off switch out of reach, and back it with tests — the payroll classifier shipped with 19.
Every case study on this site comes from one of two production systems we build and maintain.
One Odoo 17 codebase, deployed independently four times for four separate companies, each its own database: MAFA (root company, industrial engineering, Jeddah), TechTrade24 KSA and TechTrade24 Germany (B2B industrial trading), and Eesint (Pakistan). Maintained continuously since April 2025.
A second Odoo 18 deployment for a Gulf-based charter aviation and logistics group, operating across the UAE, Saudi Arabia, and Bahrain as three companies under one multi-company instance. Built collaboratively across three engineers since October 2025.
Each case study starts with the problem a client brought us and is credited to whoever led the work.
Four parts of the system each decided what counted as a working day. We replaced them with one classifier everything reads from.
~28,000 LOC Read the case studyA drag-and-drop builder driven by typed, whitelisted conditions, so every viewer sees only what their access rights allow.
~20,800 LOC Read the case studyA vision model extracts registration forms straight from incoming mail. It never writes to the database — an admin approves.
~4,350 LOC Read the case studyStill choosing an ERP? See Odoo in your company's colours, with the apps you would use.
A small, senior team — every case study is credited to whoever actually led it.
Software Consultant
Team lead
Leads the dashboard/reporting platform, security hardening, and infrastructure work across both deployments.
Software Engineer
Leads attendance/payroll, finance and compliance engines, and AI-assisted integrations across both platforms.
Software Engineer
Leads attendance administration, CRM checklist and approval workflows, and flight-log accounting across both platforms.
The case studies told the long way: the problem, the root cause, and the fix.
Nine things a business believed about its overtime, allowance and payroll rules — checked line by line against the code, then checked again.
Read the noteHalf a day, a handful of people, every month — and four parts of the system with four opinions.
Read the noteWhy our security features keep their off switch in the server config file.
Read the noteGive us the problem. We'll tell you what we see.
Look at Odoo with your own apps and your own logo before you decide.