41554 blogs · [
{
"id": "01a0b8e5-82fa-7268-952a-270130d7ffd2",
"title": "Your Help Center Is the Real Model",
"url": "https://hemju.me/posts/post-031/",
"published_at": "2026-09-16T00:00:00+00:00"
},
{
"id": "01a0b8e5-82fa-7268-952a-270131c35e25",
"title": "The Slowdown That Won't Come",
"url": "https://hemju.me/posts/post-030/",
"published_at": "2026-09-14T00:00:00+00:00"
},
{
"id": "01a09505-0055-7142-82a4-705ff01eea19",
"title": "A Quiet Customer Isn't a Solved Ticket",
"url": "https://hemju.me/posts/post-029/",
"published_at": "2026-09-11T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea409872c0",
"title": "Your Code Review Triage Runs on a Signal That No Longer Means What It Used To",
"url": "https://hemju.me/posts/post-028/",
"published_at": "2026-08-31T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea40f48c02",
"title": "Structured Concurrency's Seventh Preview Is an Indictment of ExecutorService, Not a New Feature",
"url": "https://hemju.me/posts/post-027/",
"published_at": "2026-08-24T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea41733086",
"title": "The Microservices-for-Agents Advice Is Backwards",
"url": "https://hemju.me/posts/post-026/",
"published_at": "2026-08-21T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea422f9373",
"title": "Before Hiring More Reviewers, Count the Changes Waiting for Production",
"url": "https://hemju.me/posts/post-025/",
"published_at": "2026-08-17T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea42cf8c0f",
"title": "Design Your Solo SaaS for Operational Continuity, Not Faster Code",
"url": "https://hemju.me/posts/post-024/",
"published_at": "2026-08-11T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea4318cbcd",
"title": "Do Not Run Bedrock Guardrail Checks on Every Agent Turn",
"url": "https://hemju.me/posts/post-023/",
"published_at": "2026-08-10T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea43cdfd75",
"title": "The METR Study Flipping Sign Is Not Permission to Raise Your Velocity Targets",
"url": "https://hemju.me/posts/post-022/",
"published_at": "2026-08-09T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea44bddc6b",
"title": "Pin Your GenAI Telemetry Schema or Your LLM Release Gates Will Lie",
"url": "https://hemju.me/posts/post-021/",
"published_at": "2026-07-24T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea44d95ae8",
"title": "Stop Giving Your Best Engineer Both the Architecture and the Deadline",
"url": "https://hemju.me/posts/post-020/",
"published_at": "2026-07-24T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea45876231",
"title": "Use Aurora DSQL CDC to Transport an Outbox, Not to Invent Domain Events",
"url": "https://hemju.me/posts/post-019/",
"published_at": "2026-07-11T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea458b0a71",
"title": "Your RAG Pipeline Doesn't Need a Vector Database, It Needs a Cache Invalidation Strategy",
"url": "https://hemju.me/posts/post-018/",
"published_at": "2026-07-09T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea468910cc",
"title": "Your Domain Model Is a Political Document, Not an Engineering One",
"url": "https://hemju.me/posts/post-017/",
"published_at": "2026-07-08T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea4701f5d2",
"title": "Localization Is a Cache Invalidation Problem, Not a Translation Problem",
"url": "https://hemju.me/posts/post-016/",
"published_at": "2026-07-05T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea4706ffb3",
"title": "PromptOps: Configuration Management for Probabilistic Systems",
"url": "https://hemju.me/posts/post-015/",
"published_at": "2026-03-31T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea47f695da",
"title": "The Prompt Engineering Playbook: From Magic Spells to Prompt-as-Code",
"url": "https://hemju.me/posts/post-014/",
"published_at": "2026-03-27T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea48718fdb",
"title": "The AI OSPO: Governance for the Open Source Era",
"url": "https://hemju.me/posts/post-013/",
"published_at": "2026-03-24T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea48bc572b",
"title": "From Prompts to Agents: A Holistic View of System Design",
"url": "https://hemju.me/posts/post-012/",
"published_at": "2026-03-20T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea496c127a",
"title": "Sovereign AI: Why Open Source Is a Compliance Requirement",
"url": "https://hemju.me/posts/post-011/",
"published_at": "2026-03-17T00:00:00+00:00"
},
{
"id": "01a08782-80e1-7041-a61e-caea49e22332",
"title": "Open Source vs. Proprietary: The 2026 Strategic Hybrid",
"url": "https://hemju.me/posts/post-010/",
"published_at": "2026-03-13T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea84049e90",
"title": "The Holistic AI Audit: Assessing 360° Readiness",
"url": "https://hemju.me/posts/post-009/",
"published_at": "2026-03-10T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea8502d865",
"title": "When NOT to Use a Vector Database",
"url": "https://hemju.me/posts/post-008/",
"published_at": "2026-03-06T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea859e07e7",
"title": "The 2026 CTO: From Code Overseer to Inference Architect",
"url": "https://hemju.me/posts/post-007/",
"published_at": "2026-03-03T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea86405ed5",
"title": "The Cultural Hallucination: Why LLMs Struggle Globally",
"url": "https://hemju.me/posts/post-006/",
"published_at": "2026-02-27T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea8663fb0c",
"title": "State vs. Statistically Likely: Mixing Databases with LLMs",
"url": "https://hemju.me/posts/post-005/",
"published_at": "2026-02-24T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea86dfa3c2",
"title": "Beyond the Chatbot: Finding the Invisible AI ROI",
"url": "https://hemju.me/posts/post-004/",
"published_at": "2026-02-20T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea87d7645f",
"title": "AI Adoption Without Regret: A Decision Framework for CTOs and Founders",
"url": "https://hemju.me/posts/post-003/",
"published_at": "2026-02-17T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea8887290f",
"title": "Where LLMs Break: Architectural Patterns for Safe AI Integration",
"url": "https://hemju.me/posts/post-002/",
"published_at": "2026-02-13T00:00:00+00:00"
},
{
"id": "01a08782-80e2-72bd-9dfe-19ea897439b7",
"title": "Architecting for Uncertainty: The New Paradigm of Software Design in the AI Era",
"url": "https://hemju.me/posts/post-001/",
"published_at": "2026-02-10T00:00:00+00:00"
}
] posts Claim your blog