Blog
Thoughts on AI engineering and production systems
Writing about real problems I've solved, frameworks I've shipped with, and the lessons learned along the way.
How I Killed 95% of Hallucinations in My Azure AI Matching Engine
Hallucinations were destroying trust in my candidate-to-job (or product-to-user) matching system. I share the exact PromptFlow recipe I used: combining few-shot examples, structured JSON forcing, self-consistency loops, retrieval-augmented checks, and a tiny "fact-check" mini-model. Real before/after numbers, the prompts I actually ship in production, and why I still allow controlled "creative hallucinations" in certain fields.
Building a Production-Grade Semantic Matching Solution in Azure AI Studio – From Playground to PromptFlow in One Week
Step-by-step war story of going from "Let's try Azure's playground" to a fully deployed, monitored matching engine that handles 10k+ queries a day. Covers: choosing the right model (gpt-4o vs gpt-4o-mini trade-offs), designing the PromptFlow graph (retrieval → reasoning → ranking nodes), adding evaluation sets, setting up continuous batch testing, and the one Azure trick that cut my token cost by 40%.
Why PromptFlow Is Now My Default Deploy Tool – And When I Still Reach for LangChain or Semantic Kernel Instead
Honest comparison after shipping the same matching logic with three different frameworks. PromptFlow won for observability, visual debugging, easy Azure integration, and built-in eval tools—here's the tracing screenshots to prove it. But I still use LangChain when I need heavy agent tool-calling and Semantic Kernel when the client is stuck in a .NET ecosystem. Includes a decision checklist you can copy-paste.
The Hidden Cost of Perfect Matching: When 99% Accuracy Made Users Angry
The story of over-optimizing similarity scores vs. serendipity and diversity in recommendations.