Mohamad Fayad I build ERP systems and the infrastructure they run on.

Odoo development and migration, HR and operations modules, and the Linux hosts behind them.

What I build

  • Odoo migration

    Moving a production Odoo deployment from 16 to 19: the custom modules, the theme layer, unit and browser tests, a production readiness audit, and a data verification pass.

  • HR and operations modules

    Penalty and time off modules, asset booking conflict rules, and task progress reporting: the parts of an ERP that encode how one company actually runs.

  • Arabic as a deliverable

    A reusable Arabic debt aging report pipeline, operational logs and compliance analysis, and HR policy and documentation. Arabic here is a deliverable in its own right, not a translation pass over an English original.

  • The systems underneath

    Administering the Oracle Linux host a production Odoo runs on, and the Windows directory and single sign on chain in front of it for a government client.

How I work

  • The requirement comes first

    I want the requirement clear before I write anything. On the version migration that meant reading every converted rule back as a plain sentence and confirming it with the person who owns that process, before it shipped.

  • Structure the next person can read

    I keep the module structure clean so the next person can read it, and I draw the boundaries by how things fail. If two pieces of code would be reviewed by different people for different reasons, they are probably two modules.

  • I would rather say it is a bad idea

    I would rather tell you a thing is a bad idea than build it twice. What I care about is upgrade safe design: Odoo's extension points used correctly, so customisations survive the next version instead of being rewritten. No monkey patching.