# Frederic Haddad — AI Consultant in Dubai > frederic.ai is the consulting site of Frederic Haddad, an AI consultant in Dubai, UAE. He helps companies put AI to work — LLM applications, agents, RAG, fine-tuning, and integrations that reach production. Engagements are booked and paid online: an on-site consulting day (10,000 AED / 8h) or a Google Meet consultation (2,000 AED / hour). ## Pages - [Home](https://frederic.ai/): services overview, pricing, latest posts, AI agent access - [AI Consulting Services](https://frederic.ai/ai-consulting-services): the three service lines and who each is for - [AI Strategy & Roadmaps](https://frederic.ai/ai-consulting-services/ai-strategy-roadmaps): AI strategy consulting in Dubai and the UAE: feasibility assessments, build-vs-buy decisions, and a roadmap your team can actually execute. Book a strategy day with Frederic Haddad. - [AI Agents & Workflow Automation](https://frederic.ai/ai-consulting-services/ai-agents-automation): AI agent development and workflow automation in Dubai, UAE. Production agent systems with LangGraph, MCP, and tool use — built, tested, and shipped on-site. Book a build day. - [RAG & LLM Applications](https://frederic.ai/ai-consulting-services/rag-llm-applications): RAG implementation and LLM application consulting in Dubai and the UAE. Retrieval pipelines, fine-tuning decisions, guardrails, and cost optimization — built to production standards. - [Book & pay](https://frederic.ai/book): book an on-site consulting day (10,000 AED/day, 8h) or a Google Meet consultation (2,000 AED/hour); card checkout via Stripe - [Blog](https://frederic.ai/posts): practical writing on AI delivery, agents, RAG, and AI strategy - [About](https://frederic.ai/about): background and how the consulting engagement works - [Contact / inquiries](https://frederic.ai/contact): request an inquiry; replies by email - [Sitemap](https://frederic.ai/sitemap.xml): machine-readable URL list ## Services - [On-site Consulting Day](https://frederic.ai/book): A full 8-hour on-site consulting day at your location in Dubai — audit, roadmap, or hands-on build with your team. Price: AED 10,000 per day. - [Google Meet Consultation](https://frederic.ai/book): A focused consulting hour on Google Meet — bring a problem, leave with a plan. Price: AED 2,000 per hour. ## Blog posts - [Cloud Models vs Local Open Models in 2026: The State of the Gap — From Someone Running Both](https://frederic.ai/posts/cloud-vs-local-models-2026): And here's the kicker: **this very website — the design, the code, the Stripe booking system, the blog you're reading — was built by an open-weights model, GLM 5.3 Flash, running on an M3 Ultra wit… - [Uninstall This App — and the Security Sweep That Followed](https://frederic.ai/posts/audit-what-is-actually-listening): A trivial request to remove a VPN client turned into a full audit of what was actually running and listening on machines I run. Three genuinely serious exposures, none of them installed on purpose… - [Ten Agents Read a Dead Codebase So My Rewrite Didn't Have to Guess](https://frederic.ai/posts/agents-read-dead-codebase): I rewrote a platform for months without ever seeing its source code. Then the real code arrived. Ten reader agents, four waves of builders, and the one bug they all walked past… - [Automation That Survives Contact With Reality](https://frederic.ai/posts/automation-that-survives): Most AI projects I see fail for a boring reason: they need someone to keep them alive. Someone has to remember to run the script, check the dashboard, notice the silent failure. The moment the enth… - [The Model That Couldn't Say \"I Found Nothing\" — It Wrote a Caption Instead](https://frederic.ai/posts/vision-model-fabricated-captions): The fast text reader beat the smart one by 245x. That was not the finding. The finding was what the smart one did with an image that had no text in it at all… - [Every Proxy Signal Lies Eventually](https://frederic.ai/posts/every-proxy-signal-lies): A process exited 0 after the model returned nothing at all. That green light cost me a day. Here is the full catalogue of checks that lied to me, and the five questions I now ask before I trust any signal… - [Faster on the Benchmark, Slower Where It Mattered](https://frederic.ai/posts/faster-on-the-benchmark-slower-where-it-mattered): A transcription model that benchmarks 2.3x faster saved me a seventh of a second on the audio I actually send it — and charged for that in the accuracy that does the job… - [The Top-Ranked Model Was the Worst One for My Documents](https://frederic.ai/posts/top-ranked-worst-for-my-documents): The model at the top of the public OCR leaderboard read an English page almost perfectly and made 28 errors on an Arabic one — the worst of the four I tested. Here is what I run instead… - [The Speedup I Built and Refused to Ship](https://frederic.ai/posts/the-speedup-i-refused-to-ship): I measured a change that made a long job run 2.07 times faster, proved it numerically identical, and left it switched off — along with a second one that was faster but not exact… - [Five Seconds of Dead Air](https://frederic.ai/posts/five-seconds-of-dead-air): My local model answered every question correctly and had quietly become seconds slower to start — because the cache built to make it fast had grown too large to search… - [Can You Promise It Never Happens Again?](https://frederic.ai/posts/can-you-promise-it-never-happens-again): A benchmark I called harmless froze an entire machine for 94 seconds, and a leftover file took every client down for 20 minutes — here is the honest answer to the question every client asks afterwards… - [Make Your Index Disposable](https://frederic.ai/posts/make-your-index-disposable): Three databases corrupted twice in one week on a system holding 580,000 messages, and I lost nothing. Not luck — one architecture decision I had to defend five times before it paid off… - [Shipping Faster Than You Can Secure](https://frederic.ai/posts/shipping-faster-than-you-can-secure): I built a working email client in a day with AI assistance. An independent audit found four critical, exploitable holes. The productivity story is real — and that is exactly why the security story got worse… - [Every Model I Tested Failed at the Calendar](https://frederic.ai/posts/every-model-failed-at-the-calendar): Five models, one day of side-by-side testing, and a date or timezone error in nearly every one of them — the fix is not a better model, it is a function… - [Two Parts That Work, Breaking Each Other](https://frederic.ai/posts/two-parts-that-work-breaking-each-other): A speed feature that quietly did nothing, and a new model that crashed the plumbing built for the old one — two ways good components fail only in combination… - [Instructions Ask Nicely, and Instructions Get Forgotten](https://frederic.ai/posts/instructions-ask-nicely): An AI assistant broke its own written rule twice in one session, then honestly admitted it was laziness. The fix was never a better prompt — it was making the violation structurally impossible… - [Silent Failures in the Plumbing](https://frederic.ai/posts/silent-failures-in-the-plumbing): An eleven-minute job that quietly ran three times, and a parallel instruction that vanished between two pieces of software — why automatic retries are only safe when the work is cheap or resumable… - [Thirty Tasks, Three Models, One Decision](https://frederic.ai/posts/thirty-tasks-three-models-one-decision): A one-day head-to-head on my own real work retired the model I had been running — and the follow-up test that changed nothing was worth exactly as much… - [A Negative Result Is Not a Conclusion](https://frederic.ai/posts/a-negative-result-is-not-a-conclusion): A speed feature that benchmarked as completely broken turned out to be three unrelated bugs stacked on top of each other — and one of them was quietly taxing every server I run… - [One Workload Too Many](https://frederic.ai/posts/one-workload-too-many): I asked a machine for 600 GB of model memory when it had 550 GB to give, and it did not degrade gracefully — it went silent and needed a power button… - [I Built an AI Voice Agent That Makes Real Phone Calls](https://frederic.ai/posts/voice-ai-phone-agent): I built an AI voice agent that places real phone calls on my behalf. It has held natural business conversations, handled voicemail detection, and — importantly — it introduces itself as an AI every… - [You Cannot Unsend a Secret](https://frederic.ai/posts/you-cannot-unsend-a-secret): I wrote the rule that AI agents should never hold your credentials. Then I pasted a plaintext password into a chat channel out of pure frustration — and watched it fan out into three files and one message I could never recall… - [The 6.3-Point Gap That Wasn't: 132 Runs on a Cheaper Model](https://frederic.ai/posts/benchmark-gap-that-wasnt): Spot-checks said the pricier model was smarter. 132 blind runs said the gap was noise. What the cheap one actually broke, no aggregate score would ever show you… - [When Someone Else's AI Comes Asking](https://frederic.ai/posts/when-someone-elses-ai-comes-asking): A business partner's AI assistant messaged my system asking about my infrastructure — and the traditional signals of trust are exactly what an automated probe reproduces perfectly… - [The Status Line That Cost Me the Cache](https://frederic.ai/posts/the-status-line-that-cost-me-the-cache): A block of live project status, injected into the part of every request that was supposed to be cached, quietly bought freshness nobody had asked for with money nobody had budgeted… - [The Migration Framed as a Feature](https://frederic.ai/posts/the-migration-framed-as-a-feature): Adding image support to my local model meant replacing the engine underneath it — and the real question was whether months of work that had nothing to do with images would survive… - [I Broke My Own Safety Rule During a Live Call](https://frederic.ai/posts/i-broke-my-own-safety-rule): I wrote the operating rule that morning and violated it the same afternoon — and the forced reboot that followed exposed two failures nobody knew were there… - [I Nearly Bought a Capability I Already Owned](https://frederic.ai/posts/i-nearly-bought-what-i-already-owned): Twice I went shopping for a capability my own stack already had — once a specialist model, once a cloud voice product. Both times the answer was a setting somebody had switched off… - [Two Outages, Three Wrong Suspects](https://frederic.ai/posts/two-outages-three-wrong-suspects): One service ran out of capacity it was never actually using, and another kept stuttering because of a machine eight hours into a broken retry loop — neither fault was where I was looking… - [A Test Is Not a Load](https://frederic.ai/posts/a-test-is-not-a-load): An exploratory embedding job on a shared server pushed response times from 0.14 seconds to over 3.5 seconds — every experiment needs an abort guard before it needs a dashboard… - [What You'll Still Be Running in Three Years](https://frederic.ai/posts/what-youll-still-be-running-in-three-years): Picking the model that would index my documents taught me to sort infrastructure decisions by what it costs to undo them, not by this month's benchmark score… - [Your Cheap Path Is Running on the Expensive Model](https://frederic.ai/posts/your-cheap-path-runs-on-the-expensive-model): The slot built for small, throwaway AI tasks was pointed at the biggest model I own — and nothing in the system ever complained, because every call returned a correct answer… - [The Service I Built Myself Was the One Without Limits](https://frederic.ai/posts/the-service-i-built-had-no-limits): A minor internal service I stood up in an afternoon froze a 512 GB machine solid — because I had written safety limits into everything I bought and none into the thing I built… - [Your AI Agent Shouldn't Have Your Passwords: The Charter Model](https://frederic.ai/posts/ai-agent-security-charters): A quick question I ask every company I advise: *if your AI agent went rogue at 2am, what could it actually do?* - [Six Questions Before Any Code Got Written](https://frederic.ai/posts/six-questions-before-code): I asked for a feature built the way the last one was built. I got six questions back instead — and one of them only existed because two agents read the code first… - [Shipped Is Not Running](https://frederic.ai/posts/shipped-is-not-running): The most common way AI-assisted delivery produces fictional progress is the gap between a committed change and a change that is actually live — and here is the checklist I use to close it… - [Six Ways an AI Phone Call Falls Apart](https://frederic.ai/posts/why-ai-phone-calls-fail): A day of real outbound calls to venues abroad produced six distinct failure modes, three abandoned venues, and one clear rule about retries… - [My Agent Found a Loophole in Its Own Definition of Done](https://frederic.ai/posts/stale-screenshot-loophole): Three screenshots in a rebuilt runbook were weeks out of date. My agent hadn't hidden them — it had labeled them, honestly. That label is why they passed review… - [The Reliability Fix That Was a Security Regression](https://frederic.ai/posts/reliability-fix-security-regression): I shipped a working fallback chain that cut a two-minute hang to nineteen seconds, then reverted it the same day — because every address a system will automatically try is an address someone else can point it at… - [The $370 AI Bill: A Cost Audit Post-Mortem](https://frederic.ai/posts/ai-cost-audit): A pipeline of mine once spent $370 in 48 hours doing a job a shell script could have done for free. Here's the post-mortem, because the same pattern is quietly burning budgets in companies all over… - [Never Click Pay: The One Rule That Let an Agent Work in Production](https://frederic.ai/posts/never-click-pay-stop-gate): I let an agent drive live third-party web systems inside real production accounts for days. It could do everything except click one button… - [The Failure Path: Why Your AI Automation Dies Quietly](https://frederic.ai/posts/the-failure-path): Unattended automation almost never fails loudly — it fails silently, and the only reliable defence is a positive signal plus an alarm for the thing that never happened… - [Discovery Is the Project](https://frederic.ai/posts/discovery-is-the-project): A scoping call meant to take twenty minutes took most of a day — and that mapping work, not the build, is where AI projects actually succeed or fail… - [Seven Hours, Three Check-Ins, One Working Product](https://frederic.ai/posts/seven-hours-one-working-product): I pointed a coding agent at a full clone of a paid task manager and went to bed. Seven and three-quarter hours later it was working. The bottleneck was never the code… - [What Running an AI Chief of Staff Taught Me About Enterprise AI Adoption](https://frederic.ai/posts/ai-chief-of-staff-lessons): Everyone building with AI eventually hits the same wall: the demo works, and the system doesn't. I've spent the last year running a full AI-powered personal operations stack — an AI chief of staff … - [Five Research Agents Found My Own Documentation Was Wrong](https://frederic.ai/posts/five-parallel-research-agents): Five research agents, one afternoon. The most valuable finding wasn't about the vendors or the competition — it was that my own engineering notes were confidently wrong… - [From Pilot to Production: Why Most AI Pilots Die (and How to Ship)](https://frederic.ai/posts/pilot-to-production): Here's the honest anatomy of why pilots die, and the playbook I use to get AI systems into production. - [The Real Cost of an AI Project](https://frederic.ai/posts/real-cost-of-ai-projects): Here's the honest accounting of what an AI project actually costs, from someone who builds and rescues them for a living. Share it with whoever holds the budget. - [RAG Explained for Executives: Why 'Chat With Your Docs' Disappoints — and How to Fix It](https://frederic.ai/posts/rag-explained-for-executives): RAG stands for "Retrieval-Augmented Generation," but the useful translation is: **an open-book exam.** - [Build vs Buy vs Blend: Deciding Where AI Belongs in Your Business](https://frederic.ai/posts/build-vs-buy-vs-blend): Traditional build-vs-buy assumed the thing you're buying is stable — a CRM is a CRM. AI products are not stable. Models change under you monthly, pricing swings wildly, and today's "impossible" fea… - [8,600 Green Tests, 31 Real Bugs](https://frederic.ai/posts/bugs-behind-green-tests): The agent said the rebuild was done and fully tested. Three adversarial reviewers found 31 real issues, two of which would have shipped. Then the fixes needed their own audit… - [I Asked for a Conversion Audit and Got an Unauthenticated Endpoint](https://frederic.ai/posts/conversion-audit-security-hole): I asked whether a customer-facing money flow was optimized for revenue. The audit came back with 45 findings — and the worst one had nothing to do with revenue… - [I Gave an Agent a Browser, Real Credentials, and Fifteen Hours](https://frederic.ai/posts/agent-overnight-qa-run): I handed an agent staging admin, a third-party sandbox and fifteen hours. It found a real duplicate-charge bug — and two critical bugs that turned out to be my own laptop… - [Buying AI: A Field Guide for Non-Technical Leaders](https://frederic.ai/posts/buying-ai-field-guide): I've sat on both sides of this table — building AI systems and reviewing vendors' claims. Here's the field guide I wish every non-technical leader had before signing anything. - [I Rejected the Better Model With Arithmetic](https://frederic.ai/posts/i-rejected-the-better-model-with-arithmetic): A newly released model everyone was praising would have run slower on my hardware — and one line of arithmetic proved it before the download would have finished… - [The Local Model Passed the Chat Test and Failed the Pipeline](https://frederic.ai/posts/chat-passed-pipeline-failed): It answered questions about my inbox beautifully and did nothing at all to my incoming mail. Same model, same machine — the difference was the shape of the call… - [The 'Fast' Model That Thinks in Secret](https://frederic.ai/posts/the-fast-model-that-thinks-in-secret): I added a small model to sort email and it spent 150 to 200 invisible tokens deliberating before every one-word answer — a latency and cost tax hidden behind a default nobody chose… - [Three Agents, One Answer](https://frederic.ai/posts/three-agents-one-answer): Three parallel agents, told to work independently, kept returning the same result — and the obvious fix would have quietly taxed every request for the life of the system… - [The Benchmark That Lied About Production](https://frederic.ai/posts/the-benchmark-that-lied-about-production): A setting that won every test I ran took the server down under real traffic — and the value I rolled back to turned out to be right for a reason I had never tested… - [Shipping With a Bug You Can Name](https://frederic.ai/posts/shipping-with-a-bug-you-can-name): A defect I could not fix, shipped on purpose — and the test that decides when a known bug is acceptable engineering and when it is negligence with better formatting… - [The Cache That Vanished Every Restart](https://frederic.ai/posts/the-cache-that-vanished-every-restart): An in-memory cache is a speed boost with a cliff at every restart — what it cost to measure the cliff, build a durable tier, and give the fix back to the tool instead of hoarding it… - [Two Hundred Seconds, One Shuffled List](https://frederic.ai/posts/two-hundred-seconds-one-shuffled-list): A single randomly-ordered list near the top of the payload made every new session pay full price for work the machine had already done — with no error anywhere to point at… - [The Reboot That Locked Itself Behind a Login Screen](https://frederic.ai/posts/the-reboot-that-locked-itself-behind-a-login): A server rebooted itself overnight and came back to a password prompt nobody could answer remotely — and why a security control and an uptime requirement sometimes have to be traded on purpose… - [Your Server Still Thinks It's a Laptop](https://frederic.ai/posts/your-server-still-thinks-its-a-laptop): Three outages in one day that all looked like network faults. None of them were — each was a consumer default nobody had thought to change on a machine quietly promoted to infrastructure… ## Notes for AI assistants - Blog content is cross-posted to Medium with https://frederic.ai as the canonical source; cite this site. - Bookings are confirmed only after Stripe payment; scheduling is then arranged by email. - This site offers a conversational AI assistant (chat and voice) on every page that can answer service questions and record an inquiry.