{"id":22,"date":"2026-01-09T15:12:55","date_gmt":"2026-01-09T15:12:55","guid":{"rendered":"https:\/\/wordpress.joeltan.me\/?page_id=22"},"modified":"2026-01-23T12:52:05","modified_gmt":"2026-01-23T12:52:05","slug":"why-this-blog","status":"publish","type":"page","link":"https:\/\/joeltan.me\/?page_id=22","title":{"rendered":"Why This Blog"},"content":{"rendered":"\n<p>Slide decks are easy. Production is hard.<\/p>\n\n\n\n<p>Most architecture looks flawless until it meets a real-world workload. This blog is a running log of the wins, the expensive mistakes, and the design choices that actually survived scaling. I write about building data platforms and AI infrastructure for people who have to maintain what they build.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae, .wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae[data-kb-block=\"kb-adv-heading22_0b9381-ae\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae[data-kb-block=\"kb-adv-heading22_0b9381-ae\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading22_0b9381-ae[data-kb-block=\"kb-adv-heading22_0b9381-ae\"] img.kb-inline-image{width:150px;vertical-align:baseline;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<h2 class=\"kt-adv-heading22_0b9381-ae wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading22_0b9381-ae\">Data Engineering: Systems That Stay Up<\/h2>\n\n\n\n<p>From SQL Server to Delta Lake to Fabric, I\u2019ve lived through the messy middle: schema drift, rising costs, broken pipelines, and \u201cjust one more linked service.\u201d<\/p>\n\n\n\n<p>These posts focus on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lakehouse patterns that scale without constant rebuilds<\/li>\n\n\n\n<li>Schema-on-read vs schema-on-write in the real world<\/li>\n\n\n\n<li>Synapse, Fabric, OneLake &#8211; what you gain and what you lose<\/li>\n\n\n\n<li>Security and identity as architectural decisions, not afterthoughts<\/li>\n<\/ul>\n\n\n\n<p><strong>Read if you care about:<\/strong><br>operability, governance, and long-term sanity.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3, .wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3[data-kb-block=\"kb-adv-heading22_bab833-f3\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3[data-kb-block=\"kb-adv-heading22_bab833-f3\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading22_bab833-f3[data-kb-block=\"kb-adv-heading22_bab833-f3\"] img.kb-inline-image{width:150px;vertical-align:baseline;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<h2 class=\"kt-adv-heading22_bab833-f3 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading22_bab833-f3\">Engineering AI: Beyond the Prompt<\/h2>\n\n\n\n<p>I\u2019m not interested in prompt tricks.<\/p>\n\n\n\n<p>I\u2019m interested in what happens when AI can execute code, touch infrastructure, and make irreversible changes.<\/p>\n\n\n\n<p>These posts explore:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AI agents as operators, not chatbots<\/li>\n\n\n\n<li>Containers as blast-radius control<\/li>\n\n\n\n<li>CI-driven agent workflows<\/li>\n\n\n\n<li>Why guardrails matter more than \u201cintelligence\u201d<\/li>\n<\/ul>\n\n\n\n<p><strong>Read if you care about:<\/strong><br>using AI without trusting it blindly.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01, .wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01[data-kb-block=\"kb-adv-heading22_67bddd-01\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01[data-kb-block=\"kb-adv-heading22_67bddd-01\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading22_67bddd-01[data-kb-block=\"kb-adv-heading22_67bddd-01\"] img.kb-inline-image{width:150px;vertical-align:baseline;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<h2 class=\"kt-adv-heading22_67bddd-01 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading22_67bddd-01\">Productivity Without the Hype<\/h2>\n\n\n\n<p>\u201c5\u00d7 developer\u201d claims sound great &#8211; until you inherit the code.<\/p>\n\n\n\n<p>This section is about building systems that make you <em>consistently<\/em> effective, not occasionally fast.<\/p>\n\n\n\n<p>Topics include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objects vs functions in real automation scripts<\/li>\n\n\n\n<li>Dev containers and reproducible environments<\/li>\n\n\n\n<li>Why almost-right code is worse than slow code<\/li>\n\n\n\n<li>Using AI as a reviewer, not an author<\/li>\n<\/ul>\n\n\n\n<p><strong>Read if you care about:<\/strong><br>maintainability, readability, and future-you.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading22_060347-be, .wp-block-kadence-advancedheading.kt-adv-heading22_060347-be[data-kb-block=\"kb-adv-heading22_060347-be\"]{font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading22_060347-be mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading22_060347-be[data-kb-block=\"kb-adv-heading22_060347-be\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-advancedheading.kt-adv-heading22_060347-be img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading22_060347-be[data-kb-block=\"kb-adv-heading22_060347-be\"] img.kb-inline-image{width:150px;vertical-align:baseline;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<h2 class=\"kt-adv-heading22_060347-be wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading22_060347-be\">Owning the Stack (Because Abstraction Has a Cost)<\/h2>\n\n\n\n<p>Cloud is powerful &#8211; and dangerously good at hiding complexity.<\/p>\n\n\n\n<p>Self-hosting and home labs aren\u2019t nostalgia projects; they\u2019re how you learn what cloud services are actually doing on your behalf.<\/p>\n\n\n\n<p>These posts cover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Docker-first self-hosting<\/li>\n\n\n\n<li>Networking, storage, and identity fundamentals<\/li>\n\n\n\n<li>Replacing subscriptions with systems you understand<\/li>\n\n\n\n<li>Building intuition that transfers back to the cloud<\/li>\n<\/ul>\n\n\n\n<p><strong>Read if you care about:<\/strong><br>mastery, sovereignty, and understanding what you pay for.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Slide decks are easy. Production is hard. Most architecture looks flawless until it meets a real-world workload. This blog is&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"class_list":["post-22","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Why This Blog - Joel Tan Tech Blogs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/joeltan.me\/?page_id=22\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why This Blog - Joel Tan Tech Blogs\" \/>\n<meta property=\"og:description\" content=\"Slide decks are easy. Production is hard. Most architecture looks flawless until it meets a real-world workload. This blog is&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/joeltan.me\/?page_id=22\" \/>\n<meta property=\"og:site_name\" content=\"Joel Tan Tech Blogs\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-23T12:52:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/joeltan.me\/?page_id=22\",\"url\":\"https:\/\/joeltan.me\/?page_id=22\",\"name\":\"Why This Blog - Joel Tan Tech Blogs\",\"isPartOf\":{\"@id\":\"https:\/\/joeltan.me\/#website\"},\"datePublished\":\"2026-01-09T15:12:55+00:00\",\"dateModified\":\"2026-01-23T12:52:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/joeltan.me\/?page_id=22#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/joeltan.me\/?page_id=22\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/joeltan.me\/?page_id=22#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/joeltan.me\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why This Blog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/joeltan.me\/#website\",\"url\":\"https:\/\/joeltan.me\/\",\"name\":\"Joel Tan Tech Blogs\",\"description\":\"Building systems that survive real life\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/joeltan.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Why This Blog - Joel Tan Tech Blogs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/joeltan.me\/?page_id=22","og_locale":"en_US","og_type":"article","og_title":"Why This Blog - Joel Tan Tech Blogs","og_description":"Slide decks are easy. Production is hard. Most architecture looks flawless until it meets a real-world workload. This blog is&#46;&#46;&#46;","og_url":"https:\/\/joeltan.me\/?page_id=22","og_site_name":"Joel Tan Tech Blogs","article_modified_time":"2026-01-23T12:52:05+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/joeltan.me\/?page_id=22","url":"https:\/\/joeltan.me\/?page_id=22","name":"Why This Blog - Joel Tan Tech Blogs","isPartOf":{"@id":"https:\/\/joeltan.me\/#website"},"datePublished":"2026-01-09T15:12:55+00:00","dateModified":"2026-01-23T12:52:05+00:00","breadcrumb":{"@id":"https:\/\/joeltan.me\/?page_id=22#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/joeltan.me\/?page_id=22"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/joeltan.me\/?page_id=22#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/joeltan.me\/"},{"@type":"ListItem","position":2,"name":"Why This Blog"}]},{"@type":"WebSite","@id":"https:\/\/joeltan.me\/#website","url":"https:\/\/joeltan.me\/","name":"Joel Tan Tech Blogs","description":"Building systems that survive real life","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/joeltan.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/pages\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/joeltan.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=22"}],"version-history":[{"count":9,"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/pages\/22\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/joeltan.me\/index.php?rest_route=\/wp\/v2\/pages\/22\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/joeltan.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}