AI is an engineering problem. Not a demo.
I treat AI as an engineering problem: measure it, control its cost, and design for when it’s wrong.
-
Measure it
Every AI feature ships with a test set and a number that says how good it is.
-
Control its cost
Cost and speed per run are budgeted before launch, not discovered after.
-
Design for when it’s wrong
Low confidence, silence or bad input lead to a safe, clear next step.
Two systems, one approach
CV Scoring Engine
A public tool that scores a CV out of 100, the way hiring systems read it. I audited how it scored, fixed the rules that took points unfairly, and made every score explainable — a flawless CV can now reach 100.
A score is only useful if you can explain it.
Score on the same sample CV
Before and after the fixes · score out of 100
-
Sample CV score +5 pointsBefore: 85After: 90
How it’s built
- Approach
- Clear, weighted rules decide the score — no model in the scoring step. I fixed four problems: checks that don’t apply to a CV no longer cost points, the target role is read from the CV itself, Word and text files are read correctly, and the same issue is never counted twice.
- Evaluation
- I started with a written audit of how the scorer worked, then checked every fix against the same sample CV. Because the rules are fixed, the same CV always gets the same score.
- Cost & speed
- No model is called to compute the score, so each scan costs almost nothing and the result comes back right away.
- When it fails
- Every check shows its result and the reason behind it, so the candidate knows exactly what to fix. If a Word or text file is hard to read, the scanner recovers the text instead of failing.
- Arabic support
- The tool works in Arabic and English. Reading Arabic PDF CVs is the next step.
Spec-driven engineering with AI agents
How I build software with AI coding agents. I write the spec first: the data model, the business rules and how each feature is accepted. The agent writes code against that spec, tests check it, and I review every change before it ships. This is how I built a multi-tenant ERP with 18 modules on my own, alongside my other production work.
The agent writes the code. I own the design, the rules and the decision to ship.
- Spec Written contract
- Agent Writes the code
- Tests Check the spec
- Review Human approves
When the spec is unclear, the agent stops and asks a human instead of guessing.
How it’s built
- Approach
- Before any code, I write a spec in Markdown: the data model, the business rules, the screens and the acceptance checks for each feature. Each project also has its own agent skills — written rules for its stack, naming, folder layout and bilingual text. The agent works in small tasks, one feature at a time. Small tasks are easier to check, and easier to undo.
- Evaluation
- A change is done only when three checks pass: the acceptance checks in the spec, the automated tests, and my own review of the code. I read every change before it is merged. If I cannot explain a line, it does not ship.
- Cost & speed
- Speed comes from dividing the work, not from skipping review. The agent handles the repeated work — screens, forms, migrations, translations — while I focus on design, business rules and edge cases. That split is what lets one engineer build and run a full multi-tenant ERP.
- When it fails
- When the spec is unclear, the agent stops and asks instead of guessing. When a change fails a check, it goes back with the failing test, not a vague note. Risky areas — money, permissions, tax invoicing and personal data — always get a full line-by-line review.
- Arabic support
- Every spec is written for both languages from the start. Interface text, right-to-left layout, and Arabic numbers and dates are part of the acceptance checks — not something fixed at the end.
Need AI that’s measured before it ships?
Tell me the decision it should make. I’ll tell you how we’ll know it works.