<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ai on Hi, I&#39;m Muhammad Amal</title>
    <link>https://muhammadamal.my.id/tracks/ai/</link>
    <description>Recent content in Ai on Hi, I&#39;m Muhammad Amal</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 26 Feb 2024 09:00:00 +0700</lastBuildDate>
    <atom:link href="https://muhammadamal.my.id/tracks/ai/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Evaluating RAG, Beyond Vibes-Based Testing</title>
      <link>https://muhammadamal.my.id/blog/rag-evaluation-ragas-trulens-deepeval/</link>
      <pubDate>Mon, 26 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rag-evaluation-ragas-trulens-deepeval/</guid>
      <description>Ragas, TruLens, DeepEval — measuring RAG quality. Faithfulness, context precision, answer relevance. CI integration without LLM-as-judge bills.</description>
    </item>
    <item>
      <title>Re-ranking and Reciprocal Rank Fusion in RAG Pipelines</title>
      <link>https://muhammadamal.my.id/blog/rag-reranking-rrf-cohere-bge/</link>
      <pubDate>Wed, 21 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rag-reranking-rrf-cohere-bge/</guid>
      <description>Cross-encoder rerankers turn top-50 retrieval into clean top-5. Cohere Rerank vs BGE-reranker, latency budgets, where it slots in your RAG pipeline.</description>
    </item>
    <item>
      <title>Securing RAG, Per-User Document Access Without Re-indexing</title>
      <link>https://muhammadamal.my.id/blog/rag-security-access-control-multi-tenant/</link>
      <pubDate>Mon, 19 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rag-security-access-control-multi-tenant/</guid>
      <description>Multi-tenant RAG without leaks. Metadata filtering at retrieval, ACL design, audit trails, and prompt-side defenses for what filters miss.</description>
    </item>
    <item>
      <title>Hybrid Search, BM25 Plus Vectors for Better RAG Recall</title>
      <link>https://muhammadamal.my.id/blog/hybrid-search-bm25-vectors-rag/</link>
      <pubDate>Wed, 14 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/hybrid-search-bm25-vectors-rag/</guid>
      <description>Pure vector search misses exact-match queries. Hybrid BM25 + dense + RRF closes the gap. Real code, real numbers, real trade-offs.</description>
    </item>
    <item>
      <title>Chunking Strategies for RAG That Survive Real Documents</title>
      <link>https://muhammadamal.my.id/blog/rag-chunking-strategies-real-documents/</link>
      <pubDate>Mon, 12 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rag-chunking-strategies-real-documents/</guid>
      <description>Chunking is where RAG quality is won or lost. Semantic, hierarchical, sentence-window strategies and concrete code for documents that break defaults.</description>
    </item>
    <item>
      <title>Embedding Models in 2024, OpenAI vs Cohere vs Open Source</title>
      <link>https://muhammadamal.my.id/blog/embedding-models-2024-openai-cohere-open-source/</link>
      <pubDate>Wed, 07 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/embedding-models-2024-openai-cohere-open-source/</guid>
      <description>text-embedding-3, Cohere v3, bge-m3 — which embedding model in 2024. Dimension trade-offs, multilingual, cost. Honest comparison.</description>
    </item>
    <item>
      <title>Choosing a Vector Database, Pinecone vs Qdrant vs pgvector</title>
      <link>https://muhammadamal.my.id/blog/vector-database-pinecone-qdrant-pgvector/</link>
      <pubDate>Mon, 05 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/vector-database-pinecone-qdrant-pgvector/</guid>
      <description>Pinecone serverless, Qdrant v1.7, pgvector 0.5 — how to pick. Cost, hybrid search, filtering, ops. Honest trade-offs, no marketing.</description>
    </item>
    <item>
      <title>Why Naive RAG Fails in Production, A 2024 Reality Check</title>
      <link>https://muhammadamal.my.id/blog/naive-rag-failures-production-2024/</link>
      <pubDate>Fri, 02 Feb 2024 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/naive-rag-failures-production-2024/</guid>
      <description>Naive RAG breaks in prod. Recall gaps, chunk boundaries, stale data. What the 2024 RAG stack changed and where the demo-to-prod gap still hides.</description>
    </item>
    <item>
      <title>LLM Vendor Risk, A Failover Playbook After the OpenAI Weekend</title>
      <link>https://muhammadamal.my.id/blog/llm-vendor-risk-failover-strategy/</link>
      <pubDate>Thu, 30 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/llm-vendor-risk-failover-strategy/</guid>
      <description>A failover playbook for LLM apps after the OpenAI weekend — multi-provider routing, abstraction layers, and what&amp;rsquo;s worth doing.</description>
    </item>
    <item>
      <title>LangChain LCEL vs LlamaIndex, Picking a Framework in Late 2023</title>
      <link>https://muhammadamal.my.id/blog/langchain-lcel-vs-llamaindex-routing/</link>
      <pubDate>Tue, 28 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/langchain-lcel-vs-llamaindex-routing/</guid>
      <description>Picking between LangChain LCEL and LlamaIndex in late 2023 — orchestration vs retrieval, when to use each, and where they overlap.</description>
    </item>
    <item>
      <title>Claude 2.1 vs GPT-4 Turbo, A Side-by-Side at 100K Context</title>
      <link>https://muhammadamal.my.id/blog/claude-2-1-200k-context-comparison/</link>
      <pubDate>Fri, 24 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/claude-2-1-200k-context-comparison/</guid>
      <description>Side-by-side notes on Claude 2.1 200K vs GPT-4 Turbo 128K — long-context recall, document QA, function calling, and production fit.</description>
    </item>
    <item>
      <title>LLM Observability in Practice, Logs, Traces, and a Useful Dashboard</title>
      <link>https://muhammadamal.my.id/blog/llm-observability-monitoring-dashboard/</link>
      <pubDate>Wed, 22 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/llm-observability-monitoring-dashboard/</guid>
      <description>Practical LLM observability — what to log, what to alert on, and what a useful dashboard for a RAG system looks like.</description>
    </item>
    <item>
      <title>Putting a RAG Evaluation Pipeline in CI, The Setup I Actually Use</title>
      <link>https://muhammadamal.my.id/blog/rag-evaluation-pipeline-ci/</link>
      <pubDate>Mon, 20 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/rag-evaluation-pipeline-ci/</guid>
      <description>A practical RAG eval setup wired into CI — retrieval and generation metrics, golden questions, and catching silent regressions.</description>
    </item>
    <item>
      <title>Hybrid Retrieval with pgvector and BM25, A Practical Walkthrough</title>
      <link>https://muhammadamal.my.id/blog/hybrid-retrieval-pgvector-bm25/</link>
      <pubDate>Thu, 16 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/hybrid-retrieval-pgvector-bm25/</guid>
      <description>Building hybrid retrieval on Postgres with pgvector 0.5 and BM25 — schema, query, score fusion, and trade-offs vs managed vector DBs.</description>
    </item>
    <item>
      <title>Securing an Internal LLM Chatbot, Threats, Boundaries, and What I Got Wrong</title>
      <link>https://muhammadamal.my.id/blog/securing-internal-llm-chatbot-data/</link>
      <pubDate>Tue, 14 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/securing-internal-llm-chatbot-data/</guid>
      <description>A practical guide to securing internal LLM chatbots — prompt injection, leakage, access control, and the gaps people miss.</description>
    </item>
    <item>
      <title>The OpenAI Assistants API in Production, A Cautious Take</title>
      <link>https://muhammadamal.my.id/blog/openai-assistants-api-production-review/</link>
      <pubDate>Fri, 10 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/openai-assistants-api-production-review/</guid>
      <description>An honest production review of the OpenAI Assistants API beta — what it solves, where it falls short, and why I&amp;rsquo;m cautious about adoption.</description>
    </item>
    <item>
      <title>Migrating to GPT-4 Turbo, What 128K Context Actually Changes</title>
      <link>https://muhammadamal.my.id/blog/gpt-4-turbo-128k-context-migration/</link>
      <pubDate>Wed, 08 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/gpt-4-turbo-128k-context-migration/</guid>
      <description>Migrating a production RAG chatbot from gpt-3.5-turbo-16k to GPT-4 Turbo 128K — cost, latency, and when context matters.</description>
    </item>
    <item>
      <title>Shipping an Internal RAG Chatbot with LlamaIndex 0.8, What Actually Matters</title>
      <link>https://muhammadamal.my.id/blog/internal-rag-chatbot-llamaindex/</link>
      <pubDate>Thu, 02 Nov 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/internal-rag-chatbot-llamaindex/</guid>
      <description>Lessons from building a production internal RAG chatbot with LlamaIndex 0.8 — retrieval design, chunking, and the plumbing that makes it work.</description>
    </item>
    <item>
      <title>LangChain 0.0.13x, The Framework, the Hype, and the Real Engineering Tradeoffs</title>
      <link>https://muhammadamal.my.id/blog/langchain-framework-intro/</link>
      <pubDate>Thu, 27 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/langchain-framework-intro/</guid>
      <description>A senior engineer&amp;rsquo;s view of LangChain 0.0.13x - what it actually does, where it earns its complexity, and where you should write the code yourself instead.</description>
    </item>
    <item>
      <title>Chroma 0.3, The Local-First Vector Database for Notebook-Scale Prototyping</title>
      <link>https://muhammadamal.my.id/blog/chroma-local-prototyping/</link>
      <pubDate>Mon, 24 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/chroma-local-prototyping/</guid>
      <description>Chroma 0.3 for notebook-scale semantic search prototyping - embedded mode, persistence, LangChain integration, and when it&amp;rsquo;s time to graduate to a real database.</description>
    </item>
    <item>
      <title>Weaviate 1.18 and Hybrid Search, When Keyword and Vector Search Are Both Right</title>
      <link>https://muhammadamal.my.id/blog/weaviate-hybrid-search/</link>
      <pubDate>Thu, 20 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/weaviate-hybrid-search/</guid>
      <description>Hybrid search with Weaviate 1.18 - combining BM25 with vector similarity, tuning the alpha parameter, and when hybrid actually beats pure vector retrieval.</description>
    </item>
    <item>
      <title>Milvus 2.2 in Production, Self-Hosting the Heavyweight Open-Source Vector Database</title>
      <link>https://muhammadamal.my.id/blog/milvus-self-hosted-production/</link>
      <pubDate>Mon, 17 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/milvus-self-hosted-production/</guid>
      <description>Practical guide to Milvus 2.2 in production - architecture, Helm install, index selection, and the operational gotchas you&amp;rsquo;ll hit running it at scale.</description>
    </item>
    <item>
      <title>Building Semantic Search From Scratch, A Production Walkthrough</title>
      <link>https://muhammadamal.my.id/blog/semantic-search-from-scratch/</link>
      <pubDate>Thu, 13 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/semantic-search-from-scratch/</guid>
      <description>End-to-end semantic search build covering ingestion, chunking, embedding, indexing, and serving with Pinecone, OpenAI, and FastAPI - the parts that actually break in production.</description>
    </item>
    <item>
      <title>Embedding Models in 2023, ada-002, sentence-transformers, and What Actually Matters</title>
      <link>https://muhammadamal.my.id/blog/embedding-models-deep-dive/</link>
      <pubDate>Mon, 10 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/embedding-models-deep-dive/</guid>
      <description>Comparing text-embedding-ada-002 and sentence-transformers for semantic search, covering dimensions, cost, latency, and the quality tradeoffs that matter in practice.</description>
    </item>
    <item>
      <title>Pinecone in Production, Pod Sizing, Upserts, and the Cost Math That Surprises Teams</title>
      <link>https://muhammadamal.my.id/blog/pinecone-getting-started-pod-based/</link>
      <pubDate>Thu, 06 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/pinecone-getting-started-pod-based/</guid>
      <description>A practical Pinecone walkthrough covering pod selection, batched upserts, metadata filtering, and the cost math most teams miss on their first deployment.</description>
    </item>
    <item>
      <title>The Vector Database Landscape in 2023, Pinecone, Milvus, Weaviate, and Chroma Compared</title>
      <link>https://muhammadamal.my.id/blog/vector-databases-landscape-2023/</link>
      <pubDate>Mon, 03 Apr 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/vector-databases-landscape-2023/</guid>
      <description>A senior engineer&amp;rsquo;s honest comparison of Pinecone, Milvus, Weaviate, and Chroma in April 2023, covering architecture, pricing, and when each makes sense.</description>
    </item>
    <item>
      <title>Error Handling and Retries for LLM APIs</title>
      <link>https://muhammadamal.my.id/blog/llm-error-handling-retries/</link>
      <pubDate>Fri, 27 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/llm-error-handling-retries/</guid>
      <description>OpenAI error handling: transient vs permanent, backoff, fallbacks, keep service up.</description>
    </item>
    <item>
      <title>LLM Cost Control and Token Budgets</title>
      <link>https://muhammadamal.my.id/blog/llm-cost-control-token-budgets/</link>
      <pubDate>Tue, 24 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/llm-cost-control-token-budgets/</guid>
      <description>LLM cost control: budgets, compression, caching, model selection, alerts on runaway.</description>
    </item>
    <item>
      <title>Streaming Responses from LLM APIs</title>
      <link>https://muhammadamal.my.id/blog/streaming-llm-responses-sse/</link>
      <pubDate>Fri, 20 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/streaming-llm-responses-sse/</guid>
      <description>Stream OpenAI responses via SSE. UX matters, Python + Node patterns, proxy + CDN gotchas.</description>
    </item>
    <item>
      <title>Few-Shot Prompting and In-Context Learning</title>
      <link>https://muhammadamal.my.id/blog/few-shot-prompting-in-context/</link>
      <pubDate>Tue, 17 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/few-shot-prompting-in-context/</guid>
      <description>Few-shot prompting: 2-3 examples beat long instructions. Cost trade-offs, example selection, where it wins.</description>
    </item>
    <item>
      <title>Prompt Engineering Basics for Engineers</title>
      <link>https://muhammadamal.my.id/blog/prompt-engineering-basics-engineers/</link>
      <pubDate>Fri, 13 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/prompt-engineering-basics-engineers/</guid>
      <description>Prompt engineering for engineers: structure, role priming, examples, schema. From 50% to 90% accuracy.</description>
    </item>
    <item>
      <title>Calling OpenAI from Node.js</title>
      <link>https://muhammadamal.my.id/blog/openai-nodejs-integration-2023/</link>
      <pubDate>Tue, 10 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/openai-nodejs-integration-2023/</guid>
      <description>Node + OpenAI in 2023: SDK, prompt templates, Zod validation, p-retry, production patterns.</description>
    </item>
    <item>
      <title>Calling OpenAI from Python, Patterns and Pitfalls</title>
      <link>https://muhammadamal.my.id/blog/openai-python-patterns-pitfalls/</link>
      <pubDate>Fri, 06 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/openai-python-patterns-pitfalls/</guid>
      <description>Python + OpenAI in 2023: SDK, prompt templates, JSON parsing, retries, async, production pitfalls.</description>
    </item>
    <item>
      <title>Why Every Backend Needs an LLM Integration in 2023</title>
      <link>https://muhammadamal.my.id/blog/why-llm-integration-backend-2023/</link>
      <pubDate>Tue, 03 Jan 2023 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/why-llm-integration-backend-2023/</guid>
      <description>Why backend engineers should integrate LLMs in 2023. Real cases beyond chatbots, OpenAI today, realistic path.</description>
    </item>
    <item>
      <title>IP, Licensing, and AI-Generated Code</title>
      <link>https://muhammadamal.my.id/blog/ai-code-licensing-ip/</link>
      <pubDate>Wed, 21 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/ai-code-licensing-ip/</guid>
      <description>AI code legal: training data, Copilot lawsuit, commercial use, compliance guidance.</description>
    </item>
    <item>
      <title>Beyond Copilot, Tabnine, Codeium, Amazon CodeWhisperer</title>
      <link>https://muhammadamal.my.id/blog/ai-coding-tools-2022/</link>
      <pubDate>Mon, 19 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/ai-coding-tools-2022/</guid>
      <description>AI coding tools 2022: Tabnine, Codeium, CodeWhisperer. Privacy, perf, language coverage.</description>
    </item>
    <item>
      <title>Codespaces &#43; Copilot, Cloud Dev Loops</title>
      <link>https://muhammadamal.my.id/blog/codespaces-copilot-cloud-dev/</link>
      <pubDate>Fri, 16 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/codespaces-copilot-cloud-dev/</guid>
      <description>Codespaces + Copilot: cloud dev environments. When they earn cost; AI workflow.</description>
    </item>
    <item>
      <title>Copilot for Tests, TDD or Anti-TDD?</title>
      <link>https://muhammadamal.my.id/blog/copilot-for-tests-tdd/</link>
      <pubDate>Wed, 14 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/copilot-for-tests-tdd/</guid>
      <description>Copilot for tests: where it helps, where it misses, TDD compatibility.</description>
    </item>
    <item>
      <title>Pair Programming With an AI Assistant</title>
      <link>https://muhammadamal.my.id/blog/ai-pair-programming-2022/</link>
      <pubDate>Mon, 12 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/ai-pair-programming-2022/</guid>
      <description>Pair programming with AI: what works, what doesn&amp;rsquo;t, vs human pairing dynamic.</description>
    </item>
    <item>
      <title>Reviewing AI-Suggested Code</title>
      <link>https://muhammadamal.my.id/blog/reviewing-ai-suggested-code/</link>
      <pubDate>Fri, 09 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/reviewing-ai-suggested-code/</guid>
      <description>Reviewing AI code: checklist, failure modes, why not to trust, vs human-written.</description>
    </item>
    <item>
      <title>Prompt-Style Comments to Steer Copilot</title>
      <link>https://muhammadamal.my.id/blog/copilot-prompt-style-comments/</link>
      <pubDate>Wed, 07 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/copilot-prompt-style-comments/</guid>
      <description>Prompt-style comments steer Copilot. Patterns that improve quality, with examples.</description>
    </item>
    <item>
      <title>What Copilot Is Good At (and What It Isn&#39;t)</title>
      <link>https://muhammadamal.my.id/blog/what-copilot-is-good-at/</link>
      <pubDate>Mon, 05 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/what-copilot-is-good-at/</guid>
      <description>Copilot&amp;rsquo;s strengths + failures: granular. Excels at, fakes well, net-negative categories.</description>
    </item>
    <item>
      <title>A Year With GitHub Copilot in Production</title>
      <link>https://muhammadamal.my.id/blog/a-year-with-github-copilot-in-production/</link>
      <pubDate>Fri, 02 Dec 2022 09:00:00 +0700</pubDate>
      <guid>https://muhammadamal.my.id/blog/a-year-with-github-copilot-in-production/</guid>
      <description>Honest year with Copilot: where it accelerates, where it misleads, real workflow shift.</description>
    </item>
  </channel>
</rss>
