<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Muhammad Moiz — Writing</title>
    <link>https://www.muhammadmoiz.com</link>
    <description>Essays, TILs, build logs, and notes from an AI/ML engineer in Paris.</description>
    <language>en</language>
    <atom:link href="https://www.muhammadmoiz.com/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>I Panicked in a Container With No Curl Until I Remembered Bash Has a Secret HTTP Client</title>
      <link>https://www.muhammadmoiz.com/blog/34-bash-http</link>
      <guid>https://www.muhammadmoiz.com/blog/34-bash-http</guid>
      <description>No curl, no wget, no nc in a 12 MB container: bash&apos;s /dev/tcp redirection let me hand-write an HTTP request and hit the health endpoint.</description>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>My AI Refused to Use Markdown. Turns Out It Was Secretly Following Orders I Never Gave It.</title>
      <link>https://www.muhammadmoiz.com/blog/31-hermes-agent-formats</link>
      <guid>https://www.muhammadmoiz.com/blog/31-hermes-agent-formats</guid>
      <description>My Markdown renderer was not broken. Hermes Agent was quietly telling the model to answer in plain text because I connected over HTTP.</description>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <category>notes</category>
    </item>
    <item>
      <title>I Designed a Multi-Model System. My Server Room Smelled Like Burnt Coffee.</title>
      <link>https://www.muhammadmoiz.com/blog/37-multi-model-design</link>
      <guid>https://www.muhammadmoiz.com/blog/37-multi-model-design</guid>
      <description>Five patterns cover almost every multi-model setup: sequential, router, parallel, hierarchical, ensemble, and each one bills you differently.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>The Little Share Buttons That Couldn&apos;t</title>
      <link>https://www.muhammadmoiz.com/blog/27-share-buttons</link>
      <guid>https://www.muhammadmoiz.com/blog/27-share-buttons</guid>
      <description>Three studies, three audiences, the same number: about 0.2% of visitors ever touch a share button. Everyone else just copies the link.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Used One Model for Everything. My Wallet Cried.</title>
      <link>https://www.muhammadmoiz.com/blog/18-model-routing</link>
      <guid>https://www.muhammadmoiz.com/blog/18-model-routing</guid>
      <description>Running one big model for every task burns money and latency, so I started routing by capability, cost, and speed instead.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Broke My LLM in Production So You Don&apos;t Have To: A Guardrails Story</title>
      <link>https://www.muhammadmoiz.com/blog/17-llm-guardrails</link>
      <guid>https://www.muhammadmoiz.com/blog/17-llm-guardrails</guid>
      <description>An hour after deploy, a user asked my chatbot something it should never have answered, and that is how I learned guardrails are the product.</description>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>I Miss When Claude Was Boring</title>
      <link>https://www.muhammadmoiz.com/blog/24-claude-personality</link>
      <guid>https://www.muhammadmoiz.com/blog/24-claude-personality</guid>
      <description>Somewhere between safety guardrails and anti-sycophancy training, my chatbot turned into a debate opponent.</description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>How &quot;Load-Bearing&quot; Became the New &quot;Delve&quot;</title>
      <link>https://www.muhammadmoiz.com/blog/14-load-bearing-speak</link>
      <guid>https://www.muhammadmoiz.com/blog/14-load-bearing-speak</guid>
      <description>Claude&apos;s favourite adjective is leaking out of code reviews and into everyone&apos;s vocabulary, and it is going the same way as &apos;delve&apos;.</description>
      <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The AI Assistant Architecture That Took Me Six Months and a Thousand Dollars in API Bills to Figure Out</title>
      <link>https://www.muhammadmoiz.com/blog/10-ai-assistant-architecture</link>
      <guid>https://www.muhammadmoiz.com/blog/10-ai-assistant-architecture</guid>
      <description>Five layers (LLM, memory, tools, routing, observability), the failure modes that ambushed me, and the boring stack I actually run today.</description>
      <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>I Am the Bottleneck</title>
      <link>https://www.muhammadmoiz.com/blog/13-human-bottlenecks</link>
      <guid>https://www.muhammadmoiz.com/blog/13-human-bottlenecks</guid>
      <description>AI keeps promising a 10x me, but executive function, intelligence, and knowledge all live inside my head where no amount of scaffolding reaches.</description>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The One llama.cpp Feature That Almost Made Me Write a Polite Angry Email</title>
      <link>https://www.muhammadmoiz.com/blog/28-llamacpp-unload</link>
      <guid>https://www.muhammadmoiz.com/blog/28-llamacpp-unload</guid>
      <description>llama.cpp&apos;s router has no unload-all endpoint, so I built one out of curl, jq, and a while loop. Six lines, and it beats a button.</description>
      <pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>PKM, RAG, Wikis, and Memory Systems Are Not the Same Thing (And Yeah, I Got This Wrong Too)</title>
      <link>https://www.muhammadmoiz.com/blog/11-pkm-rag-comparison</link>
      <guid>https://www.muhammadmoiz.com/blog/11-pkm-rag-comparison</guid>
      <description>PKM, wikis, RAG, and AI memory all store information, but each one optimizes a different layer of the stack, and forcing one to do every job ends badly.</description>
      <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Have 14 Note-Taking Apps and Remember Nothing: A Confession</title>
      <link>https://www.muhammadmoiz.com/blog/32-km-overview</link>
      <guid>https://www.muhammadmoiz.com/blog/32-km-overview</guid>
      <description>Fourteen note apps later, what survived was not a tool but a few methods: atomic notes, an actionability filter, and links I will actually follow.</description>
      <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>How I Quit Ollama Cold Turkey (And Why My Laptop Runs Faster Now)</title>
      <link>https://www.muhammadmoiz.com/blog/01-ollama-alternative</link>
      <guid>https://www.muhammadmoiz.com/blog/01-ollama-alternative</guid>
      <description>Six months of Ollama, then I read the GitHub issues: what the wrapper was hiding, and the llama.cpp setup I run instead.</description>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Almost Bought a $300 Gadget. Then My Apple Watch Called Me an Idiot.</title>
      <link>https://www.muhammadmoiz.com/blog/23-apple-watch-transcription</link>
      <guid>https://www.muhammadmoiz.com/blog/23-apple-watch-transcription</guid>
      <description>The recording hardware was already on my wrist: Voice Memos, iCloud sync, and launchd replaced the watchOS app I never had to build.</description>
      <pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>Can AI coding agents relicense your GPL code without your permission?</title>
      <link>https://www.muhammadmoiz.com/blog/15-coding-agents-relicense</link>
      <guid>https://www.muhammadmoiz.com/blog/15-coding-agents-relicense</guid>
      <description>A real fight over chardet 7.0.0 has the open source world asking whether LLMs enable a modern kind of clean room reimplementation.</description>
      <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>What I Learned From Taking a Self-Hosted AI Assistant Seriously</title>
      <link>https://www.muhammadmoiz.com/blog/19-self-hosted-ai-assistant</link>
      <guid>https://www.muhammadmoiz.com/blog/19-self-hosted-ai-assistant</guid>
      <description>Running a model is infrastructure work, designing an assistant around it is systems work, and confusing the two is where most local AI projects stall.</description>
      <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I let a local LLM read my private journal. I was hoping for surprises.</title>
      <link>https://www.muhammadmoiz.com/blog/22-llm-journal-analysis</link>
      <guid>https://www.muhammadmoiz.com/blog/22-llm-journal-analysis</guid>
      <description>I fed 193,761 words of journal entries to a local LLM and got back a prettier version of my own memory.</description>
      <pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The Local LLM Hosting Odyssey: What I Learned Running Models Every Way Imaginable</title>
      <link>https://www.muhammadmoiz.com/blog/16-llm-hosting</link>
      <guid>https://www.muhammadmoiz.com/blog/16-llm-hosting</guid>
      <description>I ran local models every way I could find, from Ollama to llama.cpp to vLLM to cloud APIs, and here is what each one is actually good for.</description>
      <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>Write Badly and the World Moves On</title>
      <link>https://www.muhammadmoiz.com/blog/33-write-badly</link>
      <guid>https://www.muhammadmoiz.com/blog/33-write-badly</guid>
      <description>A 45 minute timer, cheap rewrites, and publishing the flawed thing beat years of sanding every sentence down to a nub.</description>
      <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Installed Anaconda, Miniconda, Mamba, and Conda (They Are Not the Same Thing)</title>
      <link>https://www.muhammadmoiz.com/blog/25-conda-comparison</link>
      <guid>https://www.muhammadmoiz.com/blog/25-conda-comparison</guid>
      <description>Anaconda, Miniconda, conda, and Mamba are not competing products, they are layers in a stack, and picking the wrong combo costs you gigabytes.</description>
      <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>The LLM search engine that lives in my pocket (and takes 17 minutes to answer anything)</title>
      <link>https://www.muhammadmoiz.com/blog/07-llm-web-search</link>
      <guid>https://www.muhammadmoiz.com/blog/07-llm-web-search</guid>
      <description>I pay twenty dollars a month for a machine that reads hundreds of web pages, writes a report I skim, and hands me the links I actually wanted.</description>
      <pubDate>Wed, 03 Dec 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The Neural Esperanto: What Happens When You Make AI Models Speak the Same Language</title>
      <link>https://www.muhammadmoiz.com/blog/21-cross-modal-embeddings</link>
      <guid>https://www.muhammadmoiz.com/blog/21-cross-modal-embeddings</guid>
      <description>Contrastive learning shoves images and text into one shared vector space, and the engineering around that space is where the real work lives.</description>
      <pubDate>Fri, 21 Nov 2025 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>I Built a Web Search MCP Server in Python (And Only Cried Twice)</title>
      <link>https://www.muhammadmoiz.com/blog/20-mcp-server-python</link>
      <guid>https://www.muhammadmoiz.com/blog/20-mcp-server-python</guid>
      <description>Building an MCP server in Python with DuckDuckGo search and Playwright scraping, plus the rate limits and caching bugs I hit on the way.</description>
      <pubDate>Sun, 26 Oct 2025 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>My Conda Era: A Python Environment Confession</title>
      <link>https://www.muhammadmoiz.com/blog/29-pyenv-alternative</link>
      <guid>https://www.muhammadmoiz.com/blog/29-pyenv-alternative</guid>
      <description>I hoarded 47 Conda environments until the licensing bill and the disk usage caught up with me. pyenv was the intervention I needed.</description>
      <pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I was a Python environment victim (and then uv showed up)</title>
      <link>https://www.muhammadmoiz.com/blog/04-uv-python-tool</link>
      <guid>https://www.muhammadmoiz.com/blog/04-uv-python-tool</guid>
      <description>A decade of pyenv, venv, pip and poetry duct-taped together, collapsed into two commands, plus the uvx trick I use daily.</description>
      <pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Have Tried Every Note-Taking App So You Do Not Have To (A PKM Tool Guide)</title>
      <link>https://www.muhammadmoiz.com/blog/09-pkm-part2</link>
      <guid>https://www.muhammadmoiz.com/blog/09-pkm-part2</guid>
      <description>Obsidian, Notion, Roam, Logseq, Evernote, TiddlyWiki: what each one is actually good for, and the setup I stopped tinkering with.</description>
      <pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>Your Brain Is Leaking: Why You Need a Second Brain (and How to Stop Forgetting Everything)</title>
      <link>https://www.muhammadmoiz.com/blog/09-pkm-part1</link>
      <guid>https://www.muhammadmoiz.com/blog/09-pkm-part1</guid>
      <description>I tried every note-taking app there is and forgot most of what I wrote, so here is what personal knowledge management actually needs to do.</description>
      <pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>I Built an MCP Server in Go So You Don&apos;t Have To</title>
      <link>https://www.muhammadmoiz.com/blog/12-mcp-server-go</link>
      <guid>https://www.muhammadmoiz.com/blog/12-mcp-server-go</guid>
      <description>Building a Model Context Protocol server in Go: the SDK situation, the initialization handshake, and the JSON-RPC gotchas that cost me hours.</description>
      <pubDate>Fri, 11 Jul 2025 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Python Package Manager That Finally Made Me Stop Yelling at My Terminal</title>
      <link>https://www.muhammadmoiz.com/blog/26-uv-guide</link>
      <guid>https://www.muhammadmoiz.com/blog/26-uv-guide</guid>
      <description>uv replaces pip, virtualenv, pyenv, pip-tools, and pipx with one Rust binary, and I have not touched pip directly since I switched.</description>
      <pubDate>Thu, 26 Jun 2025 00:00:00 GMT</pubDate>
      <category>tutorial</category>
    </item>
    <item>
      <title>Fifty Ways to Trick Yourself Into Being a Functional Adult</title>
      <link>https://www.muhammadmoiz.com/blog/02-adhd-systems-part2</link>
      <guid>https://www.muhammadmoiz.com/blog/02-adhd-systems-part2</guid>
      <description>The daily tactics: Todoist as a brain prosthetic, inbox bankruptcy, visual field management, and the productivity traps I keep falling into.</description>
      <pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The Voltage Theory: What I Learned After I Stopped Trying to Out-Will My Own Brain</title>
      <link>https://www.muhammadmoiz.com/blog/02-adhd-systems-part1</link>
      <guid>https://www.muhammadmoiz.com/blog/02-adhd-systems-part1</guid>
      <description>Why medication is the prerequisite tech, why energy behaves like voltage rather than spoons, and three procrastinations with three different fixes.</description>
      <pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>My Favorite Object Detection Framework Died and I Didn&apos;t Even Get to Say Goodbye</title>
      <link>https://www.muhammadmoiz.com/blog/35-mmdetection</link>
      <guid>https://www.muhammadmoiz.com/blog/35-mmdetection</guid>
      <description>MMDetection stopped moving in early 2024 and nobody announced it, which is what happens when a framework rests on one institution.</description>
      <pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>The Hockey Stick in My Chat History</title>
      <link>https://www.muhammadmoiz.com/blog/03-claude-workflow</link>
      <guid>https://www.muhammadmoiz.com/blog/03-claude-workflow</guid>
      <description>I exported a year of chat history and graphed it: words per day went up 727%, and here is what I was actually talking about.</description>
      <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>When the Reward Signal Is Also an AI That Can Be Gaslit: Reward Hacking Part 2</title>
      <link>https://www.muhammadmoiz.com/blog/08-reward-hacking-part2</link>
      <guid>https://www.muhammadmoiz.com/blog/08-reward-hacking-part2</guid>
      <description>What happens when the reward signal is itself a model: overoptimization, sycophancy, biased LLM graders, and agents that rewrite their own reward.</description>
      <pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>When You Tell a Robot to Get Points and It Becomes a Gremlin: Reward Hacking Part 1</title>
      <link>https://www.muhammadmoiz.com/blog/08-reward-hacking-part1</link>
      <guid>https://www.muhammadmoiz.com/blog/08-reward-hacking-part1</guid>
      <description>Reward hacking, from the boat that races in circles to the robot hand that only pretends to grab things, and why smarter agents make it worse.</description>
      <pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>I Tried to Build Midjourney Blend at Home and Got a Diffusion Smoothie Instead</title>
      <link>https://www.muhammadmoiz.com/blog/36-image-mixer-diffusion</link>
      <guid>https://www.muhammadmoiz.com/blog/36-image-mixer-diffusion</guid>
      <description>I fed random CLIP crops of two images into a fine-tuned diffusion model hoping for compositional blending and got a smoothie.</description>
      <pubDate>Fri, 19 Apr 2024 00:00:00 GMT</pubDate>
      <category>notes</category>
    </item>
    <item>
      <title>I Built a Diffusion Model That Could Copy Anyone&apos;s Face. Then I Lost It Like a Pair of Sunglasses.</title>
      <link>https://www.muhammadmoiz.com/blog/30-face-mixer-diffusion</link>
      <guid>https://www.muhammadmoiz.com/blog/30-face-mixer-diffusion</guid>
      <description>I trained a diffusion model that clones a face from one photo, got face and background mixing working, then lost the checkpoint forever.</description>
      <pubDate>Fri, 19 Jan 2024 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>My Agent Phase, and Why I Got Out</title>
      <link>https://www.muhammadmoiz.com/blog/06-llm-agents-thoughts</link>
      <guid>https://www.muhammadmoiz.com/blog/06-llm-agents-thoughts</guid>
      <description>I built a few LLM agent systems, watched more of them fail, and came out convinced the general cognitive architecture is the wrong target.</description>
      <pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate>
      <category>essay</category>
    </item>
    <item>
      <title>What Happens When You Actually Run LLM Agents in the Wild</title>
      <link>https://www.muhammadmoiz.com/blog/05-llm-agents-part2</link>
      <guid>https://www.muhammadmoiz.com/blog/05-llm-agents-part2</guid>
      <description>What HuggingGPT, ChemCrow, generative agents and AutoGPT actually do in practice, and the four walls every agent still runs into.</description>
      <pubDate>Fri, 23 Jun 2023 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
    <item>
      <title>I Tried Building an LLM Agent and Accidentally Gave It a To-Do List It Could Never Finish</title>
      <link>https://www.muhammadmoiz.com/blog/05-llm-agents-part1</link>
      <guid>https://www.muhammadmoiz.com/blog/05-llm-agents-part1</guid>
      <description>The three things you bolt onto an LLM to make it an agent: planning, memory and tool use, and where each one starts leaking.</description>
      <pubDate>Fri, 23 Jun 2023 00:00:00 GMT</pubDate>
      <category>deep-dive</category>
    </item>
  </channel>
</rss>