Casablanca · product engineer · 4+ years · one client at a time

I build and own the systems where a wrong number costs money.

Payables automation at OysterHR, a global employment platform. Time and attendance for Mibtech’s hospital customers: 80,000 clock events a day that have to land on the right person’s payslip, plus the Akdital rollout I built and load-tested to 200,000. A cash-on-delivery shop taking orders right now. And the AI inside all three, which is where I spend most of my thinking: making a model useful in places where being wrong is expensive. I do the whole thing myself: schema, API, screens, deploy, and the phone call when it breaks at 2am. Freelance, contract, one client at a time.

80,000+

clock events a day, and that count is a year old

200,000

clock events in one burst, replayed on one small server

40+

systems shipped, most of them under NDA

20+

hospital databases merged into one warehouse

$300K+

a year of invoice work removed from one payables flow

70%

faster pages on a product that had degraded

Why one person

You do not need a team. You need one person who does not hand it off.

I hold the schema, the money path, the AI pipeline and the deploy in my head at the same time, so a fix never waits in a queue behind someone else’s meeting. When you hire me, the build, the deployment, the monitoring and the call at 2am are the same person. Anything you can describe can be built, in weeks rather than quarters.

Ask who gets paged when it breaks. That answer prices the build.

  • Product and spec: what to build first, what to cut, what it has to survive.
  • Schema, API, AI pipeline. Structured outputs, evals, guardrails, cost.
  • The screens your team and your customers actually touch.
  • Deploy, monitoring, alerts, backups. The parts that make it a system rather than a demo.
  • Support and iteration, because I answer for what I shipped.
  • Your repo, your cloud account, your credentials and a written runbook from week one. Nothing is held hostage.

AI is how I work, and you can see it

I write software with agents in the loop: a spec first, then small verified steps, tests and review before anything merges. That is how one person carries a build that used to need a team, and the safety comes from the process, not from the model. The machine behind that process is mine. Citadel is a private platform I designed, built and run: agents with their own models, tools, permissions and budgets; a scheduler; memory that survives a restart; deploys; and one log that shows what every agent did. I looked for something off the shelf to do this and could not find it, so I wrote it. Because my whole operation runs on it, a client build starts with tooling that has already been through a few thousand real tasks.

  • Spec to reviewed pull request, with tests that have to pass before I look at the diff.
  • Agents write most of the code. The design, the data model and every merge stay with me.
  • Everything an agent does is logged, so a bad decision is a diff I can read, not a mystery.
  • When an agent gets something wrong, a failing test catches it, not a customer.
Agent roster: model, harness, permissions and delegates, set per project.
The cockpit I open every morning: projects, open work, server health, what is waiting on me.
A workflow: trigger, steps, conditions, every run logged. This is what I mean by a process I can point at.

The record

Where other people’s money moved through my code

Both platforms were multi-tenant and both ran other people’s money. I owned the data model, the money path, and what the model was allowed to touch.

01

OysterHR

Product engineer · accounts payable & applied AI

Since 2026 · remote

payments · AI in production

OysterHR is a global employment platform, an EOR leader with companies hiring in more than 180 countries. I own the accounts-payable automation: the pipeline that reads supplier invoices, the product accountants review in, and the money path behind both, across hundreds of customer legal entities.

  • The process it replaced was headcount-bound. Measured over the invoices processed so far, the run-rate saving is several hundred thousand dollars a year, at a few thousand invoices a month.
  • AI sits in front of accounting here, so it is built the way an auditor would build it: JSON Schema structured outputs, per-vendor prompts stored as data (onboarding a vendor is a row, not a deploy), validation in code before anything reaches a ledger, and a human approval gate before money moves.
  • Every call that can touch a payment is logged: model, prompt version, tokens, latency, document hash. Six months later the pipeline still explains itself in a review.
  • Matching, accounting mappings and ERP writes are deterministic code. Two state changes that belong together commit in one transaction, and every write is idempotent, because a double-paid vendor is a far worse day than a failed deploy.
  • Inference cost is engineered like any other cost: routing, prompt caching and context budgets keep the model cheaper than the process it replaced.
  • The team ships differently now as well: spec-to-PR agent automation, custom skills and MCP integrations, support triage, flaky-test repair. That part is the one I would build again for free.

02

Mibtech

Engineer · HR, time & attendance, hospital operations

2023 to 2026 · Casablanca

healthcare ops · applied AI

