a developer's working notebook · vol. 1

Mustafa Noori

AI engineer
generative image + video pipelines.
IstanbulAI + full-stackM.Sc. AI · in progressArabic / English

scan time: 30s · press 16 or ⌘K

currently —
prompt compilation + model routing
at Designar.AI ↗

self-portrait, third coffee ☕

Hello world!
02 · about

PAGE 02page of notes.

I build the layer between what a person wants and what a model actually returns — prompt compilation, reference-image routing, and the queue and retry logic that keeps a flaky model from taking the interface down with it.

At Designar.AI that means turning structured product data into model-ready prompts for fashion photography and catwalk video, in Arabic and English. Before that I was a front-end developer, and still am — which is why I can ship the whole path instead of handing half of it off.

the arc

three threads, one direction.

By day — The prompt-compilation layer at Designar.AI, shared across Fashion ProShot, Mukhawar ProShot, and an image-to-video catwalk pipeline that chains Gemini and Kling keyframes together through ffmpeg.

In the evenings — Freelance front-end work — three client sites shipped end to end in React and Vite — plus the side projects where I get to try the thing I can't yet justify at work.

On a longer horizon — An M.Sc. in AI at Beykoz, finishing 2027. Multi-agent systems, retrieval, and evaluation: the parts I keep needing at work before the coursework gets to them.

Eleven years passed between the computer-engineering degree and the engineering job. I'm late on purpose and I'd take the detour again.

on the desk →
A logo-generation benchmark — 18 fixtures, and a router that knows which model breaks on Arabic.
coffee count today:
3 ☕ ☕ ☕
what I'm looking for
  • AI engineering where the model is the product, not a feature bolted on
  • a team that reviews prompts the way it reviews code
  • work that touches Arabic, or any script the defaults handle badly
  • (bonus) someone to argue with about evals
← the detour is the interesting part. ask about it.
03 · stack

PAGE 03now, next, and the longer arc.

Three speeds: what I'd be productive in on day one, what I'm building through right now, and what the master's is pointed at. The through-line is generative systems — everything here either feeds a model or catches what it hands back.

cluster · 01

shipping with —

the front end, where I'm fluent. bilingual apps with RTL layout switching, and the interface work that makes a generation pipeline usable.

React 19TailwindNext.jsTypeScript
i18n · RTLTanStack QueryViteaccessibility
cluster · 02

learning —

the server side, where I'm competent but still building the reflexes. job queues, streaming responses, and the retry logic between a flaky model and someone waiting on it.

← the API layerthe queue →↑ the data layer
Node · ExpressFastAPIPostgreSQLMongoDBSSE · job queues
cluster · 03

studying —

the master's, and the R&D that spills out of it. multi-agent systems, retrieval, and how you evaluate a generated output when “correct” isn't a single string.

PythonMulti-agent systemsRAGGemini · Kling · IdeogramPrompt evaluationVLM quality checks
04 · work

PAGE 04the work.

Two builds, both solo, both about the same thing: the interesting part is never the happy path. One stays usable when the models fail; the other turns a pricing matrix into a sentence you can read.

project · 01 of 02
document-analysis-platformDocument Analysis Platform — an AI reading it so you don't have to.
document list · live search · filters · sort
→ the main view
▸ live progress: summary → sentiment → entities
▸ click-to-highlight entity tagging, filterable
▸ sentiment score with confidence, inline
2. backend
3. the interesting bit
The constraint that shaped it. The Hugging Face inference API is free-tier and flaky — cold-start 503s, rate limits, occasional timeouts. So the interesting problem wasn't calling three AI models, it was building a pipeline that stays usable when the models don't cooperate: retries with exponential backoff, a 3-slot concurrency queue instead of firing every request at once, and a "partial" status so one failed model doesn't sink the other two.
the constraint, stated plainly.
role · solo · full-stack

Built end to end: a Next.js 16 front end, REST + SSE API routes, and three Hugging Face models wired into one ingest-to-report workflow — BART for summarization, RoBERTa for sentiment, BERT for named-entity recognition. Plus the retry and queue logic that keeps the AI layer from taking the UI down with it.

Next.js 16TypeScriptPythonHugging FaceServer-Sent Events
→ live demo·→ code
Document Analysis Platform “the one that keeps working when the AI doesn't”
framing rewrite · july 2026
project · 02 of 02
coffeeroasters-subscription-siteCoffeeroasters — a subscription builder that turns pricing rules into a sentence you can read.
plan builder · mid-flow
→ the main view
▸ step-by-step, one question at a time
▸ live summary sentence rewrites as you pick
▸ order-summary modal shows the monthly price
2. logic
3. the interesting bit
The constraint that shaped it: the copy itself changes shape depending on the selection, not just the values in it. Picking "Capsule" doesn't just fill a blank — it flips "as" to "using," drops the grind clause from the sentence entirely, and disables a whole downstream step. Getting that to read as one clean sentence, plus computing the right price across 3 weights × 3 delivery frequencies (9 combinations), without a state library, was the actual problem — the visual design was the easy part.
role · solo · front-end

