Skip to content

Independent Engineering Studio — Morocco

Live
nanowrimo.ma
kdoub.ma
FR·AR·EN
Trilingual
RTL-native
376
Workstations
Automated
Full-stack
Interface to
Infrastructure

Softwarebuilt for realproblems.

I design and build ordering platforms, internal tools, AI automation, and the infrastructure under them — for Moroccan businesses, schools, and teams abroad.

Start a ProjectView Selected Work

Taking on new projects

Portrait of the engineer behind OMI Solutions, arms crossed
(01)Manifesto

I build products from the interface down to the infrastructure.

I'm Mehdi Charouh — OMI. I understand complicated systems, simplify them, and turn ideas into products that work. This year that meant launching two OMI Solutions products — nanowrimo.ma, a trilingual writing platform with end-to-end encryption, and kdoub.ma, a real-time party game in English and Darija — and building ordering platforms for two restaurant clients, on top of years of internal platforms, infrastructure, and security work.

What that covers

  • 01

    Product Strategy

    Turning unclear ideas into structured, realistic product plans.

  • 02

    Full-Stack Development

    Complete applications across frontend, backend, databases, authentication, and deployment.

  • 03

    UI/UX Design

    Interfaces that make complex systems easy to understand and operate.

  • 04

    Infrastructure Automation

    Managing and automating large fleets of machines with Ansible and Linux.

  • 05

    Security & Maintenance

    Patching, hardening, and keeping systems healthy long after launch.

  • 06

    Technical Communication

    Explaining difficult technical ideas clearly, in writing and in person.

  • 07

    Multilingual Products

    Interfaces in French, Arabic, and English — with right-to-left done properly, not bolted on.

  • 08

    Systems Thinking

    Understanding complicated systems and extending them without breaking what already works.

(02)About

Engineer. Builder. Problem solver.

OMI Solutions is a one-person studio by design. The person you talk to on the first call is the person who designs the architecture, writes the code, and answers for the result — no handoffs, no account managers.

I keep the studio deliberately small: a few projects at a time, with enough room to think about each one properly. Scope, architecture, design, and code all come from the same head, which is how the details stay coherent.

What I optimize for is the day after delivery — systems your team can operate, code the next engineer can read, and documentation that doesn't assume I'm in the room.

Most of what I build right now is for Moroccan businesses: ordering platforms for restaurants, storefronts that work in French, Arabic, and English, and internal tools that replace the spreadsheet and the WhatsApp group. I also take on work for teams abroad, especially in Europe — Casablanca is within an hour of most European time zones.

Principles

  • Ownership, end to end01
  • Clarity before code02
  • Built to outlive the handover03
  • Honest scope and timelines04
  • Documentation included05

Background

Staff, 1337 Coding School
Internal platforms and a fleet of 376 workstations.
First Arm Ambassador in North Africa *
Taught students to build for the Arm architecture.
CMO, RAMY
Winner — RAM Innovation Program, first edition.
1337 alumni (42 Network)
Peer-to-peer software engineering training.

* Based on the Arm Ambassador program at the time of joining.

(03)Services

What I build and maintain

Four areas of practice, one standard: systems that keep working after the handover.

01

Ordering & Commerce

Take orders directly, without handing a cut to the delivery apps.

  • Mobile storefronts
  • Delivery & pickup checkout
  • Live order dashboards
  • Menu & stock admin
  • WhatsApp ordering & alerts
  • FR · AR · EN with RTL
02

Internal Tools

Replace the spreadsheet and the WhatsApp group with software.

  • Internal platforms
  • Admin dashboards
  • Ticketing & workflows
  • Bookkeeping tools
  • APIs & integrations
  • Role-based access
03

AI & Automation

Put AI where it saves hours, not where it makes a demo.

  • LLM integrations
  • Document extraction
  • Scrapers & monitors
  • Scheduled automations
  • Evaluation pipelines
  • Alerts (WhatsApp, Discord)
04

Infrastructure

Deploy, secure, and maintain the systems software depends on.

  • Linux & Docker
  • Deployment & hosting
  • Backups & restores
  • Fleet automation (Ansible)
  • Monitoring
  • Security & architecture reviews
(04)How I Work

Five stages, one owner

