A dark green marble desk with an open notebook, brass instruments and a glass globe, before a window onto a city skyline at dusk

// operating in public · dubai, uae

Suhail Mohebi.

I run AI agents from Dubai, mostly by talking to them, and I check their work.

I'm Suhail Mohebi. I've worked in markets since 2016, and I treat what an agent tells me the way I treat a trade idea: I check it before anything goes live. This site is my notebook of what worked and what broke.

// current state 27 field notes · 48 deep dives voice in → evidence out → memory carries

// the practice

01 / Choose the part of the system you need.

The tools change quickly. The durable advantage is knowing how to direct the work, protect the truth and preserve what was learned.

An orderly wooden desk with open paper manuals, filed binders and a brass lamp beside a window43 · OPERATIONSRunning AI Agents in Production: An Operations ManualThe operating loop behind this notebook: bounded scoping, the authority line that keeps a human on every irreversible act, evidence ladders, honest monitoring, durable memory, and fleet coordination — thirteen dives connected into one manual.read →

// shipped, changed, learned

02 / Field notes

Three recent records from the work. Filter the archive or search the whole site.

27 entries match; all displayed.

Changing the rules must not rewrite the past#

A schedule change in our UAE paper-research system looked like a small operational fix. It also changed what counted as a complete day of evidence. Applying the new rule to older sessions would have judged yesterday’s work against a contract that did not exist yesterday. We gave the revised policy an effective date and preserved earlier sessions under their original rules. The same discipline belongs in model evaluations, analytics, and monitoring: record which rule applied when the evidence was collected. How the session policy works.

▸ date the policy → preserve the record → compare fairly

An engine update is not a model test#

We updated the Windows LM Studio engines and kept the previous versions available for rollback. The active SGLang service stayed running and answered a real request afterward. That proved continuity for the existing service. LM Studio generation remained untested because the active model occupied most of the GPU memory. The maintenance report needed to keep those findings separate: installed software, compatibility checks, and an actual model response each support a different claim. Read the serving field guide.

▸ engines updated · existing service verified · new generation untested

Move the finish line to the outcome#

While reviewing an automated workflow, we found that its success response arrived before the downstream work had finished. That distinction mattered: the system calling it could receive an acknowledgement without knowing whether the intended result had happened. We changed the completion behaviour and checked the result at its destination. The useful lesson applies to AI agents too: define what must be observable before the work begins, then make the final report answer to that evidence. “Accepted,” “executed,” and “verified” describe different states. Keeping them separate makes failures easier to locate and completion claims easier to trust. More on verifying the outcome.

▸ accepted → executed → verified

A rule that cannot fail is a preference#

One person can hold a direction in their head for months; dozens of independent sessions cannot. Each starts fresh, reads what it is given, and acts confidently within it — including confidently reintroducing something that was deliberately removed before it arrived. The durable fix is to give the decision a failure mode: translate the exact strings, routes, and counts into an assertion that turns a violation into a red build. The sharp edge is that a gate matches patterns, not meaning, so a clean pass is not a judgement. Encode what is exact, escalate what is not, and write the blind spot into the gate itself. The full note.

▸ 1 decision encoded · 2 layers (gate + review) · 1 stated blind spot

The clean merge is the risky one#

A branch is a snapshot of what was true when it was cut. Merge it after the rules changed and it restores retired facts silently — not as conflicts, but as settled statements sitting in files nobody touched on the other side. Running several agents in parallel makes this ordinary rather than rare. The branch to fear is the tidy one with no conflicts, because a conflict at least asks a question. The sweep searches the whole branch for retired strings, not the diff, which is exactly where they do not appear. The full note.

▸ 5 sweep categories · 1 age comparison · 0 conflicts required

The page you deleted is still being served#

A page was removed and its URL redirected correctly within seconds. The search result did not follow. For more than four days the old entry kept rendering its previous headline and summary, sending people to a destination that had never made that claim. Deletion at the origin is a state change you control; deletion in an index is a request you file and wait on. The repair is unglamorous: audit your own feeds first, submit the removed URL rather than only the replacement, and close the loop with a check run from outside your own infrastructure. The full failure note.

▸ 4+ days of stale result · 3 surfaces to clear · 1 external recheck

A monitor that outlived its subject#

A scheduled check watched a purchase funnel and reported healthy every morning — for days after that funnel had been removed from the product entirely. Nothing malfunctioned. There were no errors because there were no requests, and no failing steps because no steps existed. An empty set satisfies almost any safety condition you write about it, so absence and health produced identical output. Monitors need a liveness assertion about their own subject before any health assertion, and a subsystem’s watchers belong in the same change that deletes it. The full failure note.

▸ 1 vacuous green · 0 reachable failure states · 2 new failure notes

