I build the automations and small web apps that run real operations.

n8n workflows, WhatsApp and Telegram bots on Google Sheets, and React + Supabase apps with logins, roles and live updates.

BASED
Boujdour, Morocco · UTC+1
LANGUAGES
English, French, Arabic
AVAILABILITY
30+ h/week

Selected work

01

Year
2026
Stack
React, Vite, Supabase
Role
Design + build
Status
Used live at qualifiers and finals

Race management app for a youth cross-country Grand Prix, Boujdour

On race day, officials work in different places: call room, start line, finish line. Everyone needs the same trustworthy record of who ran and who arrived.

  • Five roles (admin, call room, timekeeper, finish judge, institution), each with its own screen and permissions.
  • Every race action (start, arrival, finish) is a single database function, so a step cannot half-happen.
  • Live race panels, and attendance confirmed twice before a runner counts.
  • admin
  • call room
  • timekeeper
  • finish judge
  • institution
One database function per race action
  • start_race()
  • record_arrival()
  • finish_race()
Live race panels update in real time
Fig. 1. Each official acts only through their own screen. Every race action is one database function, and the panels update live.

02

Year
2026
Stack
Apps Script, Google Sheets, Telegram
Role
Design + build
Status
In use

Debt ledger bot on Google Sheets

Monthly dues owed by many owners were tracked by hand across spreadsheets. Answering "how much is still owed?" meant searching through tabs.

  • Ask the bot about any owner and get the current balance, read live from the sheet.
  • A file import that analyses the data, shows a summary, and writes only after /confirm.
  • Access limited to authorised users.
  1. file or command
  2. Apps Script checks
  3. summary shown
  4. /confirm
  5. Google Sheet
Fig. 2. Nothing reaches the ledger without a human confirmation.

03

Year
2026
Stack
React, Vite, Supabase
Role
Design + build
Status
In production

Contract-accounting web app

An installable phone app that keeps the accounts of a service contract: month-end close with carried-forward balances, an audit check before closing, and records locked once a month is closed. Client details stay private.

Also built

  • WhatsAppBusiness Cloud API number for my own agency, with a webhook that stores every incoming message once, and message templates.
  • n8nWorkflows that transcribe voice messages, and Telegram bots that answer them.
  • RAGA search system over a body of documents.
  • WebWebsites for French-speaking Swiss small businesses, through my studio Orcept.

How I work

  1. 1You describe the process, the tools you use and what "done" looks like.
  2. 2I confirm the scope and the checks we will use to accept the work.
  3. 3I build in small milestones and test normal and failure cases.
  4. 4You get the working workflow or app, plus short handover notes.

Have a process that should run itself?

Hire me on Upwork

All contracts and payments go through Upwork escrow.