Mibtech builds HR and hospital software in Morocco. I owned the time-management product of its multi-tenant HR SaaS, running on 20+ private hospital databases at 80,000+ clock events a day. I also built the hospital rollout for Akdital, the largest private hospital group in the country and now expanding into Saudi Arabia, the UAE and Africa.

  • Time and attendance end to end: punches resolved against shifts, night differentials, breaks and overtime, out to the payroll inputs they produce. Correct per tenant, at 80,000+ events a day, including the shift-change spike that decides whether payroll closes on Friday.
  • For Akdital I built the hospital rollout and load-tested it before anyone signed. The group never went ahead in the end; it stopped in procurement, not in the code. The load test is the part anyone can check: 200,000 clock events at the same moment on one small server, nothing lost, no night differential off by a centime.
  • Merged 20+ siloed hospital databases into one ClickHouse warehouse on dbt-modelled ELT. Ingestion got 3× faster.
  • A product surface had degraded to the point people complained about it. I went after the cause: 70% faster page loads, critical endpoints around 50 ms through caching, job offloading and query redesign, with tenant isolation untouched.
  • Put an LLM support agent in front of live employees, where a wrong answer turns into a compliance problem. Retrieval scoped to what each employee is allowed to see, tool calls gated server-side, and answers only from sources the user could have opened themselves.
  • 50+ access-control terminals now push badge events instead of being polled every minute: an IoT gateway plus a desktop badge-reader app, running in production under Prometheus, Grafana and Sentry.

Work

What you can hand me

Same person, same standard. Scope and price come out of a conversation, because the right answer depends on what you already have.

Build the product

A marketplace, a payments flow, an internal system nobody sells off the shelf. Blank page to production: schema, API, interface, deploy, on-call. You get a URL every Friday with something working on it.

6 to 12 weeks typical

Fix the failing thing

Something degraded, an integration broke, a launch keeps slipping, or the team has quietly stopped trusting an AI feature. I find the real cause and stay until the fix holds under live traffic.

5-day diagnosis, then a fixed quote

AI that survives production

Extraction, agents, retrieval, evals, guardrails, cost control. Mostly plumbing: making the model right, auditable and cheap enough to leave running when it reads the documents that decide money.

2 to 6 weeks

Take it off your plate

Fractional engineering or a retainer. I own the backlog, ship every week, and answer when it breaks. Also consulting, architecture review, technical due diligence, and hiring help.

monthly, rolling

Agencies: I work under your brand, your PM and your contract, NDA by default, and I stay out of your client relationship unless you ask me in. If you already have a spec, send it and you get a fixed quote back in 48 hours, no diagnosis week. If I am not right for the job, I say so and point you at someone who is.

How it works

How the work actually goes

01

The call

30 minutes. What is broken, what it costs you, what you have already tried. You leave with a plan whether or not you hire me.

02

The diagnosis week

Paid, fixed price. I read the code and the data, map the risk, and come back with scope, timeline and a fixed quote per phase. If the honest answer is that the build is not worth it, you keep the report and we stop there.

03

The build

Weekly slices on a URL you can click. One call a week, everything else async, no status deck.

04

After

Handover, runbook, monitoring. Or I stay on retainer and keep it healthy, month by month, your call.

Selected work

Shipped, and still running

Four I can show you. The rest are under NDA or belong to employers.

Citadel

My platform, and the reason one person ships at team speed. Multi-agent orchestration, an MCP tool layer, scheduler, memory, deployments and audit, in Rust (axum, sqlx) with a React control surface. Proprietary, not for sale, and running every day: it is how this site, my products and client work get built.

Rust · axum · sqlx · React · proprietary

Moroccan commerce storefront and order operations, in production and taking orders: catalogue, cash-on-delivery checkout, order state, admin.

Next.js · PostgreSQL

Li7abiti

Cash-on-delivery commerce platform: a 146-table schema, OTP authentication, Arabic-first RTL, order and fulfilment operations.

Next.js 16 · PostgreSQL · RTL

Semsar

Market-intelligence pipeline: scheduled collection, price normalisation across sources, and reporting a human can act on.

Python · PostgreSQL · scheduled jobs

The rest on GitHub ↗

What I have learned the expensive way

Four things I would tell you on the call anyway

  1. 01

    Money code should be boring. Every surprise in a payments system is paid for by somebody, and it is rarely the person who wrote the line.

  2. 02

    A model can read, propose and explain. A human signs. Once a model signs, you own a liability with no audit trail behind it.

  3. 03

    Every estimate is a guess until someone has read the data. That is why I look before I quote, even when looking costs me the deal.

  4. 04

    Maintenance is the bill for complexity. It arrives eighteen months later, addressed to whoever inherited the code.

Contact

Let’s talk.

Tell me what is broken, what it is costing you, and what you have already tried. Thirty minutes, no pitch. You leave with a plan you can run with or without me.

mounirgaiby@gmail.com

Casablanca, Morocco · English, Arabic, French if needed · one client at a time, next start January 2027

Not ready to talk? Send one page about the system and I reply with what I would do. No charge, and no follow-up if you go quiet.