{"@attributes":{"version":"2.0"},"channel":{"title":"Faiz Halde","link":"https:\/\/fhalde.github.io\/","description":"Recent content on Faiz Halde","generator":"Hugo","language":"en-us","lastBuildDate":"Tue, 17 Mar 2026 14:59:34 +0100","item":[{"title":"Foo \u2260 Hostname","link":"https:\/\/fhalde.github.io\/posts\/hostname\/","pubDate":"Tue, 17 Mar 2026 14:59:34 +0100","guid":"https:\/\/fhalde.github.io\/posts\/hostname\/","description":"<p>A common recurring pattern I&rsquo;ve observed is generating ingress hostnames from app names:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-yaml\" data-lang=\"yaml\"><span style=\"display:flex;\"><span><span style=\"color:#7ee787\">app<\/span>:<span style=\"color:#6e7681\"> <\/span><span style=\"color:#a5d6ff\">foo<\/span><span style=\"color:#6e7681\">\n<\/span><\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#6e7681\"><\/span><span style=\"color:#7ee787\">hostname<\/span>:<span style=\"color:#6e7681\"> <\/span><span style=\"color:#a5d6ff\">${app}.&lt;cluster-domain&gt;<\/span><span style=\"color:#6e7681\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>It guarantees uniqueness and simplifies setup. For internal services or\nephemeral environments, this is often perfectly fine.<\/p>\n<p>But when this pattern becomes the <em>default<\/em> for externally visible\nendpoints, it starts to break down &mdash; because it fundamentally\nmisunderstands what a hostname represents in that context.<\/p>\n<p>A hostname is not just a unique identifier. It&rsquo;s a contract &mdash; with\nbrowsers, with TLS, with DNS, and with your users. By reducing it to a\nderived label, you lose control over things that matter in production.<\/p>"},{"title":"Making JSON Awaitable","link":"https:\/\/fhalde.github.io\/posts\/jsontap\/","pubDate":"Sun, 01 Mar 2026 22:05:50 +0100","guid":"https:\/\/fhalde.github.io\/posts\/jsontap\/","description":"<p>When working with LLMs for building Agentic Apps, one thing quickly becomes obvious:<\/p>\n<ul>\n<li>You want structured outputs.<\/li>\n<li>The model streams tokens.<\/li>\n<li>Your code waits for a finished JSON blob.<\/li>\n<\/ul>\n<p>That mismatch accumulates latency. <a href=\"https:\/\/github.com\/fhalde\/jsontap\" target=\"_blank\" >jsontap<\/a>\n closes that gap.<\/p>\n<p>This post explains the design behind jsontap.<\/p>\n<h2 id=\"json-is-a-tree\">JSON is a tree<\/h2>\n<p>JSON is not just a string. It is a hierarchical structure.<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-json\" data-lang=\"json\"><span style=\"display:flex;\"><span>{\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;user&#34;<\/span>: {\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;name&#34;<\/span>: <span style=\"color:#a5d6ff\">&#34;Alice&#34;<\/span>,\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;scores&#34;<\/span>: [<span style=\"color:#a5d6ff\">10<\/span>, <span style=\"color:#a5d6ff\">20<\/span>, <span style=\"color:#a5d6ff\">30<\/span>],\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;friends&#34;<\/span>: [\n<\/span><\/span><span style=\"display:flex;\"><span> {\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;name&#34;<\/span>: <span style=\"color:#a5d6ff\">&#34;Bob&#34;<\/span>,\n<\/span><\/span><span style=\"display:flex;\"><span> <span style=\"color:#7ee787\">&#34;email&#34;<\/span>: <span style=\"color:#a5d6ff\">&#34;bob@example.com&#34;<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span> }\n<\/span><\/span><span style=\"display:flex;\"><span> ]\n<\/span><\/span><span style=\"display:flex;\"><span> }\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>As a tree:<\/p>"},{"title":"META","link":"https:\/\/fhalde.github.io\/posts\/metadata\/","pubDate":"Fri, 18 Aug 2023 16:23:02 +0200","guid":"https:\/\/fhalde.github.io\/posts\/metadata\/","description":"<p>Hi, I&rsquo;m <strong>Faiz Halde<\/strong> \u2014 a software engineer for almost a decade. That&rsquo;s right, saying &ldquo;10+ years&rdquo; doesn&rsquo;t pack the same punch, folks.<\/p>\n<p>I currently work at <strong>Aleph Alpha<\/strong>, building AI applications. Previously, I&rsquo;ve worked at Nubank, PayPal, and Helpshift.<\/p>\n<p>My main interests are Distributed Systems, Databases, System Performance and Big Data.<\/p>\n<p>I enjoy working across languages, especially Clojure, Python, Scala &amp; Go.<\/p>"}]}}