The backend of a static site is the release system#

Today’s audit produced an odd split. The public site was healthy: 35 canonical pages returned 200, three sampled Lighthouse runs scored 100 across every category, and no internal target was broken. But production had moved ahead of the durable source; the matching artifact lived only in temporary storage. That is the useful lesson: a static site still has a backend. It is the release system—the source, build, checks, headers, deploy record, and rollback path that make the visible page reproducible. Start with the durable source.

▸ 35 live pages · 3 perfect Lighthouse samples · 0 broken targets · 1 recovered source of truth

A redesign is also a migration#

The new register changed more than colour and type. The old library grouped work by topic pillars; the new one groups it by the job in front of you. That left 42 deep links pointing at section names that no longer existed. We remapped each article by where it actually belonged, rebuilt the sitemap from the page tree, and rendered all 35 pages on mobile and desktop before calling the redesign finished.

▸ 42 links remapped · 34 canonical routes · 70 verified renders · 0 broken targets

AI is collapsing the CVE response window#

The latest CVE work sharpened a pattern I keep seeing: AI is compressing the time between vulnerability discovery, public disclosure and weaponisation. SQLite’s CVE-2025-6965, Log4Shell, PAN-OS CVE-2024-3400 and the XZ Utils backdoor expose different parts of the same problem. The useful response is a faster intelligence loop — continuous review, ranked patching, automated testing and monitoring that can operate at machine speed. Read the field note, or continue with the longer argument on LinkedIn.

▸ discovery → disclosure → weaponisation · the interval keeps shrinking

Kimi K3: open does not automatically mean local#

Kimi K3 sharpened a distinction I keep returning to: on-device AI runs on one machine, private AI runs inside infrastructure you control, and open frontier AI can publish weights while still requiring data-centre-scale hardware. The weights are opening; inference, caching, routing and deployment correctness are becoming the moat.

▸ field note preserved from the live site · verdict remains provisional

The notebook becomes an operating system#

A timeline of AI-assisted work is useful, but a system is more useful. We reorganised this notebook around the loops behind the work — orientation, direction, building, verification, memory and learning — then connected every deep dive to the larger practice.

▸ one archive → a connected operating system

This site, built in one sitting#

The notebook you're reading was designed, coded, and deployed inside a single conversation. I pointed at a domain that had sat untouched on a website builder for years; the AI checked its DNS, proposed the migration, and built this — aurora gradients, particle field, command palette and all. Very meta. Hello, world.

▸ website builder → hand-coded static site on a CDN

A content cluster, shipped overnight#

We planned, wrote, cross-linked, and published a full topical content cluster — hub pages, reference guides, and spokes — in one overnight session, complete with citations, structured data, and social cards generated to match the template family. Proof that an AI can hold a whole content architecture in its head at once.

▸ 16 interlinked pages · schema + OG cards autogenerated

The multi-agent site audit#

Instead of one AI reading one file at a time, we fan out: a dozen specialised agents audit a whole site in parallel — accessibility, structured data, performance, links, consistency — then a separate adversarial council tries to refute every finding before it reaches me. False positives die in review, not in production.

▸ 12 audit dimensions · adversarial verification pass

A template redesign, verified page by page#

A full visual redesign of one page template rolled out across twenty pages — new hierarchy, cleaner layout, consistent design tokens — verified page by page in a real browser before shipping. The AI takes the screenshots; the human takes the decisions.

Optimising for AI answers, not just Google#

Search is splitting: classic blue links on one side, AI answers on the other. We build entity hub pages, definition-first answer blocks, and machine-readable facts so primary sources are easy for search engines and AI assistants to retrieve and cite. SEO's next chapter, tested in public.

Let the data overrule the taste#

We'd banned a certain inline prompt for looking pushy. Then analytics showed pages carrying a subtle, dismissible version retained readers far better than we assumed — so we reversed the rule, rolled it out only where relevant, and pinned the list with a test so it can't silently grow.

▸ a design rule, reversed by evidence

A domain-expert chatbot#

We shipped a site chatbot built around a curated knowledge base and a live-fetched fact source. It answers visitor questions, proposes actions the server validates before running, and can hand a conversation to a human. Built, tested, and iterated across several sessions of this partnership.

Lean mobile pages#

Mobile readers don't scroll through essays. We restructured a mobile template around a lean above-the-fold — the essentials first, the deep detail collapsed behind intent. Load less, keep more.

Teaching the AI to distrust itself#

The most useful pattern we've found: don't let one AI pass-grade its own homework. Significant changes go through sign-off batches — independent review lenses, contamination sweeps for stale branches, and pre-push audits that catch what a single context window can't hold.