A step-by-step plan builder that only reveals the next question once you've answered the current one, with a live summary sentence and price that rewrite themselves as you choose — across 3 weights × 3 delivery frequencies, computed entirely client-side with no backend at all. Fully keyboard- and screen-reader-navigable, with design tokens enforced at build time via Tailwind v4 @theme.

Next.jsTypeScriptTailwind v4 @theme<dialog>a11y · keyboard + SR
→ live demo·→ code
a coffee subscription site “an interactive configurator with real conditional logic”
framing rewrite
also in the notebook
…plus the client work.

Three sites shipped end to end for clients — a nutrition coach, a coffee-equipment retailer, and a bilingual digital showroom for an architectural glass manufacturer. The rest of the experiments live on GitHub.

→ github.com/Mustapha909
05 · work & education

PAGE 05track record.

An engineering degree, an eleven-year detour, and a return. The dates below are the honest version — what looks like a gap was six years of full-time research and writing.

work —5 ROLES · 2 CAREERS
currently ✶
Designar.AIFront-End / AI Engineer
DEC 2025 → PRESENT · REMOTE

I own the prompt-compilation layer: structured product data and user configuration in, model-ready prompts out, shared across Fashion ProShot, Mukhawar ProShot and the catwalk video pipeline. Built that pipeline — three-keyframe chaining across Gemini and Kling, stitched with ffmpeg — and designed the Ghost Mode prompt architecture, replacing a pile of accumulated negative instructions with positively-specified constraints. Now leading R&D on logo generation, where the router picks a model based on which one breaks least on Arabic script.

Next.js · i18nGemini · Klingprompt architectureffmpeg
FreelanceFront-End Developer
SEP 2025 → PRESENT · REMOTE

Three client sites end to end in React 19 + Vite + Tailwind, from requirements through handoff: a booking and portfolio site for a nutrition coach, a product showcase for a coffee-equipment retailer, and a digital showroom for an architectural glass manufacturer. The last one is fully bilingual — context-based i18n, per-language translation files, and RTL/LTR switching on every page.

React 19 · Vitebilingual EN / AR
QafLabFront-End Developer, Intern
JUL 2024 → OCT 2024 · MOSUL

Built the React/TypeScript front end for a bulk-SMS platform used for school–parent communication and marketing campaigns. The part worth naming: three-tier role-based UI gating — super-admin, account owner, restricted sub-user — with permission-aware routing, backed by TanStack Query for caching and invalidation across list-heavy views.

React · TypeScriptTanStack Query
Al Basheer ShowResearch & Content Developer
SEP 2019 → SEP 2025 · REMOTE

Six years researching and writing weekly episodes for a satirical news program with a multi-million audience across Iraq and the wider Arab world. Pitched segments and turned complicated political stories into accurate, accessible Arabic narrative — to a fixed weekly deadline, for six years running.

Arabic narrativeweekly deadline × 6 yrs
Various rolesRetail, NGO, tourism
2015 → 2019 · IRAQ & TURKEY

Relocated to Turkey and worked across sales, NGO support and tour guiding before moving back into software.

↑ that 2019–2025 row is why
the Arabic work comes easy.
education —2 DEGREES
in progress
Beykoz UniversityM.Sc. Artificial Intelligence
IN PROGRESS · EXPECTED MAY 2027 · ISTANBUL

Advanced Prompt Engineering for Intelligent Agents, Data Mining, and Advanced Data Structures & Algorithms — chosen because they're the things I keep hitting at work before I've formally covered them.

Prompt engineeringData miningAlgorithms
Al-Hadbaa UniversityB.Sc. Computer Engineering
2014 · MOSUL, IRAQ

Computer organization, microprocessors, digital signal processing, and distributed and real-time system design. The hardware-adjacent half of a CS education, which is a stranger foundation for prompt engineering than it sounds — and a more useful one.

the short version

one paragraph, if you're skimming.

AI engineer with a full-stack foundation, based in Istanbul. I build production generative-AI image and video pipelines for a bilingual Arabic/English design platform — prompt compilation, model routing, and the queue and retry logic underneath. Comfortable across React and Next.js, Node and FastAPI, Postgres and Mongo. Finishing an M.Sc. in AI at Beykoz, and open to the right AI-engineering role.

tldr
06 · contact

PAGE 06inside back cover.

return to · mustafa noori
say hi —
if you're hiring →
Tell me what the model is actually doing in your product, and who's on the hook when it returns something wrong. I'm happiest between those two — the prompt layer, the routing, the evaluation. Arabic or any other non-Latin script in the mix is a plus, not a problem.
a developer's working notebook · vol. 1 · built 2026
no analytics. no cookies. no carousel.
— end —