The same person carries the project from the first conversation to the running product — so nothing is lost between stages.

  1. 01

    Understand

    Learn the business, the users, the constraints, and the actual problem.

    Every project starts with questions, not code: what the business does, who the users are, which constraints are non-negotiable, and which problem actually needs solving — not just the one first described. This stage ends with the problem written down in words everyone agrees on.

  2. 02

    Structure

    Turn the idea into a clear product scope, architecture, and roadmap.

    The idea becomes a plan — what a first version includes, how the system is architected, what gets built first and why. You see scope, sequence, and trade-offs before anything is built, so cost never arrives as a surprise.

  3. 03

    Design

    Create interfaces and workflows that make the system easy to use.

    Screens, flows, and states are designed around your real content and workflows before implementation begins. Design is how a complex system becomes something people can operate without a manual.

  4. 04

    Build

    Develop the frontend, backend, integrations, infrastructure, and automation.

    Frontend, backend, integrations, infrastructure, and automation — delivered in working increments you can click through while it is still cheap to change direction. Working software, not slideware.

  5. 05

    Improve

    Test, secure, maintain, and evolve the product based on real usage.

    Launch is the midpoint, not the end. The product is tested, secured, monitored, and evolved based on how people actually use it — and each iteration feeds the next.

You don't need to arrive with a complete specification. Part of the work is helping you turn an early idea into something clear, realistic, and buildable.

(05)Selected Work

Recent work & experience

Newest first — two products the studio runs itself, a personal AI agent on WhatsApp, ordering systems for two restaurant clients, internal platforms, infrastructure at scale, and a filesystem built from scratch. Client work is described without exposing confidential details.

OMI Solutions · Studio Product

kdoub.ma

Live in production

Play at kdoub.ma

A Moroccan bluff-trivia party game in English and Darija. The TV asks a question, everyone writes a believable lie on their phone, then tries to find the truth among their friends’ inventions. No TV? Online rooms put every player on their own screen, with friends or with strangers.

Key contribution

I designed and built the whole game: a real-time server that paces every round across the TV and each phone, a library of more than 15,000 questions in 56 categories per language, a cast of 16 Moroccan characters who fill empty seats, Moroccan percussion on the TV, and a how-to-play video voiced in both languages. Behind it: unlock codes for premium categories, host kicks and vote-kicks, an admin panel for codes and reports, and a game socket hardened after a full security audit.

Built with

  • Next.js
  • TypeScript
  • Socket.IO
  • PostgreSQL
  • Prisma
  • EN · Darija (RTL)
  • Docker
  • Playwright

OMI Solutions · Studio Product

nanowrimo.ma

Live in production

Visit nanowrimo.ma

A home for Moroccan writers: pick a book, set a target, join a challenge, and watch the draft grow one day at a time. Built natively in English, French, and Arabic — with the whole interface mirrored right to left, down to the progress bars.

Key contribution

I designed and built the entire product: a writing room in the browser (binder, corkboard, outline, snapshots, DOCX/EPUB/PDF export), challenges with winner certificates, streaks and achievements, and end-to-end encryption so manuscripts are sealed on the writer’s device before they ever reach the server. Two TypeScript services over PostgreSQL and S3 storage, run in Docker on an ARM server I operate, behind the same HTTPS edge as kdoub.ma; every push to main releases itself.

Built with

  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • End-to-End Encryption
  • EN · FR · AR (RTL)
  • Docker
  • Caddy
  • Playwright

AI Agent Engineering · Personal Project

Aira

In daily use on WhatsApp

A personal butler with her own WhatsApp number. Message her in English, French, or Arabic — text, a voice note, a photo, a PDF — and she answers, remembers what matters, and gets things done in the background: mail, calendar, files, a real browser, code, the computer on my desk. She asks before anything that matters.

Key contribution

I designed and built the whole agent: a fast Gemini front desk that answers most messages and hands real work to Claude as parallel background jobs, with a self-hosted model gateway as the backup brain. Her memory grows on its own — facts and people, a nightly journal, skills learned from how I work, a searchable archive of every chat and email. Safety lives in code rather than prompts: trust levels, approvals as WhatsApp polls, taint tracking after outside content, an OS sandbox around every job, a daily budget, and an audit log. Friends I let in each get a space walled off by construction and encrypted at rest.

Built with

  • TypeScript
  • Node.js
  • Claude Agent SDK
  • Gemini
  • WhatsApp (Baileys)
  • Playwright
  • OS Sandboxing
  • AES-256-GCM
  • EN · FR · AR

Product Engineer · Client Project

Direct Ordering for a Restaurant Chain

Upcoming engagement — prototype built

A multi-branch chicken restaurant chain in Morocco that wants its own ordering channel instead of depending on delivery apps. Customers order from a specific branch, for delivery or pickup, straight from their phone.

Key contribution