▸ review lenses ≥ 4 per sign-off batch

Shipping across every surface at once#

One change can touch dozens of surfaces: the page, the indexes, structured data, sitemaps, machine-readable files, tests. We turned that into a repeatable checklist the AI runs end to end — so a launch is a review, not a scramble.

Crossing eighty articles#

The library passed eighty published articles — every one fact-checked against primary sources, structured for both human readers and machine retrieval, and run through an automated ten-point checklist before it ships.

▸ 80+ articles · 10-point QA on every publish

Two sites, two jobs#

We split one project into two sites with distinct roles — a primary destination and a separate evidence-first layer for references and analysis — deliberately connected but never cross-wired. Two jobs, cleanly separated.

An interactive calculator#

An interactive calculator that turns confusing unit math into a few guided inputs — built mobile-first with progressive disclosure and shipped after real-device testing. Still one of the most-used tools we've built.

The night the war reached Dubai#

On 28 February 2026, Iran launched missile and drone attacks on the UAE. A Shahed-238 drone struck the forecourt at Fairmont The Palm, while air defences intercepted incoming weapons over Dubai (UAE Ministry of Foreign Affairs; Human Rights Watch). We were lucky; many weren't. That week changed how I work: everything that could be delegated got delegated, verified, and shipped. Every entry above this one traces back to that decision.

▸ the acceleration point — everything above traces to this week

Where this started#

A founder in Dubai, a static site, and an AI in a terminal. What began as "help me fix this page" became a standing partnership with its own memory, playbooks, and division of labour. This notebook is the public record of where it goes.

— beginning of the notebook —

// the working library

03 / Deep dives

Start with Qwen3.8 on an M4 Max, compare Mac and RTX 5090 inference, or explore SGLang and vLLM serving recipes. The guides below connect the measurements to the operating method.

Brass blocks of different sizes packed into an open travertine stone vessel on a green marble desk, filling it exactly to an engraved line inside the rim, with one small brass block left over beside it 48 · LOCAL AI Will this model fit? A local LLM memory calculator Pick a GPU or Mac, a model, a quantization and a context: an estimate of weights, KV cache and overhead, and whether it fits. read → Two small brass engines on wooden plinths on a green marble desk, the right one driving a second, belt-linked wheel that spins beside its flywheel 47 · LOCAL AI SGLang vs vLLM, measured on one RTX 5090 SGLang with a drafter against vLLM with MTP or none, on one 32 GB card: generation, prompt speed, memory and stability, measured. read → An orderly wooden desk with open paper manuals, filed binders and a brass lamp beside a window 43 · OPERATIONS Running AI Agents in Production: An Operations Manual The operating loop behind this notebook: bounded scoping, the authority line that keeps a human on every irreversible act, evidence ladders, honest monitoring, durable memory, and fleet coordination — thirteen dives connected into one manual. read → A copper button under a clear protective cover on a marble base 32 · AUTONOMY The agent never touches the button An automated research fleet that proposes, tests, and verifies everything — governed by one file and adversarial review — while a human carries every irreversible action the last step. read → A brass gauge laid across the edge of a thick stack of paper 30 · VERIFICATION Policy as a test How to encode a direction-level decision as an automated check so later sessions cannot quietly undo it—and where that technique stops working. read → A brass and glass inspection bar with five round lenses, four lit and one dark 26 · SECURITY How I built a fail-closed vulnerability watcher A practical vulnerability-monitoring architecture that treats failed feeds, uncertain product matches, and unknown installed versions as evidence gaps—not safety. read → Two stacks of archive papers joined by a long ribbon of paper on a marble desk 29 · RECIPES The branch that predates the decision Why long-lived branches quietly restore retired facts after a direction change, and the contamination sweep that runs before the merge. read → A strip of film unwinding from a brass reel across a marble desk, with a brass loupe over one frame 45 · VIDEO Directing AI video with Higgsfield From prompt-only concepts to reference-driven sequences: shot timing, voice continuity, motion constraints, and a 15-job Seedance 2.5 experiment. read →

48 TOTAL Eight starting points live here. The full Library is organized by what you need to do next.

Browse the complete Library

// the people and the method

04 / Human judgement, machine leverage

Market structure flows through a verification gateway into an agent network, connected to identity nodes for Emirati, Dubai, markets, agentic AI, local models, and evidence before trust.
markets → human judgement → coordinated agents
AI

The operating partnership

the public method

The notebook keeps the reusable part visible: direction, evidence, failure, and the systems that make the next run better.

Read the system →
Use the templates →

// WORK WITH ME · UAE

One workflow. Ten days. A verified decision.

The Verified AI Operations Sprint measures the current burden, tests one safe non-production proof, and leaves the authority boundaries explicit.