Ahead of the engagement I built a working prototype on the chain’s real menu and branch list: a French-first mobile ordering flow, a tablet dashboard where branch staff accept and progress orders live, and an admin platform with server-enforced role permissions and an audit trail on every change. It runs on demo data and sends nothing to real kitchens.

Built with

  • Next.js
  • TypeScript
  • Mobile-First UX
  • Order State Machine
  • Role-Based Access
  • Audit Logging
  • Playwright

Full-Stack Engineer · Client Project

Online Ordering for a Burger Restaurant

Upcoming engagement — platform built

A Casablanca burger restaurant that takes cash only and needs one system for its storefront, its incoming orders, and its back office — in English, French, and Arabic.

Key contribution

I built the platform ahead of the engagement: a branded storefront with menu modifiers and guest checkout, live order tracking over Server-Sent Events, and a restaurant admin for menu, orders, promotions, staff, stock, and analytics. Order status moves through a state machine enforced on the server, and alerts go out in-app and over WhatsApp.

Built with

  • Next.js
  • PostgreSQL
  • Prisma
  • NextAuth
  • Server-Sent Events
  • WhatsApp Alerts
  • Docker

Product Engineer · Full-Stack Developer · Designer

1337 Coding School

Two internal platforms — bookkeeping & CF1

Internal platforms designed around the real operational needs of 1337 Coding School — not demo projects, but systems built for the people who run the school.

Key contribution

I designed and built a bookkeeping and operational management platform, and CF1 — a Jira-inspired internal platform for ticketing, workflows, and collaboration. The work ran full-stack across authentication, databases, dashboards, permissions, and notifications, including the UI and UX design of both products and their continuous improvement.

Built with

  • Product Engineering
  • Full-Stack Development
  • Internal Tools
  • UI/UX Design
  • Systems Architecture
  • Workflow Design

Infrastructure Automation & Systems Maintenance

Infrastructure at Scale

376 Workstations Managed

Keeping a fleet of roughly 376 workstations consistent, secure, and available — while people were actively using them.

Key contribution

I automated repetitive administration with Ansible, maintained Linux worker environments, deployed configuration changes and security patches, and diagnosed infrastructure and networking problems — improving consistency across the fleet while minimizing disruption to users.

Built with

  • Ansible
  • Linux
  • Infrastructure Automation
  • Security
  • Systems Administration
  • Operations

Systems Engineering · Personal Project

OMIFS

A filesystem written from scratch in C

Built to understand what actually happens beneath open(), write(), and readdir() — superblocks, allocation bitmaps, inodes, extents, and directory entries — by implementing them.

Key contribution

OMIFS keeps a fixed 4 KiB block but chooses the extent size from the file’s size, so small files stay compact (or live inside their inode) and large files get long, low-fragmentation runs. It mounts through FUSE and ships with a formatter, an inspector, and a checker over a checksummed, endianness-independent on-disk format.

Built with

  • C
  • FUSE
  • Filesystems
  • On-Disk Formats
  • Data Integrity

Also built

  • Sweets Storefront

    Next.js · Prisma · MySQL

    Trilingual store for a Moroccan sweets business — cart without accounts, WhatsApp-assisted ordering, event quotes, and an admin for products, orders, and delivery zones.

  • Retail Price Monitor

    Python · SQLite · Discord

    Hourly catalogue monitor for a Moroccan PC retailer — tracks prices and stock over time and posts discount alerts to Discord.

  • 42 Student Records

    Python · Textual · OAuth

    A terminal UI for browsing a student’s project records through the official 42 API, with search, filters, and an API inspector.

  • REWIND

    C++17 · raylib

    A top-down narrative investigation game prototype — dialogue, a theory board, puzzles, and save files.

Work with OMI Solutions

Have an idea that needs more than just code?

OMI Solutions works with founders, teams, and organizations that need help shaping, designing, building, and maintaining digital products.

(06)Book a Call
Accepting projects — Q4 2026

Let's build together.

30 minutes. I'll scope your problem, walk through a delivery plan, and tell you honestly whether I'm the right fit. No pitch deck, no strings.

Phone · WhatsApp
+212 6 40 19 86 96
Studio time
--:--:-- · Casablanca
Response
Within a day · always me
  1. 01

    30-minute discovery call

    We scope the problem and I ask the questions that matter.

  2. 02

    Proposal & scope in 48 hours

    A clear plan — approach, timeline, and what success looks like.

  3. 03

    First iteration in weeks

    Working software you can see and use, not slideware.

Schedule — 30 minStep 1 / 3

Select a day

Loading dates…

Pick a slot and I'll confirm by email, usually within a day. Prefer to write first? contact@omisolutions.ma