<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>JovaniPink.com</title>
        <link>https://jovanipink.com/</link>
        <description>Enterprise AI architecture, selected work, and technical writing about data-intensive workflows, evidence, evaluation, and governed production.</description>
        <lastBuildDate>Mon, 07 Sep 2026 21:38:27 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>© 2026 Jovani Pink</copyright>
        <item>
            <title><![CDATA[An AI Release Decision Needs an Exact Revision]]></title>
            <link>https://jovanipink.com/posts/exact-revision-ai-release-evidence</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/exact-revision-ai-release-evidence</guid>
            <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical release-evidence structure for deciding whether one exact AI workflow revision should ship, ship with conditions, wait, or be blocked.]]></description>
            <content:encoded><![CDATA[<p>A practical release-evidence structure for deciding whether one exact AI workflow revision should ship, ship with conditions, wait, or be blocked.</p><p><strong>Reader outcome:</strong> Reader can structure an AI workflow release decision around an exact subject, applicable evidence, known failures, accountable approval, rollback, expiration, and re-review triggers without confusing the record with certification or proof of safety.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>AI release engineering</category>
            <category>AI evaluation</category>
            <category>human review</category>
            <category>evidence</category>
            <category>agent systems</category>
        </item>
        <item>
            <title><![CDATA[Same Data, Different Runtime: Elixir and Python for Data Science]]></title>
            <link>https://jovanipink.com/posts/same-data-different-runtime-elixir-python-data-science</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/same-data-different-runtime-elixir-python-data-science</guid>
            <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A fixture-backed comparison that holds the BLS source, transformations, K-means settings, and acceptance criteria constant, then asks what Elixir and Python make easier to inspect and trust.]]></description>
            <content:encoded><![CDATA[<p>A fixture-backed comparison that holds the BLS source, transformations, K-means settings, and acceptance criteria constant, then asks what Elixir and Python make easier to inspect and trust.</p><p><strong>Reader outcome:</strong> Reader can design a cross-stack experiment that tests output agreement without turning a small analytical workload into a misleading language benchmark.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data science</category>
            <category>elixir</category>
            <category>python</category>
            <category>reproducibility</category>
            <category>machine learning</category>
        </item>
        <item>
            <title><![CDATA[Downloaded Agent Skills Are Untrusted Operational Code]]></title>
            <link>https://jovanipink.com/posts/downloaded-agent-skills-untrusted-operational-code</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/downloaded-agent-skills-untrusted-operational-code</guid>
            <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Two recent preprints make the practical case for quarantining, pinning, reviewing, and testing third-party agent skills before installation.]]></description>
            <content:encoded><![CDATA[<p>Two recent preprints make the practical case for quarantining, pinning, reviewing, and testing third-party agent skills before installation.</p><p><strong>Reader outcome:</strong> Reader can review third-party skills through repository pins, source inspection, and bounded intake checks.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agent skills</category>
            <category>prompt injection</category>
            <category>supply chain</category>
            <category>security</category>
            <category>developer workflow</category>
        </item>
        <item>
            <title><![CDATA[Two Private Sports Labs, One Evidence Contract]]></title>
            <link>https://jovanipink.com/posts/two-private-sports-labs-one-evidence-contract</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/two-private-sports-labs-one-evidence-contract</guid>
            <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why I kept Sunday Lab and NBA Lab private, unified their forecasting vocabulary, and published the boundary instead of pretending two local prototypes were live products.]]></description>
            <content:encoded><![CDATA[<p>Why I kept Sunday Lab and NBA Lab private, unified their forecasting vocabulary, and published the boundary instead of pretending two local prototypes were live products.</p><p><strong>Reader outcome:</strong> Reader can separate facts, market observations, forecasts, decisions, and evaluations in a practice system without mistaking a private prototype for a live product or measured outcome.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>forecasting</category>
            <category>simulation</category>
            <category>evidence</category>
            <category>data contracts</category>
            <category>sports analytics</category>
        </item>
        <item>
            <title><![CDATA[Simulation Is Not Evidence: Rehearsing Consequential Decisions]]></title>
            <link>https://jovanipink.com/posts/simulation-is-not-evidence-rehearsing-consequential-decisions</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/simulation-is-not-evidence-rehearsing-consequential-decisions</guid>
            <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A doctrine for building traceable decision simulations without confusing synthetic behavior, calibrated models, forecasts, digital twins, or operational evidence.]]></description>
            <content:encoded><![CDATA[<p>A doctrine for building traceable decision simulations without confusing synthetic behavior, calibrated models, forecasts, digital twins, or operational evidence.</p><p><strong>Reader outcome:</strong> Reader can distinguish a reproducible decision rehearsal from evidence about the real world, inspect the minimum simulation contract, and evaluate the validation work still required.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>simulation</category>
            <category>decision systems</category>
            <category>evidence</category>
            <category>state machines</category>
            <category>evaluation</category>
        </item>
        <item>
            <title><![CDATA[Social Skills Are Shared-Context Design]]></title>
            <link>https://jovanipink.com/posts/social-skills-are-shared-context-design</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/social-skills-are-shared-context-design</guid>
            <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical operating model for conversation: manage shared attention, lower the cost of joining and leaving, treat body language as uncertain evidence, and keep warmth from becoming manipulation.]]></description>
            <content:encoded><![CDATA[<p>A practical operating model for conversation: manage shared attention, lower the cost of joining and leaving, treat body language as uncertain evidence, and keep warmth from becoming manipulation.</p><p><strong>Reader outcome:</strong> Reader can use a six-rule conversation protocol that improves inclusion and rapport without treating body language as ground truth or confusing social skill with control.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>communication</category>
            <category>systems thinking</category>
            <category>leadership</category>
            <category>collaboration</category>
            <category>social skills</category>
        </item>
        <item>
            <title><![CDATA[Green Is Not Done: Write Agent Loops as Evidence Contracts]]></title>
            <link>https://jovanipink.com/posts/green-is-not-done-agent-loop-prompts</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/green-is-not-done-agent-loop-prompts</guid>
            <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical set of prompts for planning, implementation, review, PR repair, Codex Goals, scheduled triage, and skill mining without turning 'keep going until green' into an unbounded agent loop.]]></description>
            <content:encoded><![CDATA[<p>A practical set of prompts for planning, implementation, review, PR repair, Codex Goals, scheduled triage, and skill mining without turning &#39;keep going until green&#39; into an unbounded agent loop.</p><p><strong>Reader outcome:</strong> Reader can choose the right agent-loop trigger, write an auditable completion contract, separate orchestration from disposable workers, and adapt production-ready prompt variants for implementation, PR triage, and skill validation.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agent loops</category>
            <category>prompt engineering</category>
            <category>codex goals</category>
            <category>coding agents</category>
            <category>pull requests</category>
        </item>
        <item>
            <title><![CDATA[Where Open Models Fit in an Acreage-Reporting Workflow]]></title>
            <link>https://jovanipink.com/posts/open-model-acreage-reporting-boundary</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/open-model-acreage-reporting-boundary</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A public-source reference architecture showing where a private open model can reduce repeated API work without becoming the source of truth for acreage, identity, reconciliation, or submission.]]></description>
            <content:encoded><![CDATA[<p>A public-source reference architecture showing where a private open model can reduce repeated API work without becoming the source of truth for acreage, identity, reconciliation, or submission.</p><p><strong>Reader outcome:</strong> Reader can map private models, hosted models, deterministic rules, and human authority onto a source-custody chain.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>acreage reporting</category>
            <category>document ai</category>
            <category>model routing</category>
            <category>agricultural insurance</category>
        </item>
        <item>
            <title><![CDATA[Stop Asking for the Best Small Model: Build a Deployment Envelope]]></title>
            <link>https://jovanipink.com/posts/small-open-models-deployment-envelope-2026</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/small-open-models-deployment-envelope-2026</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A July 2026 field guide to choosing self-hosted open models by exact checkpoint, license, resident memory, usable context, workload quality, and production economics.]]></description>
            <content:encoded><![CDATA[<p>A July 2026 field guide to choosing self-hosted open models by exact checkpoint, license, resident memory, usable context, workload quality, and production economics.</p><p><strong>Reader outcome:</strong> Reader can select and validate small self-hosted models against workload and deployment constraints.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>small language models</category>
            <category>open weights</category>
            <category>model evaluation</category>
            <category>gpu inference</category>
            <category>llmops</category>
        </item>
        <item>
            <title><![CDATA[Cloud Run GPU or Model API: The Break-Even Math]]></title>
            <link>https://jovanipink.com/posts/cloud-run-gpu-vs-model-api-cost</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/cloud-run-gpu-vs-model-api-cost</guid>
            <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a $1.05 Cloud Run L4 hour can be cheaper or more expensive than hosted inference depending on utilization, throughput, fallback rate, and accepted business outcomes.]]></description>
            <content:encoded><![CDATA[<p>Why a $1.05 Cloud Run L4 hour can be cheaper or more expensive than hosted inference depending on utilization, throughput, fallback rate, and accepted business outcomes.</p><p><strong>Reader outcome:</strong> Reader can compare GPU capacity with token-priced APIs using workload shape and accepted-result costs.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>cloud run</category>
            <category>gpu cost</category>
            <category>model pricing</category>
            <category>finops</category>
            <category>llmops</category>
        </item>
        <item>
            <title><![CDATA[A Private GPT-OSS Service on Cloud Run]]></title>
            <link>https://jovanipink.com/posts/private-gpt-oss-service-cloud-run-vllm</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/private-gpt-oss-service-cloud-run-vllm</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A production-oriented Cloud Run and vLLM design that keeps GPT-OSS private, separates routing from inference, and makes model loading, readiness, concurrency, and rollback explicit.]]></description>
            <content:encoded><![CDATA[<p>A production-oriented Cloud Run and vLLM design that keeps GPT-OSS private, separates routing from inference, and makes model loading, readiness, concurrency, and rollback explicit.</p><p><strong>Reader outcome:</strong> Reader can design a private inference service with IAM authentication, pinned artifacts, and measured concurrency.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>cloud run</category>
            <category>gpt-oss</category>
            <category>vllm</category>
            <category>gcp</category>
            <category>inference</category>
        </item>
        <item>
            <title><![CDATA[Hybrid AI Model Routing Is an Operating Boundary]]></title>
            <link>https://jovanipink.com/posts/hybrid-ai-model-routing-cloud-run-apis</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/hybrid-ai-model-routing-cloud-run-apis</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why adding a private open model beside hosted APIs fails unless routing, fallback, evaluation, and authority are designed as one production contract.]]></description>
            <content:encoded><![CDATA[<p>Why adding a private open model beside hosted APIs fails unless routing, fallback, evaluation, and authority are designed as one production contract.</p><p><strong>Reader outcome:</strong> Reader can route bounded inference tasks while preserving hosted fallbacks, validation, and human review.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>model routing</category>
            <category>cloud run</category>
            <category>open models</category>
            <category>agents</category>
            <category>llmops</category>
        </item>
        <item>
            <title><![CDATA[G# Is the Surprise That Made .NET Feel New Again]]></title>
            <link>https://jovanipink.com/posts/gsharp-surprise-modern-dotnet-language</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/gsharp-surprise-modern-dotnet-language</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[G# is exciting not because it replaces C#, but because it puts Go, Kotlin, and Swift-flavored ergonomics on the .NET platform and reminds us that a runtime can support more than one great way to think.]]></description>
            <content:encoded><![CDATA[<p>G# is exciting not because it replaces C#, but because it puts Go, Kotlin, and Swift-flavored ergonomics on the .NET platform and reminds us that a runtime can support more than one great way to think.</p><p><strong>Reader outcome:</strong> Reader can evaluate G# as an early .NET language experiment, understand why F# is the ecosystem&#39;s proof that distinct language models can thrive on one runtime, and choose a practical way to explore both without mistaking novelty for production readiness.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gsharp</category>
            <category>dotnet</category>
            <category>fsharp</category>
            <category>programming languages</category>
            <category>language design</category>
        </item>
        <item>
            <title><![CDATA[What I Owe the Games Pillar I Claimed]]></title>
            <link>https://jovanipink.com/posts/what-i-owe-a-pillar-i-claimed</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/what-i-owe-a-pillar-i-claimed</guid>
            <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The archive retrospective made the Games & Sim gap visible: three public proof pieces in a 96-post archive. The fix is not a better tagline; it is an artifact-first devlog cadence.]]></description>
            <content:encoded><![CDATA[<p>The archive retrospective made the Games &amp; Sim gap visible: three public proof pieces in a 96-post archive. The fix is not a better tagline; it is an artifact-first devlog cadence.</p><p><strong>Reader outcome:</strong> Reader can audit a public pillar claim against archive evidence, then choose a proof cadence or retire the claim.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>editorial</category>
            <category>positioning</category>
            <category>game development</category>
            <category>simulation</category>
            <category>devlog</category>
            <category>publishing</category>
        </item>
        <item>
            <title><![CDATA[The Rewrite Sprint That Made My Archive Earn Its Labels]]></title>
            <link>https://jovanipink.com/posts/auditing-my-own-archive</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/auditing-my-own-archive</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A retrospective on the rewrite sprint that started when a 40-post archive audit found essay and case_study labels attached to note-depth drafts.]]></description>
            <content:encoded><![CDATA[<p>A retrospective on the rewrite sprint that started when a 40-post archive audit found essay and case_study labels attached to note-depth drafts.</p><p><strong>Reader outcome:</strong> Reader can audit a technical-writing archive by separating tier labels from body evidence, then choose which posts to expand, retag, or hold.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>editorial</category>
            <category>writing</category>
            <category>publishing</category>
            <category>personal blog</category>
            <category>content strategy</category>
        </item>
        <item>
            <title><![CDATA[Customer Experience Simulation Is Agent-Driven User Research]]></title>
            <link>https://jovanipink.com/posts/customer-experience-simulation-agent-driven-user-research</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/customer-experience-simulation-agent-driven-user-research</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why plausible synthetic customer behavior can turn an onboarding simulation into false evidence unless every journey claim has a trace and a real-world validation gate.]]></description>
            <content:encoded><![CDATA[<p>Why plausible synthetic customer behavior can turn an onboarding simulation into false evidence unless every journey claim has a trace and a real-world validation gate.</p><p><strong>Reader outcome:</strong> Reader can design an agent-driven CX simulation as a hypothesis generator, with validation gates that keep synthetic behavior from being mistaken for customer evidence.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>simulation</category>
            <category>customer experience</category>
            <category>user research</category>
            <category>product systems</category>
        </item>
        <item>
            <title><![CDATA[XState for Python Is a Shared Workflow Contract]]></title>
            <link>https://jovanipink.com/posts/xstate-python-shared-workflow-contract</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/xstate-python-shared-workflow-contract</guid>
            <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A project note on JovaniPink/xstate-python: loading XState and Stately JSON in Python, executing with SCXML-style semantics, binding live Python handlers, and using actors without hiding workflow state in async glue.]]></description>
            <content:encoded><![CDATA[<p>A project note on JovaniPink/xstate-python: loading XState and Stately JSON in Python, executing with SCXML-style semantics, binding live Python handlers, and using actors without hiding workflow state in async glue.</p><p><strong>Reader outcome:</strong> Reader understands what xstate-python is trying to make possible, where it fits against other Python state-machine libraries, and why SCXML run-to-completion semantics, actors, clocks, and context snapshots matter for production workflows.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>xstate-python</category>
            <category>state machines</category>
            <category>python</category>
            <category>statecharts</category>
            <category>scxml</category>
        </item>
        <item>
            <title><![CDATA[Agent Frameworks Are Infrastructure Now]]></title>
            <link>https://jovanipink.com/posts/agent-frameworks-2026-infrastructure-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/agent-frameworks-2026-infrastructure-map</guid>
            <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical 2026 map of AI agent frameworks by infrastructure primitive: orchestration, tools, state, multi-agent delegation, approvals, observability, evaluation, and deployment.]]></description>
            <content:encoded><![CDATA[<p>A practical 2026 map of AI agent frameworks by infrastructure primitive: orchestration, tools, state, multi-agent delegation, approvals, observability, evaluation, and deployment.</p><p><strong>Reader outcome:</strong> Reader can identify which agent primitives a framework owns and which operating responsibilities remain with the team.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>agent frameworks</category>
            <category>mcp</category>
            <category>orchestration</category>
            <category>observability</category>
        </item>
        <item>
            <title><![CDATA[Free-Threaded Python Changes the Concurrency Question]]></title>
            <link>https://jovanipink.com/posts/free-threaded-python-concurrency-decision-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/free-threaded-python-concurrency-decision-map</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A decision map for when Python teams should keep asyncio, use multiprocessing, try subinterpreters, or pilot free-threaded CPython without importing new race conditions.]]></description>
            <content:encoded><![CDATA[<p>A decision map for when Python teams should keep asyncio, use multiprocessing, try subinterpreters, or pilot free-threaded CPython without importing new race conditions.</p><p><strong>Reader outcome:</strong> Reader can choose Python concurrency tools using workload shape, shared state, and dependency readiness.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>free-threading</category>
            <category>concurrency</category>
            <category>performance</category>
            <category>systems architecture</category>
        </item>
        <item>
            <title><![CDATA[Python Architecture for AI and Data Systems in 2026]]></title>
            <link>https://jovanipink.com/posts/python-ai-data-system-architecture-2026</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/python-ai-data-system-architecture-2026</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A Python architecture map for AI, data, and backend teams that need notebooks, prompts, evaluations, services, repositories, and infrastructure to stop collapsing into one folder.]]></description>
            <content:encoded><![CDATA[<p>A Python architecture map for AI, data, and backend teams that need notebooks, prompts, evaluations, services, repositories, and infrastructure to stop collapsing into one folder.</p><p><strong>Reader outcome:</strong> Reader can separate experiments, evaluation, domain logic, adapters, and deployable Python services.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>ai engineering</category>
            <category>data engineering</category>
            <category>software architecture</category>
            <category>evaluation</category>
        </item>
        <item>
            <title><![CDATA[Measure Python Performance Before You Change the Code]]></title>
            <link>https://jovanipink.com/posts/python-performance-profiling-before-optimization</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/python-performance-profiling-before-optimization</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A Python performance playbook for choosing data structures, profiling tools, vectorized libraries, JIT experiments, and concurrency changes from evidence instead of taste.]]></description>
            <content:encoded><![CDATA[<p>A Python performance playbook for choosing data structures, profiling tools, vectorized libraries, JIT experiments, and concurrency changes from evidence instead of taste.</p><p><strong>Reader outcome:</strong> Reader can identify a measured Python bottleneck before changing runtime, concurrency, or algorithms.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>performance</category>
            <category>profiling</category>
            <category>data engineering</category>
            <category>systems</category>
        </item>
        <item>
            <title><![CDATA[The Python Project Skeleton I Want Before the First Feature]]></title>
            <link>https://jovanipink.com/posts/python-project-architecture-uv-ruff-src-layout</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/python-project-architecture-uv-ruff-src-layout</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A production Python project skeleton that prevents import confusion, dependency drift, and toolchain sprawl before the first API route or model workflow ships.]]></description>
            <content:encoded><![CDATA[<p>A production Python project skeleton that prevents import confusion, dependency drift, and toolchain sprawl before the first API route or model workflow ships.</p><p><strong>Reader outcome:</strong> Reader can set up a Python project with src layout, locked dependencies, typed checks, tests, and CI gates.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>project architecture</category>
            <category>uv</category>
            <category>ruff</category>
            <category>ci</category>
        </item>
        <item>
            <title><![CDATA[The 2026 Python Operating Standard Is Boring on Purpose]]></title>
            <link>https://jovanipink.com/posts/modern-python-2026-operating-standard</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/modern-python-2026-operating-standard</guid>
            <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical Python 3.13+ operating standard for teams that need typed, readable, measurable systems without mistaking every new interpreter feature for a production default.]]></description>
            <content:encoded><![CDATA[<p>A practical Python 3.13+ operating standard for teams that need typed, readable, measurable systems without mistaking every new interpreter feature for a production default.</p><p><strong>Reader outcome:</strong> Reader can distinguish stable Python defaults from runtime changes that need a measured pilot.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>software architecture</category>
            <category>engineering standards</category>
            <category>typing</category>
            <category>quality gates</category>
        </item>
        <item>
            <title><![CDATA[Typing Turns Python Architecture Into a Contract]]></title>
            <link>https://jovanipink.com/posts/python-typing-domain-model-contracts</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/python-typing-domain-model-contracts</guid>
            <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How to use modern Python typing, protocols, dataclasses, and payload types to stop raw dictionaries from becoming the hidden architecture of a production system.]]></description>
            <content:encoded><![CDATA[<p>How to use modern Python typing, protocols, dataclasses, and payload types to stop raw dictionaries from becoming the hidden architecture of a production system.</p><p><strong>Reader outcome:</strong> Reader can convert untrusted payloads into typed domain objects at a Python service boundary.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>typing</category>
            <category>domain modeling</category>
            <category>software architecture</category>
            <category>api design</category>
        </item>
        <item>
            <title><![CDATA[Pythonic Code in 2026 Is Explicit at the Boundaries]]></title>
            <link>https://jovanipink.com/posts/explicit-pythonic-code-boundaries-2026</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/explicit-pythonic-code-boundaries-2026</guid>
            <pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A modern Python style guide for choosing clear comprehensions, explicit None checks, pattern matching, t-strings, and domain exceptions where they improve system behavior.]]></description>
            <content:encoded><![CDATA[<p>A modern Python style guide for choosing clear comprehensions, explicit None checks, pattern matching, t-strings, and domain exceptions where they improve system behavior.</p><p><strong>Reader outcome:</strong> Reader can apply explicit Python boundaries to payload dispatch, templates, exceptions, and transformations.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>python</category>
            <category>code quality</category>
            <category>pattern matching</category>
            <category>error handling</category>
            <category>software engineering</category>
        </item>
        <item>
            <title><![CDATA[Offline Claims PWA MVP for Field Adjusters]]></title>
            <link>https://jovanipink.com/posts/offline-claims-pwa-adjuster-mvp</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/offline-claims-pwa-adjuster-mvp</guid>
            <pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A pilot plan for the claims app failure that usually arrives late: photos captured offline, model scores nobody trusts, sync queues with no proof, and evidence bundles that cannot defend chain of custody.]]></description>
            <content:encoded><![CDATA[<p>A pilot plan for the claims app failure that usually arrives late: photos captured offline, model scores nobody trusts, sync queues with no proof, and evidence bundles that cannot defend chain of custody.</p><p><strong>Reader outcome:</strong> Reader can scope an adjuster-focused claims MVP around offline capture, on-device triage, sync recovery, audit receipts, and acceptance tests that produce pilot evidence instead of demo theater.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>product engineering</category>
            <category>pwa</category>
            <category>offline-first</category>
            <category>machine learning</category>
            <category>insurance</category>
            <category>auditability</category>
        </item>
        <item>
            <title><![CDATA[State Machines in 2026: Durable Execution for Agents and Workflows]]></title>
            <link>https://jovanipink.com/posts/state-machines-2026-durable-execution-agents-workflows</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/state-machines-2026-durable-execution-agents-workflows</guid>
            <pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why the May 2026 state-machine story is not finite automata becoming fashionable again, but durable execution becoming the reliability boundary for agents, workflow engines, and document-heavy product systems.]]></description>
            <content:encoded><![CDATA[<p>Why the May 2026 state-machine story is not finite automata becoming fashionable again, but durable execution becoming the reliability boundary for agents, workflow engines, and document-heavy product systems.</p><p><strong>Reader outcome:</strong> Reader can distinguish statechart formalism from durable execution, pick the right runtime for agents and long-running workflows, and model document-heavy product lifecycles with explicit states, transitions, checkpoints, and ownership.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>state machines</category>
            <category>durable execution</category>
            <category>agents</category>
            <category>workflow engines</category>
            <category>xstate</category>
            <category>temporal</category>
            <category>langgraph</category>
        </item>
        <item>
            <title><![CDATA[Modular Monolith vs Microservices: A Decision Memo for Real Products]]></title>
            <link>https://jovanipink.com/posts/modular-monolith-microservices-decision-memo</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/modular-monolith-microservices-decision-memo</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why teams get stuck between tangled monoliths and premature microservices, and how to choose the next boundary with delivery metrics, ownership, and blast radius.]]></description>
            <content:encoded><![CDATA[<p>Why teams get stuck between tangled monoliths and premature microservices, and how to choose the next boundary with delivery metrics, ownership, and blast radius.</p><p><strong>Reader outcome:</strong> Reader can write a decision memo that chooses modular monolith, service extraction, or boundary repair based on team ownership, delivery metrics, scaling pressure, and observable blast radius.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>software architecture</category>
            <category>microservices</category>
            <category>modular monolith</category>
            <category>product engineering</category>
            <category>engineering leadership</category>
        </item>
        <item>
            <title><![CDATA[System Design Papers: A Reading Map from GFS to AI Infrastructure]]></title>
            <link>https://jovanipink.com/posts/system-design-papers-reading-map-distributed-systems-ai-infra</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/system-design-papers-reading-map-distributed-systems-ai-infra</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A de-duplicated taxonomy for system design papers: what to read first, what each paper teaches, and how to move from classic distributed systems into modern databases, observability, serverless, and AI infrastructure.]]></description>
            <content:encoded><![CDATA[<p>A de-duplicated taxonomy for system design papers: what to read first, what each paper teaches, and how to move from classic distributed systems into modern databases, observability, serverless, and AI infrastructure.</p><p><strong>Reader outcome:</strong> Reader can turn scattered system-design paper lists into a practical reading path, identify duplicates and mixed source types, and choose papers by the design question they answer instead of by prestige.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>system design</category>
            <category>distributed systems</category>
            <category>research papers</category>
            <category>software architecture</category>
            <category>databases</category>
            <category>ai infrastructure</category>
        </item>
        <item>
            <title><![CDATA[dbt on BigQuery Ingestion, Snapshots, and Cost Gates]]></title>
            <link>https://jovanipink.com/posts/dbt-bigquery-ingestion-snapshots-cost-gates</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/dbt-bigquery-ingestion-snapshots-cost-gates</guid>
            <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A dbt on BigQuery starter kit for the parts that usually fail after the demo: raw loads without partition filters, snapshots with weak change detection, and CI that lets expensive SQL promote.]]></description>
            <content:encoded><![CDATA[<p>A dbt on BigQuery starter kit for the parts that usually fail after the demo: raw loads without partition filters, snapshots with weak change detection, and CI that lets expensive SQL promote.</p><p><strong>Reader outcome:</strong> Reader can scaffold a dbt and BigQuery project with manifest-backed incremental loads, timestamp-first snapshots, partitioned models, and a dry-run bytes gate before production promotion.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>dbt</category>
            <category>bigquery</category>
            <category>data engineering</category>
            <category>analytics engineering</category>
            <category>ci</category>
            <category>cost controls</category>
        </item>
        <item>
            <title><![CDATA[Data Governance with AI in 2026: A Current Map for Operators]]></title>
            <link>https://jovanipink.com/posts/data-governance-ai-2026-current-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/data-governance-ai-2026-current-map</guid>
            <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Half the 2025 AI-governance recipes still in production cite documents that were rescinded, delayed, or replaced in the last twelve months. The current map: what got retired, what's still authoritative, and what an operating governance program actually has to cover in 2026.]]></description>
            <content:encoded><![CDATA[<p>Half the 2025 AI-governance recipes still in production cite documents that were rescinded, delayed, or replaced in the last twelve months. The current map: what got retired, what&#39;s still authoritative, and what an operating governance program actually has to cover in 2026.</p><p><strong>Reader outcome:</strong> Reader can audit their AI/data governance program against the actual 2026 regulatory and standards stack, including the federal rescissions, the EU AI Act timeline shift agreed May 7, 2026, the ISO/IEC 5259 Part 5 publication, and the OWASP Agentic Top 10, and retire stale references with confidence.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data governance</category>
            <category>ai governance</category>
            <category>compliance</category>
            <category>iso 42001</category>
            <category>nist ai rmf</category>
            <category>eu ai act</category>
            <category>owasp</category>
            <category>c2pa</category>
            <category>policy as code</category>
        </item>
        <item>
            <title><![CDATA[LLM and Agent Observability with OpenTelemetry GenAI Conventions]]></title>
            <link>https://jovanipink.com/posts/llm-agent-observability-opentelemetry-genai-conventions</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/llm-agent-observability-opentelemetry-genai-conventions</guid>
            <pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why custom LLM logging leaves you flying blind in production, and how OpenTelemetry's GenAI semantic conventions turn every model call, tool invocation, and agent step into a traceable, cost-accountable span.]]></description>
            <content:encoded><![CDATA[<p>Why custom LLM logging leaves you flying blind in production, and how OpenTelemetry&#39;s GenAI semantic conventions turn every model call, tool invocation, and agent step into a traceable, cost-accountable span.</p><p><strong>Reader outcome:</strong> Reader can instrument an LLM pipeline or agent workflow with OTEL GenAI conventions, export spans and cost metrics to any compatible backend, and build alerts on real token spend and latency instead of inferring from flat logs.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>observability</category>
            <category>opentelemetry</category>
            <category>llms</category>
            <category>agents</category>
            <category>monitoring</category>
            <category>mlops</category>
            <category>ai engineering</category>
        </item>
        <item>
            <title><![CDATA[Agent Repo Trust Gates: Conftest Policies, SLSA Provenance, and SBOM in GitHub Actions]]></title>
            <link>https://jovanipink.com/posts/agent-repo-trust-gate-slsa-conftest-sbom</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/agent-repo-trust-gate-slsa-conftest-sbom</guid>
            <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why standard code review misses capability escalation in skill manifests, and how to wire a pre-merge conftest policy gate and post-merge SLSA provenance chain that actually work — correcting three common mistakes in the recipes that circulate online.]]></description>
            <content:encoded><![CDATA[<p>Why standard code review misses capability escalation in skill manifests, and how to wire a pre-merge conftest policy gate and post-merge SLSA provenance chain that actually work — correcting three common mistakes in the recipes that circulate online.</p><p><strong>Reader outcome:</strong> Reader can wire a working pre-merge OPA/conftest gate on skill manifests, add a correct post-merge SLSA L2 provenance workflow using the SLSA GitHub Generator reusable workflow (not the nonexistent slsa CLI), and align OTel instrumentation with the GenAI semantic conventions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>supply chain</category>
            <category>github actions</category>
            <category>slsa</category>
            <category>conftest</category>
            <category>opa</category>
            <category>sbom</category>
            <category>agents</category>
            <category>ci/cd</category>
            <category>security</category>
        </item>
        <item>
            <title><![CDATA[Comprehension Debt: When Code Ships Without Theory]]></title>
            <link>https://jovanipink.com/posts/comprehension-debt-code-ships-without-theory</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/comprehension-debt-code-ships-without-theory</guid>
            <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a two-day debug session on a one-month-old AI-generated bug is not a debugging problem but a theory-building problem you skipped, and the operating discipline that makes the missing theory recoverable.]]></description>
            <content:encoded><![CDATA[<p>Why a two-day debug session on a one-month-old AI-generated bug is not a debugging problem but a theory-building problem you skipped, and the operating discipline that makes the missing theory recoverable.</p><p><strong>Reader outcome:</strong> Reader has a working definition of comprehension debt distinct from technical debt, three questions to test whether a theory exists for an AI-generated component, a PR comprehension scoring rubric, and a deliberate-practice tactic set that prevents the doom loop.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ai coding assistants</category>
            <category>systems thinking</category>
            <category>technical debt</category>
            <category>comprehension</category>
            <category>developer workflow</category>
            <category>code review</category>
            <category>cognitive load</category>
        </item>
        <item>
            <title><![CDATA[The SaaS Stack I'd Use for LLM-Assisted Product Development]]></title>
            <link>https://jovanipink.com/posts/saas-stack-01-llm-assisted-product-development</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/saas-stack-01-llm-assisted-product-development</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A pragmatic Python, TypeScript, Supabase, Stripe, and observability stack for shipping SaaS products with AI assistance without turning the architecture into tool soup.]]></description>
            <content:encoded><![CDATA[<p>A pragmatic Python, TypeScript, Supabase, Stripe, and observability stack for shipping SaaS products with AI assistance without turning the architecture into tool soup.</p><p><strong>Reader outcome:</strong> Reader can choose a SaaS stack around typed boundaries, feedback speed, and explicit growth constraints.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>saas</category>
            <category>software architecture</category>
            <category>product engineering</category>
            <category>ai engineering</category>
            <category>full stack</category>
        </item>
        <item>
            <title><![CDATA[The Go and gRPC Version of the SaaS Stack]]></title>
            <link>https://jovanipink.com/posts/saas-stack-02-go-grpc-google-cloud</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/saas-stack-02-go-grpc-google-cloud</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[When a SaaS product should graduate from a flexible Python-first backend into Go, gRPC, Cloud Run, and Google Cloud service boundaries.]]></description>
            <content:encoded><![CDATA[<p>When a SaaS product should graduate from a flexible Python-first backend into Go, gRPC, Cloud Run, and Google Cloud service boundaries.</p><p><strong>Reader outcome:</strong> Reader can evaluate Go and gRPC adoption against service contracts, concurrency, latency, and operational needs.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gcp</category>
            <category>go</category>
            <category>grpc</category>
            <category>cloud run</category>
            <category>software architecture</category>
        </item>
        <item>
            <title><![CDATA[BigQuery Keys in dbt Are Optimizer Hints, Not Enforcement]]></title>
            <link>https://jovanipink.com/posts/bigquery-dbt-primary-foreign-key-constraints</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/bigquery-dbt-primary-foreign-key-constraints</guid>
            <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How to use BigQuery primary and foreign key constraints from dbt without confusing optimizer metadata for enforced data integrity.]]></description>
            <content:encoded><![CDATA[<p>How to use BigQuery primary and foreign key constraints from dbt without confusing optimizer metadata for enforced data integrity.</p><p><strong>Reader outcome:</strong> Reader can distinguish optimizer hints, dbt contracts, data tests, and warehouse constraint verification.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>bigquery</category>
            <category>dbt</category>
            <category>data contracts</category>
            <category>analytics engineering</category>
            <category>query optimization</category>
            <category>data quality</category>
        </item>
        <item>
            <title><![CDATA[Your Repo Needs an Agent Harness, Not More Prompt Paste]]></title>
            <link>https://jovanipink.com/posts/repo-agent-harness-markdown-skills</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/repo-agent-harness-markdown-skills</guid>
            <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A critical guide to README.md, AGENTS.md, CLAUDE.md, SKILL.md, .agents, and .claude patterns for teams that want coding agents to follow repo rules without stuffing every workflow into one giant prompt.]]></description>
            <content:encoded><![CDATA[<p>A critical guide to README.md, AGENTS.md, CLAUDE.md, SKILL.md, .agents, and .claude patterns for teams that want coding agents to follow repo rules without stuffing every workflow into one giant prompt.</p><p><strong>Reader outcome:</strong> Reader can separate human documentation, persistent agent rules, optional skills, and deterministic enforcement.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>coding agents</category>
            <category>agent skills</category>
            <category>agents.md</category>
            <category>claude code</category>
            <category>developer workflow</category>
        </item>
        <item>
            <title><![CDATA[What ADK 2.0 Adds, and Where the Approval Path Still Breaks]]></title>
            <link>https://jovanipink.com/posts/adk-2-harness-engineering-and-the-tool-confirmation-gap</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/adk-2-harness-engineering-and-the-tool-confirmation-gap</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why an ADK 2.0 ToolConfirmation flow paired with VertexAiSessionService re-presented the same approval to a reviewer on Monday morning and ran the tool twice, and what the gap tells you about how to evaluate harness primitives at different maturity levels.]]></description>
            <content:encoded><![CDATA[<p>Why an ADK 2.0 ToolConfirmation flow paired with VertexAiSessionService re-presented the same approval to a reviewer on Monday morning and ran the tool twice, and what the gap tells you about how to evaluate harness primitives at different maturity levels.</p><p><strong>Reader outcome:</strong> Reader can map ADK 2.0 primitives onto a session-service backing store and decide which combinations are production-ready, which are beta-with-known-gaps, and which require waiting.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>adk</category>
            <category>agent harness</category>
            <category>human in the loop</category>
            <category>memory</category>
        </item>
        <item>
            <title><![CDATA[Why I Reach for DuckDB When Reading Parquet from Swift or Zig]]></title>
            <link>https://jovanipink.com/posts/reading-parquet-03-swift-zig-duckdb</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/reading-parquet-03-swift-zig-duckdb</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What an oversized iOS binary, a Linux linker error, and a SQL boundary teach about embedding DuckDB as the Parquet reader for languages without a mature native library.]]></description>
            <content:encoded><![CDATA[<p>What an oversized iOS binary, a Linux linker error, and a SQL boundary teach about embedding DuckDB as the Parquet reader for languages without a mature native library.</p><p><strong>Reader outcome:</strong> Reader can decide when DuckDB is the right Parquet path for a Swift or Zig project, configure the SPM and build.zig integrations correctly the first time, and avoid the binary-size and linker failures that the unconfigured path produces.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data engineering</category>
            <category>parquet</category>
            <category>duckdb</category>
            <category>swift</category>
            <category>zig</category>
        </item>
        <item>
            <title><![CDATA[State Machines in Go, Elixir, Swift, and Zig]]></title>
            <link>https://jovanipink.com/posts/state-machines-04-go-elixir-swift-zig-cross-language</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/state-machines-04-go-elixir-swift-zig-cross-language</guid>
            <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a Go retry loop ran forever because the attempt counter lived on the loop instead of the state, and what the runtime guarantees of Elixir, Swift, and Zig change about which state-machine idioms are honest in each.]]></description>
            <content:encoded><![CDATA[<p>Why a Go retry loop ran forever because the attempt counter lived on the loop instead of the state, and what the runtime guarantees of Elixir, Swift, and Zig change about which state-machine idioms are honest in each.</p><p><strong>Reader outcome:</strong> Reader can pick the right state-machine idiom for their language by recognizing which runtime guarantees the language ships, distinguish a true finite-state machine from unidirectional data flow, and avoid the cross-language mistake of treating one language&#39;s idiom as the universal pattern.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>state machines</category>
            <category>go</category>
            <category>elixir</category>
            <category>swift</category>
            <category>zig</category>
        </item>
        <item>
            <title><![CDATA[Minimal ML Examples Are Better as Review Maps Than Cheatsheets]]></title>
            <link>https://jovanipink.com/posts/minimal-ml-examples-model-review-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/minimal-ml-examples-model-review-map</guid>
            <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How a compact Python ML cheatsheet becomes useful when synthetic demos, metrics, pipelines, and version drift are tied to the model-review decisions they can actually defend.]]></description>
            <content:encoded><![CDATA[<p>How a compact Python ML cheatsheet becomes useful when synthetic demos, metrics, pipelines, and version drift are tied to the model-review decisions they can actually defend.</p><p><strong>Reader outcome:</strong> Reader can use minimal scikit-learn examples as smoke tests for task framing, metric choice, pipeline boundaries, and environment drift instead of treating them as production recipes.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>scikit-learn</category>
            <category>model evaluation</category>
            <category>mlops</category>
            <category>python</category>
        </item>
        <item>
            <title><![CDATA[Every Engineer Is a Manager Now]]></title>
            <link>https://jovanipink.com/posts/every-engineer-is-a-manager-now</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/every-engineer-is-a-manager-now</guid>
            <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[AI coding agents are turning software work into management work: engineers now have to manage intent, context, agent output, teammate coordination, stakeholder evidence, and long-term maintenance.]]></description>
            <content:encoded><![CDATA[<p>AI coding agents are turning software work into management work: engineers now have to manage intent, context, agent output, teammate coordination, stakeholder evidence, and long-term maintenance.</p><p><strong>Reader outcome:</strong> Reader can coordinate human and AI work with clear responsibilities and inspectable completion evidence.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ai agents</category>
            <category>engineering leadership</category>
            <category>software process</category>
            <category>technical communication</category>
            <category>consulting</category>
        </item>
        <item>
            <title><![CDATA[Reading Parquet from Elixir and Mojo Without Pretending the Runtime Is Native]]></title>
            <link>https://jovanipink.com/posts/reading-parquet-02-elixir-mojo-borrowed-runtime</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/reading-parquet-02-elixir-mojo-borrowed-runtime</guid>
            <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a precompiled-NIF fall-through on a less-common Linux target adds quiet minutes to a deploy, and what the borrowed-runtime pattern actually looks like for Elixir and Mojo.]]></description>
            <content:encoded><![CDATA[<p>Why a precompiled-NIF fall-through on a less-common Linux target adds quiet minutes to a deploy, and what the borrowed-runtime pattern actually looks like for Elixir and Mojo.</p><p><strong>Reader outcome:</strong> Reader can ship Parquet-reading Elixir without surprise source compilation in CI, recognize where Mojo&#39;s Python interop boundary is the bottleneck rather than Mojo itself, and know which DataFrame guarantees leak at the BEAM and PyArrow boundaries.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data engineering</category>
            <category>parquet</category>
            <category>elixir</category>
            <category>mojo</category>
            <category>deployment</category>
        </item>
        <item>
            <title><![CDATA[State Machines in Python: from xstate-python to LangGraph]]></title>
            <link>https://jovanipink.com/posts/state-machines-03-python-xstate-langgraph-contribution</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/state-machines-03-python-xstate-langgraph-contribution</guid>
            <pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why an agent harness re-fired a half-finished tool after a worker restart, the four Python libraries that solve different parts of the problem, and a concrete contribution roadmap for xstate-python.]]></description>
            <content:encoded><![CDATA[<p>Why an agent harness re-fired a half-finished tool after a worker restart, the four Python libraries that solve different parts of the problem, and a concrete contribution roadmap for xstate-python.</p><p><strong>Reader outcome:</strong> Reader can map a Python workflow to the right state-machine library, distinguish statechart formalism from durable execution, and know where to start contributing to xstate-python with file paths and named missing features.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>state machines</category>
            <category>python</category>
            <category>xstate-python</category>
            <category>langgraph</category>
            <category>agentic ai</category>
        </item>
        <item>
            <title><![CDATA[Building an NPS Classifier You Can Actually Act On]]></title>
            <link>https://jovanipink.com/posts/nps-classifier-calibration-and-drift</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/nps-classifier-calibration-and-drift</guid>
            <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A scikit-learn NPS ordinal classifier with SMOTE, probability calibration, utility-based thresholding, and PSI drift checks. The parts that make it useful to the retention team, not just accurate on a dashboard.]]></description>
            <content:encoded><![CDATA[<p>A scikit-learn NPS ordinal classifier with SMOTE, probability calibration, utility-based thresholding, and PSI drift checks. The parts that make it useful to the retention team, not just accurate on a dashboard.</p><p><strong>Reader outcome:</strong> Reader can design a calibrated NPS classifier with utility-based thresholds and explicit drift-monitoring rules.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ml</category>
            <category>nps</category>
            <category>classification</category>
            <category>calibration</category>
            <category>drift</category>
            <category>evaluation</category>
        </item>
        <item>
            <title><![CDATA[Coding Assistants Work Best When the Blast Radius Is Small]]></title>
            <link>https://jovanipink.com/posts/android-coding-assistants-blast-radius</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/android-coding-assistants-blast-radius</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[An Android-first operating pattern for using GitHub Copilot, Amazon Q Developer, Android CLI, and Android skills without letting coding assistants rewrite Gradle, manifests, architecture, and security posture by accident.]]></description>
            <content:encoded><![CDATA[<p>An Android-first operating pattern for using GitHub Copilot, Amazon Q Developer, Android CLI, and Android skills without letting coding assistants rewrite Gradle, manifests, architecture, and security posture by accident.</p><p><strong>Reader outcome:</strong> Reader can combine scoped assistant tasks, Android instructions, screenshots, tests, and review gates.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>coding assistants</category>
            <category>android</category>
            <category>github copilot</category>
            <category>amazon q</category>
            <category>mobile engineering</category>
        </item>
        <item>
            <title><![CDATA[How I Read Parquet in Rust and Go Without an OOM]]></title>
            <link>https://jovanipink.com/posts/reading-parquet-01-rust-go-column-native</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/reading-parquet-01-rust-go-column-native</guid>
            <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a default Go parquet.Read[T] call slurped a 1.4 GB file into 11 GB of resident memory, and the column-native Rust and Go patterns that replaced it.]]></description>
            <content:encoded><![CDATA[<p>Why a default Go parquet.Read[T] call slurped a 1.4 GB file into 11 GB of resident memory, and the column-native Rust and Go patterns that replaced it.</p><p><strong>Reader outcome:</strong> Reader can pick the streaming Parquet read path in Rust and Go, configure the compression-codec features explicitly, and avoid the eager-load anti-patterns that look fine in benchmarks and break in production.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data engineering</category>
            <category>parquet</category>
            <category>rust</category>
            <category>go</category>
            <category>memory safety</category>
        </item>
        <item>
            <title><![CDATA[XState, Actors, and What the Stately Argument Actually Buys]]></title>
            <link>https://jovanipink.com/posts/state-machines-02-xstate-and-the-actor-model</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/state-machines-02-xstate-and-the-actor-model</guid>
            <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a hand-rolled retry double-charged a Stripe customer because the cancel state was implicit, and what XState 5's setup-plus-actors model gives you that useReducer does not.]]></description>
            <content:encoded><![CDATA[<p>Why a hand-rolled retry double-charged a Stripe customer because the cancel state was implicit, and what XState 5&#39;s setup-plus-actors model gives you that useReducer does not.</p><p><strong>Reader outcome:</strong> Reader can write an XState 5 machine using the setup pattern, distinguish invoked from spawned actors, decide when to graduate from useReducer to a state machine library, and read XState code as a structured argument rather than a configuration object.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>state machines</category>
            <category>xstate</category>
            <category>typescript</category>
            <category>react</category>
            <category>actor model</category>
        </item>
        <item>
            <title><![CDATA[Treat Agent Skills Like Supply-Chain Dependencies]]></title>
            <link>https://jovanipink.com/posts/agent-skills-supply-chain-hardening</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/agent-skills-supply-chain-hardening</guid>
            <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A repo-ready operating contract for agent skills that prevents prompt bundles from drifting into unsigned, over-permissioned, unreviewed production dependencies.]]></description>
            <content:encoded><![CDATA[<p>A repo-ready operating contract for agent skills that prevents prompt bundles from drifting into unsigned, over-permissioned, unreviewed production dependencies.</p><p><strong>Reader outcome:</strong> Reader can review a skill&#39;s provenance, permissions, isolation, validation, and lifecycle controls.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agent skills</category>
            <category>supply chain</category>
            <category>agents</category>
            <category>security</category>
            <category>developer workflow</category>
        </item>
        <item>
            <title><![CDATA[AI Coding Assistants Expose Process Debt]]></title>
            <link>https://jovanipink.com/posts/ai-coding-assistants-expose-process-debt</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/ai-coding-assistants-expose-process-debt</guid>
            <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why teams using Claude, GPT-style coding agents, Cursor, and Copilot often get unstable app work when requirements, versions, conventions, tests, and handoffs are implicit.]]></description>
            <content:encoded><![CDATA[<p>Why teams using Claude, GPT-style coding agents, Cursor, and Copilot often get unstable app work when requirements, versions, conventions, tests, and handoffs are implicit.</p><p><strong>Reader outcome:</strong> Reader can structure AI-assisted development around requirements, scoped tasks, review, tests, and Git checkpoints.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>coding assistants</category>
            <category>software process</category>
            <category>ai agents</category>
            <category>developer workflow</category>
            <category>technical leadership</category>
        </item>
        <item>
            <title><![CDATA[When the State Chart Pays Off]]></title>
            <link>https://jovanipink.com/posts/state-machines-01-when-the-chart-pays-off</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/state-machines-01-when-the-chart-pays-off</guid>
            <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why a React form with seven boolean flags shipped a flicker bug that statecharts would have surfaced before the first render, and the decision rule that says when this discipline earns its place.]]></description>
            <content:encoded><![CDATA[<p>Why a React form with seven boolean flags shipped a flicker bug that statecharts would have surfaced before the first render, and the decision rule that says when this discipline earns its place.</p><p><strong>Reader outcome:</strong> Reader can decide when a workflow is state-machine-shaped, replace boolean-flag explosion with a small statechart that names guards and transitions, and recognize statecharts as an architectural discipline rather than a UI utility.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>state machines</category>
            <category>statecharts</category>
            <category>software architecture</category>
            <category>react</category>
            <category>engineering discipline</category>
        </item>
        <item>
            <title><![CDATA[What AI Researchers Do That I Do Not]]></title>
            <link>https://jovanipink.com/posts/what-ai-researchers-do-that-i-do-not</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/what-ai-researchers-do-that-i-do-not</guid>
            <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A short, honest read on what AI researchers actually do day to day, written from outside the role by an applied engineer who reads papers when the work demands it.]]></description>
            <content:encoded><![CDATA[<p>A short, honest read on what AI researchers actually do day to day, written from outside the role by an applied engineer who reads papers when the work demands it.</p><p><strong>Reader outcome:</strong> Reader can distinguish AI research work from applied AI engineering work, decide which research outputs change their quarter and which do not, and avoid hiring or being hired against the wrong role description.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ai engineering</category>
            <category>ai research</category>
            <category>engineering discipline</category>
            <category>career</category>
        </item>
        <item>
            <title><![CDATA[Product-Minded Architecture Lives Between Design, Business, and Engineering]]></title>
            <link>https://jovanipink.com/posts/product-minded-software-architecture</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/product-minded-software-architecture</guid>
            <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why design systems, component libraries, monorepos, and architecture boundaries become product tools when teams need to learn faster.]]></description>
            <content:encoded><![CDATA[<p>Why design systems, component libraries, monorepos, and architecture boundaries become product tools when teams need to learn faster.</p><p><strong>Reader outcome:</strong> Reader can connect design systems, application surfaces, analytics, and support workflows in an architecture plan.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>product management</category>
            <category>software architecture</category>
            <category>design systems</category>
            <category>frontend architecture</category>
            <category>monorepos</category>
        </item>
        <item>
            <title><![CDATA[A Product Development System Should Remember Why the Roadmap Changed]]></title>
            <link>https://jovanipink.com/posts/product-development-feedback-loop-history</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/product-development-feedback-loop-history</guid>
            <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why roadmap churn becomes expensive when feedback, analytics, MVP evidence, and decision history are not connected.]]></description>
            <content:encoded><![CDATA[<p>Why roadmap churn becomes expensive when feedback, analytics, MVP evidence, and decision history are not connected.</p><p><strong>Reader outcome:</strong> Reader can preserve the evidence behind roadmap changes, task breakdowns, and product pivots.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>product management</category>
            <category>roadmaps</category>
            <category>analytics</category>
            <category>feedback loops</category>
            <category>software systems</category>
        </item>
        <item>
            <title><![CDATA[The Product Manager's Real Job Is Cutting Scope Until Learning Can Ship]]></title>
            <link>https://jovanipink.com/posts/product-manager-scope-learning-mvp</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/product-manager-scope-learning-mvp</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why product work fails when the team chases domain complexity before the MVP has created real learning from users.]]></description>
            <content:encoded><![CDATA[<p>Why product work fails when the team chases domain complexity before the MVP has created real learning from users.</p><p><strong>Reader outcome:</strong> Reader can scope the smallest product slice that tests a specific market or workflow assumption.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>product management</category>
            <category>mvp</category>
            <category>product discovery</category>
            <category>software delivery</category>
            <category>strategy</category>
        </item>
        <item>
            <title><![CDATA[A Software Architecture Reading Path for Working Engineers]]></title>
            <link>https://jovanipink.com/posts/software-architecture-books-reading-path</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/software-architecture-books-reading-path</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical reading path through software design, architecture, system design interviews, data-intensive applications, and systems analysis for engineers who want to grow beyond implementation.]]></description>
            <content:encoded><![CDATA[<p>A practical reading path through software design, architecture, system design interviews, data-intensive applications, and systems analysis for engineers who want to grow beyond implementation.</p><p><strong>Reader outcome:</strong> Reader can choose architecture books by learning goal and arrange them into a practical reading sequence.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>software architecture</category>
            <category>software engineering</category>
            <category>systems design</category>
            <category>reading list</category>
            <category>engineering growth</category>
        </item>
        <item>
            <title><![CDATA[Design Thinking Is Human Decision Work]]></title>
            <link>https://jovanipink.com/posts/design-thinking-is-human-decision-work</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/design-thinking-is-human-decision-work</guid>
            <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why design thinking fails when teams treat it as a workshop template instead of a human-centered way to make better product decisions under uncertainty.]]></description>
            <content:encoded><![CDATA[<p>Why design thinking fails when teams treat it as a workshop template instead of a human-centered way to make better product decisions under uncertainty.</p><p><strong>Reader outcome:</strong> Reader can structure a workshop around user evidence, inexpensive prototypes, and explicit next decisions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>design thinking</category>
            <category>product discovery</category>
            <category>decision making</category>
            <category>human-centered design</category>
            <category>systems thinking</category>
        </item>
        <item>
            <title><![CDATA[A Software Developer Job Description Is an Operating Contract]]></title>
            <link>https://jovanipink.com/posts/software-developer-job-description-as-operating-contract</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/software-developer-job-description-as-operating-contract</guid>
            <pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why generic software developer job descriptions over-index on writing code and under-specify the ownership, testing, maintenance, communication, and judgment that make software engineering work.]]></description>
            <content:encoded><![CDATA[<p>Why generic software developer job descriptions over-index on writing code and under-specify the ownership, testing, maintenance, communication, and judgment that make software engineering work.</p><p><strong>Reader outcome:</strong> Reader can write clearer developer responsibilities and evaluate engineering work beyond code output.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>software engineering</category>
            <category>engineering roles</category>
            <category>hiring</category>
            <category>technical leadership</category>
            <category>maintenance</category>
        </item>
        <item>
            <title><![CDATA[Fine-Tuning GPT-OSS 20B on a 64GB MacBook Pro]]></title>
            <link>https://jovanipink.com/posts/gpt-oss-20b-64gb-macbook-finetuning</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/gpt-oss-20b-64gb-macbook-finetuning</guid>
            <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical MLX-first recipe for experimenting with openai/gpt-oss-20b on a 64GB Apple Silicon Mac without confusing local LoRA work for CUDA-scale training.]]></description>
            <content:encoded><![CDATA[<p>A practical MLX-first recipe for experimenting with openai/gpt-oss-20b on a 64GB Apple Silicon Mac without confusing local LoRA work for CUDA-scale training.</p><p><strong>Reader outcome:</strong> Reader can plan a local GPT-OSS fine-tuning experiment with formatting checks, quantized LoRA, and small evaluations.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gpt-oss</category>
            <category>mlx</category>
            <category>apple silicon</category>
            <category>llm fine-tuning</category>
            <category>local ai</category>
        </item>
        <item>
            <title><![CDATA[Fine-Tuning LLMs on a MacBook Pro With MPS and MLX]]></title>
            <link>https://jovanipink.com/posts/fine-tuning-llms-macbook-pro-mps-mlx</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/fine-tuning-llms-macbook-pro-mps-mlx</guid>
            <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why Apple Silicon is useful for local LLM prototyping and LoRA experiments, but still has sharp boundaries compared with CUDA-scale NeMo or Hugging Face training.]]></description>
            <content:encoded><![CDATA[<p>Why Apple Silicon is useful for local LLM prototyping and LoRA experiments, but still has sharp boundaries compared with CUDA-scale NeMo or Hugging Face training.</p><p><strong>Reader outcome:</strong> Reader can choose between Mac-local MPS and MLX fine-tuning paths within their hardware constraints.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>apple silicon</category>
            <category>mlx</category>
            <category>pytorch</category>
            <category>mps</category>
            <category>llm fine-tuning</category>
        </item>
        <item>
            <title><![CDATA[The Faster Transformers Stack Behind GPT-OSS]]></title>
            <link>https://jovanipink.com/posts/faster-transformers-gpt-oss-stack</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/faster-transformers-gpt-oss-stack</guid>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why Hugging Face's faster Transformers work matters beyond GPT-OSS, and how kernels, MXFP4, parallelism, KV cache, batching, and model loading change practical LLM runtime decisions.]]></description>
            <content:encoded><![CDATA[<p>Why Hugging Face&#39;s faster Transformers work matters beyond GPT-OSS, and how kernels, MXFP4, parallelism, KV cache, batching, and model loading change practical LLM runtime decisions.</p><p><strong>Reader outcome:</strong> Reader can compare transformer runtime options for memory, caching, batching, and serving.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>transformers</category>
            <category>gpt-oss</category>
            <category>hugging face</category>
            <category>inference</category>
            <category>model performance</category>
        </item>
        <item>
            <title><![CDATA[Fine-Tuning LLMs Is an Operating Loop, Not a Training Command]]></title>
            <link>https://jovanipink.com/posts/llm-fine-tuning-best-practices-nemo-transformers</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/llm-fine-tuning-best-practices-nemo-transformers</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why LLM fine-tuning projects fail when teams jump to NeMo or Hugging Face training commands before deciding the model, data, evaluation, serving, and governance loop.]]></description>
            <content:encoded><![CDATA[<p>Why LLM fine-tuning projects fail when teams jump to NeMo or Hugging Face training commands before deciding the model, data, evaluation, serving, and governance loop.</p><p><strong>Reader outcome:</strong> Reader can connect model choice, data curation, fine-tuning, evaluation, and serving into a release workflow.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>llm fine-tuning</category>
            <category>nemo</category>
            <category>hugging face</category>
            <category>peft</category>
            <category>llmops</category>
        </item>
        <item>
            <title><![CDATA[Why Data Platforms Fail as Systems, Not Tools]]></title>
            <link>https://jovanipink.com/posts/why-data-platforms-fail-as-systems</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/why-data-platforms-fail-as-systems</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A data platform failure pattern where tool replacement looked like the fix, but the real problem was ownership, release discipline, metric mismatch, and governance outside the workflow.]]></description>
            <content:encoded><![CDATA[<p>A data platform failure pattern where tool replacement looked like the fix, but the real problem was ownership, release discipline, metric mismatch, and governance outside the workflow.</p><p><strong>Reader outcome:</strong> Reader can diagnose platform problems through ownership, operating measures, and release discipline.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data platform</category>
            <category>systems design</category>
            <category>organizational design</category>
            <category>governance</category>
            <category>engineering</category>
        </item>
        <item>
            <title><![CDATA[What Complexity Science Teaches About AI Evaluation]]></title>
            <link>https://jovanipink.com/posts/complexity-science-ai-evaluation</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/complexity-science-ai-evaluation</guid>
            <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical AI evaluation essay showing how locally strong retrieval, reasoning, and tool-use components can interact into globally weak product behavior.]]></description>
            <content:encoded><![CDATA[<p>A practical AI evaluation essay showing how locally strong retrieval, reasoning, and tool-use components can interact into globally weak product behavior.</p><p><strong>Reader outcome:</strong> Reader can design evaluations for complete decision paths, interaction effects, and feedback loops.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>complexity</category>
            <category>ai evaluation</category>
            <category>systems thinking</category>
            <category>product</category>
            <category>decision intelligence</category>
        </item>
        <item>
            <title><![CDATA[Building Abuela's Core Loop Across Unity and Web Surfaces]]></title>
            <link>https://jovanipink.com/posts/abuela-core-loop-architecture</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/abuela-core-loop-architecture</guid>
            <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How Abuela's Unity gameplay loop and supporting web surfaces can share progression state, event contracts, reward rules, and iteration hooks without duplicating game logic.]]></description>
            <content:encoded><![CDATA[<p>How Abuela&#39;s Unity gameplay loop and supporting web surfaces can share progression state, event contracts, reward rules, and iteration hooks without duplicating game logic.</p><p><strong>Reader outcome:</strong> Reader can inspect a narrative loop that connects runtime state, web companion flows, rewards, and content iteration.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>unity</category>
            <category>next.js</category>
            <category>game loop</category>
            <category>systems architecture</category>
            <category>integration</category>
        </item>
        <item>
            <title><![CDATA[NVFP4 and the Infrastructure Meaning of Precision]]></title>
            <link>https://jovanipink.com/posts/nvfp4-training-precision-is-infrastructure</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/nvfp4-training-precision-is-infrastructure</guid>
            <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A grounded read of NVIDIA's NVFP4 training post and why 4-bit pretraining matters for model quality, token throughput, cost, and AI infrastructure strategy.]]></description>
            <content:encoded><![CDATA[<p>A grounded read of NVIDIA&#39;s NVFP4 training post and why 4-bit pretraining matters for model quality, token throughput, cost, and AI infrastructure strategy.</p><p><strong>Reader outcome:</strong> Reader can evaluate low-precision training claims and connect NVFP4 choices to infrastructure constraints.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>llm training</category>
            <category>nvidia</category>
            <category>quantization</category>
            <category>model efficiency</category>
            <category>ai infrastructure</category>
        </item>
        <item>
            <title><![CDATA[Designing the Hippi Kingdom Economy as a Systems Problem]]></title>
            <link>https://jovanipink.com/posts/hippi-kingdom-economy-systems-design</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/hippi-kingdom-economy-systems-design</guid>
            <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A game economy design essay for Hippi Kingdom covering currency loops, sinks and sources, telemetry, a rejected progression model, and the balancing mistake that made hoarding look like engagement.]]></description>
            <content:encoded><![CDATA[<p>A game economy design essay for Hippi Kingdom covering currency loops, sinks and sources, telemetry, a rejected progression model, and the balancing mistake that made hoarding look like engagement.</p><p><strong>Reader outcome:</strong> Reader can evaluate progression, reward pressure, and currency accumulation in a game economy.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>game dev</category>
            <category>economy design</category>
            <category>systems</category>
            <category>telemetry</category>
            <category>unity</category>
        </item>
        <item>
            <title><![CDATA[Context Engineering Keeps Long Context Useful]]></title>
            <link>https://jovanipink.com/posts/context-engineering-keeps-long-context-useful</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/context-engineering-keeps-long-context-useful</guid>
            <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical synthesis of Drew Breunig, Simon Willison, and Anthropic on how long contexts fail, how to fix them, and why multi-agent systems need context discipline.]]></description>
            <content:encoded><![CDATA[<p>A practical synthesis of Drew Breunig, Simon Willison, and Anthropic on how long contexts fail, how to fix them, and why multi-agent systems need context discipline.</p><p><strong>Reader outcome:</strong> Reader can select, isolate, summarize, and evaluate context for long-running agent tasks.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>context engineering</category>
            <category>llm evaluation</category>
            <category>tool use</category>
            <category>multi-agent systems</category>
        </item>
        <item>
            <title><![CDATA[From Algorithms to AI Systems]]></title>
            <link>https://jovanipink.com/posts/algorithms-to-ai-systems-complexity-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/algorithms-to-ai-systems-complexity-map</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical map from algorithmic complexity to software engineering, data pipelines, machine learning systems, and modern LLM architecture decisions.]]></description>
            <content:encoded><![CDATA[<p>A practical map from algorithmic complexity to software engineering, data pipelines, machine learning systems, and modern LLM architecture decisions.</p><p><strong>Reader outcome:</strong> Reader can connect algorithm costs to ML pipelines, retrieval systems, and model-serving tradeoffs.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>algorithms</category>
            <category>machine learning</category>
            <category>llm systems</category>
            <category>data engineering</category>
            <category>systems design</category>
        </item>
        <item>
            <title><![CDATA[DSPy + RAG Evaluation Ops in Production]]></title>
            <link>https://jovanipink.com/posts/dspy-rag-evaluation-ops</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/dspy-rag-evaluation-ops</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How to turn DSPy and RAG evaluation into a production release loop with golden sets, retrieval checks, generation rubrics, regression thresholds, and versioned prompt programs.]]></description>
            <content:encoded><![CDATA[<p>How to turn DSPy and RAG evaluation into a production release loop with golden sets, retrieval checks, generation rubrics, regression thresholds, and versioned prompt programs.</p><p><strong>Reader outcome:</strong> Reader can separate retrieval quality from generation quality and detect RAG regressions before release.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>dspy</category>
            <category>rag</category>
            <category>evaluation</category>
            <category>mlops</category>
            <category>agents</category>
        </item>
        <item>
            <title><![CDATA[An Enterprise Data Governance Glossary Operators Can Use]]></title>
            <link>https://jovanipink.com/posts/enterprise-data-governance-glossary</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/enterprise-data-governance-glossary</guid>
            <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical enterprise data governance glossary that turns business intelligence, stewardship, metadata, security, privacy, quality, and lifecycle terms into usable review language.]]></description>
            <content:encoded><![CDATA[<p>A practical enterprise data governance glossary that turns business intelligence, stewardship, metadata, security, privacy, quality, and lifecycle terms into usable review language.</p><p><strong>Reader outcome:</strong> Reader can write shared governance definitions that clarify ownership and certification decisions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data governance</category>
            <category>data management</category>
            <category>metadata</category>
            <category>privacy</category>
            <category>business intelligence</category>
        </item>
        <item>
            <title><![CDATA[Data Governance Roles Need Decision Rights]]></title>
            <link>https://jovanipink.com/posts/data-governance-roles-decision-rights</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/data-governance-roles-decision-rights</guid>
            <pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A data governance operating model for assigning owners, stewards, custodians, and SMEs without leaving quality rules, access decisions, retention, source-of-truth choices, and incident closure ambiguous.]]></description>
            <content:encoded><![CDATA[<p>A data governance operating model for assigning owners, stewards, custodians, and SMEs without leaving quality rules, access decisions, retention, source-of-truth choices, and incident closure ambiguous.</p><p><strong>Reader outcome:</strong> Reader can assign governance decision rights, escalation paths, review cadences, and evidence owners.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data governance</category>
            <category>data platform</category>
            <category>organizational design</category>
            <category>compliance</category>
            <category>operating model</category>
        </item>
        <item>
            <title><![CDATA[Principle Stacks Make Trade-offs Explicit]]></title>
            <link>https://jovanipink.com/posts/principle-stacks-make-tradeoffs-explicit</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/principle-stacks-make-tradeoffs-explicit</guid>
            <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical look at Principle Stacks as a decision mechanism for teams, products, and personal priorities when important values collide.]]></description>
            <content:encoded><![CDATA[<p>A practical look at Principle Stacks as a decision mechanism for teams, products, and personal priorities when important values collide.</p><p><strong>Reader outcome:</strong> Reader can rank principles and priorities to make tradeoffs explicit in engineering and product decisions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>decision making</category>
            <category>principles</category>
            <category>systems thinking</category>
            <category>leadership</category>
            <category>product strategy</category>
        </item>
        <item>
            <title><![CDATA[Evaluating Multi-Agent Workflows for Enterprise Reliability]]></title>
            <link>https://jovanipink.com/posts/evaluating-multi-agent-workflows</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/evaluating-multi-agent-workflows</guid>
            <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical evaluation loop for multi-agent workflows that catches demo-friendly failures in task handoff, tool use, permissions, latency, and completion criteria before release.]]></description>
            <content:encoded><![CDATA[<p>A practical evaluation loop for multi-agent workflows that catches demo-friendly failures in task handoff, tool use, permissions, latency, and completion criteria before release.</p><p><strong>Reader outcome:</strong> Reader can evaluate task completion, handoffs, tool correctness, latency, and recovery in agent workflows.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>evaluation</category>
            <category>reliability</category>
            <category>enterprise ai</category>
            <category>observability</category>
        </item>
        <item>
            <title><![CDATA[Product Planning Is Shaping the Work]]></title>
            <link>https://jovanipink.com/posts/product-planning-is-shaping-the-work</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/product-planning-is-shaping-the-work</guid>
            <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical view of product planning through Shape Up, user flow, business logic, mockups, architecture, discovery, timelines, and technical debt.]]></description>
            <content:encoded><![CDATA[<p>A practical view of product planning through Shape Up, user flow, business logic, mockups, architecture, discovery, timelines, and technical debt.</p><p><strong>Reader outcome:</strong> Reader can define user flows, business rules, and implementation boundaries before committing delivery capacity.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>product development</category>
            <category>systems design</category>
            <category>software architecture</category>
            <category>product discovery</category>
            <category>execution</category>
        </item>
        <item>
            <title><![CDATA[Machine Learning Terms That Make Model Reviews Better]]></title>
            <link>https://jovanipink.com/posts/machine-learning-terms-model-review</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/machine-learning-terms-model-review</guid>
            <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical ML terminology guide for model reviews where feature definitions, data splits, task type, optimization behavior, overfitting risk, regularization, ensembles, and embeddings need to be discussed precisely.]]></description>
            <content:encoded><![CDATA[<p>A practical ML terminology guide for model reviews where feature definitions, data splits, task type, optimization behavior, overfitting risk, regularization, ensembles, and embeddings need to be discussed precisely.</p><p><strong>Reader outcome:</strong> Reader can use ML vocabulary to ask clearer questions about design choices, failure modes, and release readiness.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>model evaluation</category>
            <category>feature engineering</category>
            <category>neural networks</category>
            <category>mlops</category>
        </item>
        <item>
            <title><![CDATA[The Preprocessing Boundary Between scikit-learn and PyTorch]]></title>
            <link>https://jovanipink.com/posts/sklearn-preprocessing-pytorch-inference-boundary</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/sklearn-preprocessing-pytorch-inference-boundary</guid>
            <pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A production-friendly pattern for pairing scikit-learn preprocessing graphs with PyTorch models so training and inference use the same feature contract.]]></description>
            <content:encoded><![CDATA[<p>A production-friendly pattern for pairing scikit-learn preprocessing graphs with PyTorch models so training and inference use the same feature contract.</p><p><strong>Reader outcome:</strong> Reader can keep feature order, preprocessing, model weights, and inference metadata synchronized.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>pytorch</category>
            <category>scikit-learn</category>
            <category>mlops</category>
            <category>model serving</category>
        </item>
        <item>
            <title><![CDATA[Dataform + BigQuery Governance Release Patterns]]></title>
            <link>https://jovanipink.com/posts/dataform-bigquery-governance-release-patterns</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/dataform-bigquery-governance-release-patterns</guid>
            <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A Dataform and BigQuery case study for turning data contracts, release lanes, validation gates, rollback behavior, and cost checks into one governed promotion path.]]></description>
            <content:encoded><![CDATA[<p>A Dataform and BigQuery case study for turning data contracts, release lanes, validation gates, rollback behavior, and cost checks into one governed promotion path.</p><p><strong>Reader outcome:</strong> Reader can inspect a sanitized release pattern that makes schema, freshness, cost, and downstream-impact checks part of promotion rather than after-the-fact review.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>dataform</category>
            <category>bigquery</category>
            <category>data contracts</category>
            <category>release engineering</category>
            <category>gcp</category>
        </item>
        <item>
            <title><![CDATA[Local MCP and Private Open Model Infrastructure]]></title>
            <link>https://jovanipink.com/posts/local-mcp-and-private-open-model-infrastructure</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/local-mcp-and-private-open-model-infrastructure</guid>
            <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical guide to running MCP servers locally, choosing affordable clients, and deploying private open models with Cloud Run, Ollama, and Open WebUI.]]></description>
            <content:encoded><![CDATA[<p>A practical guide to running MCP servers locally, choosing affordable clients, and deploying private open models with Cloud Run, Ollama, and Open WebUI.</p><p><strong>Reader outcome:</strong> Reader can separate local tool access from model serving and evaluate their distinct deployment boundaries.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>mcp</category>
            <category>agents</category>
            <category>cloud run</category>
            <category>ollama</category>
            <category>open webui</category>
        </item>
        <item>
            <title><![CDATA[Lead Measures Make Dashboards Useful]]></title>
            <link>https://jovanipink.com/posts/lead-measures-make-dashboards-useful</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/lead-measures-make-dashboards-useful</guid>
            <pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A dashboard-before/dashboard-after operating pattern for turning lead measures into weekly commitments instead of passive reporting.]]></description>
            <content:encoded><![CDATA[<p>A dashboard-before/dashboard-after operating pattern for turning lead measures into weekly commitments instead of passive reporting.</p><p><strong>Reader outcome:</strong> Reader can choose lead measures and check whether a weekly scoreboard changes team behavior.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>analytics</category>
            <category>dashboards</category>
            <category>execution</category>
            <category>decision intelligence</category>
            <category>operating model</category>
        </item>
        <item>
            <title><![CDATA[API Design for MCP Server Boundaries]]></title>
            <link>https://jovanipink.com/posts/api-design-for-mcp-server-boundaries</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/api-design-for-mcp-server-boundaries</guid>
            <pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A Confluence-ready guide for designing durable HTTP APIs and wrapping them safely as Model Context Protocol servers.]]></description>
            <content:encoded><![CDATA[<p>A Confluence-ready guide for designing durable HTTP APIs and wrapping them safely as Model Context Protocol servers.</p><p><strong>Reader outcome:</strong> Reader can design HTTP boundaries behind MCP servers with explicit contracts and protocol responsibilities.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>api design</category>
            <category>mcp</category>
            <category>agent systems</category>
            <category>software architecture</category>
            <category>platform engineering</category>
        </item>
        <item>
            <title><![CDATA[When 0.3 Does Not Mean 30 Percent]]></title>
            <link>https://jovanipink.com/posts/calibrated-probabilities-for-imbalanced-classifiers</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/calibrated-probabilities-for-imbalanced-classifiers</guid>
            <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How imbalanced classifiers can keep a strong AUC while producing probabilities that break thresholds, alerts, and cost-sensitive decisions in production.]]></description>
            <content:encoded><![CDATA[<p>How imbalanced classifiers can keep a strong AUC while producing probabilities that break thresholds, alerts, and cost-sensitive decisions in production.</p><p><strong>Reader outcome:</strong> Reader can evaluate calibration, choose cost-sensitive thresholds, and define promotion criteria for imbalanced classifiers.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ml</category>
            <category>calibration</category>
            <category>classification</category>
            <category>evaluation</category>
            <category>probability</category>
            <category>reliability</category>
        </item>
        <item>
            <title><![CDATA[Compliant GCP Platform Playbook for Analytics and ML]]></title>
            <link>https://jovanipink.com/posts/compliant-gcp-platform-playbook</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/compliant-gcp-platform-playbook</guid>
            <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A sanitized GCP platform case study where compliance, analytics delivery, and ML feature access had to be designed as one release path instead of three disconnected workstreams.]]></description>
            <content:encoded><![CDATA[<p>A sanitized GCP platform case study where compliance, analytics delivery, and ML feature access had to be designed as one release path instead of three disconnected workstreams.</p><p><strong>Reader outcome:</strong> Reader can inspect a sanitized GCP pattern for governed dataset onboarding, auditability, cost visibility, and promotion rules across analytics and ML use cases.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gcp</category>
            <category>bigquery</category>
            <category>governance</category>
            <category>analytics</category>
            <category>ml</category>
        </item>
        <item>
            <title><![CDATA[scikit-learn Pipelines That Survive Tuning and Deployment]]></title>
            <link>https://jovanipink.com/posts/sklearn-pipelines-metadata-routing-reproducible-deployment</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/sklearn-pipelines-metadata-routing-reproducible-deployment</guid>
            <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why tabular models drift between notebooks and production when preprocessing, sample metadata, hyperparameter search, and persistence are not treated as one scikit-learn pipeline contract.]]></description>
            <content:encoded><![CDATA[<p>Why tabular models drift between notebooks and production when preprocessing, sample metadata, hyperparameter search, and persistence are not treated as one scikit-learn pipeline contract.</p><p><strong>Reader outcome:</strong> Reader can keep preprocessing, metadata routing, search, and deployment artifacts reproducible across environments.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>scikit-learn</category>
            <category>mlops</category>
            <category>model persistence</category>
            <category>tabular data</category>
        </item>
        <item>
            <title><![CDATA[Statistics for Data Science, Written for Software Developers]]></title>
            <link>https://jovanipink.com/posts/statistics-for-software-developers-data-science</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/statistics-for-software-developers-data-science</guid>
            <pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[A software-developer guide to the statistics that actually change data-science decisions: samples, estimates, uncertainty, effect size, bias, probability, distributions, and model metrics.]]></description>
            <content:encoded><![CDATA[<p>A software-developer guide to the statistics that actually change data-science decisions: samples, estimates, uncertainty, effect size, bias, probability, distributions, and model metrics.</p><p><strong>Reader outcome:</strong> Reader can review effect sizes, uncertainty, sampling bias, and classification metrics in practical estimates.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>statistics</category>
            <category>data science</category>
            <category>machine learning</category>
            <category>model evaluation</category>
            <category>experimentation</category>
        </item>
        <item>
            <title><![CDATA[Vertex AI Feature Store Is the Production Loop]]></title>
            <link>https://jovanipink.com/posts/vertex-ai-feature-store-production-loop</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/vertex-ai-feature-store-production-loop</guid>
            <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A production-focused Vertex AI post on turning raw data, BigQuery features, online feature serving, model endpoints, monitoring, and retraining into one governed ML loop instead of another platform checklist.]]></description>
            <content:encoded><![CDATA[<p>A production-focused Vertex AI post on turning raw data, BigQuery features, online feature serving, model endpoints, monitoring, and retraining into one governed ML loop instead of another platform checklist.</p><p><strong>Reader outcome:</strong> Reader can connect feature contracts, training exports, serving rules, monitoring, and retraining triggers.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gcp</category>
            <category>vertex ai</category>
            <category>feature store</category>
            <category>mlops</category>
            <category>gemini</category>
        </item>
        <item>
            <title><![CDATA[Vertex AI Makes More Sense as an MLOps Map]]></title>
            <link>https://jovanipink.com/posts/vertex-ai-mlops-operating-map</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/vertex-ai-mlops-operating-map</guid>
            <pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A Vertex AI architecture map for teams that need to decide which Google Cloud AI services belong in the ML lifecycle, where ownership changes hands, and which older assumptions are now unsafe.]]></description>
            <content:encoded><![CDATA[<p>A Vertex AI architecture map for teams that need to decide which Google Cloud AI services belong in the ML lifecycle, where ownership changes hands, and which older assumptions are now unsafe.</p><p><strong>Reader outcome:</strong> Reader can assign operating responsibilities across Vertex AI data, features, training, deployment, and monitoring.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gcp</category>
            <category>vertex ai</category>
            <category>mlops</category>
            <category>feature store</category>
            <category>model monitoring</category>
        </item>
        <item>
            <title><![CDATA[Correlation Is a Feature Screen, Not a Feature Strategy]]></title>
            <link>https://jovanipink.com/posts/correlation-is-a-feature-screen-not-a-strategy</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/correlation-is-a-feature-screen-not-a-strategy</guid>
            <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A long-form feature-screening workflow that uses correlation for quick linear checks, then adds redundancy clustering, mutual information, chi-squared tests, L1 models, tree importances, permutation importance, and domain review.]]></description>
            <content:encoded><![CDATA[<p>A long-form feature-screening workflow that uses correlation for quick linear checks, then adds redundancy clustering, mutual information, chi-squared tests, L1 models, tree importances, permutation importance, and domain review.</p><p><strong>Reader outcome:</strong> Reader can review nonlinear signals and redundant features without treating correlation as a complete selection strategy.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>feature selection</category>
            <category>correlation</category>
            <category>scikit-learn</category>
            <category>model evaluation</category>
        </item>
        <item>
            <title><![CDATA[TypeScript Concepts Make More Sense Inside React]]></title>
            <link>https://jovanipink.com/posts/typescript-react-runtime-concepts</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/typescript-react-runtime-concepts</guid>
            <pubDate>Tue, 02 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical TypeScript and React guide to the event loop, hoisting, throttling, debouncing, timers, closures, callbacks, IIFEs, promises, async, and await through code patterns that show up in real components.]]></description>
            <content:encoded><![CDATA[<p>A practical TypeScript and React guide to the event loop, hoisting, throttling, debouncing, timers, closures, callbacks, IIFEs, promises, async, and await through code patterns that show up in real components.</p><p><strong>Reader outcome:</strong> Reader can debug asynchronous React behavior, stale closures, timers, and promise-based rendering.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>typescript</category>
            <category>react</category>
            <category>javascript</category>
            <category>frontend</category>
            <category>software engineering</category>
        </item>
        <item>
            <title><![CDATA[Agent Memory Is an Operating Boundary]]></title>
            <link>https://jovanipink.com/posts/adk-agent-memory-is-an-operating-boundary</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/adk-agent-memory-is-an-operating-boundary</guid>
            <pubDate>Thu, 20 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical look at Google ADK memory, Vertex AI Memory Bank, session state, retrieval, retention, access control, and why durable agent memory needs production discipline.]]></description>
            <content:encoded><![CDATA[<p>A practical look at Google ADK memory, Vertex AI Memory Bank, session state, retrieval, retention, access control, and why durable agent memory needs production discipline.</p><p><strong>Reader outcome:</strong> Reader can distinguish session state from durable memory and evaluate retrieval, retention, and security risks.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>google cloud</category>
            <category>adk</category>
            <category>memory</category>
            <category>rag</category>
        </item>
        <item>
            <title><![CDATA[The Question About Your AI Agent Has Changed]]></title>
            <link>https://jovanipink.com/posts/ai-agent-capabilities-vs-permissions</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/ai-agent-capabilities-vs-permissions</guid>
            <pubDate>Sun, 16 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Capability is no longer the hard question about AI agents. What the agent is permitted to do, and whether it will do it successfully, are. Here is why that distinction matters architecturally.]]></description>
            <content:encoded><![CDATA[<p>Capability is no longer the hard question about AI agents. What the agent is permitted to do, and whether it will do it successfully, are. Here is why that distinction matters architecturally.</p><p><strong>Reader outcome:</strong> Reader can evaluate an agent deployment through permission scope and the consequences of tool actions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>ai governance</category>
            <category>enterprise ai</category>
            <category>authorization</category>
            <category>security</category>
        </item>
        <item>
            <title><![CDATA[Codex Plugins Extend Agents, Not Interfaces]]></title>
            <link>https://jovanipink.com/posts/codex-plugins-extend-agents-not-interfaces</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/codex-plugins-extend-agents-not-interfaces</guid>
            <pubDate>Wed, 12 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Why Codex plugins point toward a different software design mindset: fewer UI extensions, more safe agent capabilities, system access points, and operational boundaries.]]></description>
            <content:encoded><![CDATA[<p>Why Codex plugins point toward a different software design mindset: fewer UI extensions, more safe agent capabilities, system access points, and operational boundaries.</p><p><strong>Reader outcome:</strong> Reader can evaluate plugins as capability bundles with permissions, workflow contracts, and operational boundaries.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>codex</category>
            <category>agents</category>
            <category>plugins</category>
            <category>mcp</category>
            <category>software architecture</category>
        </item>
        <item>
            <title><![CDATA[Sandboxed Agents and the Production Automation Boundary]]></title>
            <link>https://jovanipink.com/posts/sandboxed-agents-and-production-automation</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/sandboxed-agents-and-production-automation</guid>
            <pubDate>Sat, 08 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[OpenAI's April 2026 Agents SDK update matters because sandboxed execution, manifests, resumable state, and memory move agents closer to real production automation.]]></description>
            <content:encoded><![CDATA[<p>OpenAI&#39;s April 2026 Agents SDK update matters because sandboxed execution, manifests, resumable state, and memory move agents closer to real production automation.</p><p><strong>Reader outcome:</strong> Reader can design sandbox boundaries for stateful automation with explicit tool and runtime responsibilities.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>agents</category>
            <category>openai</category>
            <category>sandboxing</category>
            <category>automation</category>
            <category>enterprise ai</category>
        </item>
        <item>
            <title><![CDATA[AI Strategy Starts Before the Model]]></title>
            <link>https://jovanipink.com/posts/ai-strategy-from-data-readiness-to-impact</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/ai-strategy-from-data-readiness-to-impact</guid>
            <pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical AI strategy framework with a worked example that connects business levers, data readiness, pilots, evaluation, governance, deployment, and operating metrics.]]></description>
            <content:encoded><![CDATA[<p>A practical AI strategy framework with a worked example that connects business levers, data readiness, pilots, evaluation, governance, deployment, and operating metrics.</p><p><strong>Reader outcome:</strong> Reader can connect AI use-case selection to data readiness, operating ownership, and an outcome-measurement plan.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ai strategy</category>
            <category>data strategy</category>
            <category>mlops</category>
            <category>llmops</category>
            <category>business outcomes</category>
        </item>
        <item>
            <title><![CDATA[Cloud Run GPU Sidecars Need Deployment Discipline]]></title>
            <link>https://jovanipink.com/posts/cloud-run-gpu-sidecars-ollama-open-webui</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/cloud-run-gpu-sidecars-ollama-open-webui</guid>
            <pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical deployment guide for running Ollama behind Open WebUI on Cloud Run GPUs without mixing service specs, model storage modes, sidecar startup order, or auth assumptions.]]></description>
            <content:encoded><![CDATA[<p>A practical deployment guide for running Ollama behind Open WebUI on Cloud Run GPUs without mixing service specs, model storage modes, sidecar startup order, or auth assumptions.</p><p><strong>Reader outcome:</strong> Reader can plan GPU sidecar storage, startup order, authentication, and billing checks before deployment.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>gcp</category>
            <category>cloud run</category>
            <category>gpu</category>
            <category>ollama</category>
            <category>open webui</category>
        </item>
        <item>
            <title><![CDATA[In-Warehouse Inference on Snowflake and BigQuery]]></title>
            <link>https://jovanipink.com/posts/in-warehouse-inference-snowflake-bigquery</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/in-warehouse-inference-snowflake-bigquery</guid>
            <pubDate>Mon, 27 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical runbook for scoring changed rows close to the data using Snowflake Streams and Tasks or BigQuery scheduled queries and remote models.]]></description>
            <content:encoded><![CDATA[<p>A practical runbook for scoring changed rows close to the data using Snowflake Streams and Tasks or BigQuery scheduled queries and remote models.</p><p><strong>Reader outcome:</strong> Reader can compare scheduled warehouse inference patterns and their monitoring, grants, and deployment requirements.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>snowflake</category>
            <category>bigquery</category>
            <category>mlops</category>
            <category>inference</category>
            <category>data engineering</category>
        </item>
        <item>
            <title><![CDATA[What a Data Strategist Actually Does]]></title>
            <link>https://jovanipink.com/posts/what-a-data-strategist-actually-does</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/what-a-data-strategist-actually-does</guid>
            <pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical view of data strategy as the operating discipline that connects business goals, governance, KPIs, platforms, analytics, ML, and AI delivery.]]></description>
            <content:encoded><![CDATA[<p>A practical view of data strategy as the operating discipline that connects business goals, governance, KPIs, platforms, analytics, ML, and AI delivery.</p><p><strong>Reader outcome:</strong> Reader can connect data roadmaps, governance, KPI design, and platform delivery to business decisions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data strategy</category>
            <category>data governance</category>
            <category>analytics</category>
            <category>gcp</category>
            <category>decision intelligence</category>
        </item>
        <item>
            <title><![CDATA[When the Model Should Say It Doesn't Know: Conformal Prediction Sets with MAPIE]]></title>
            <link>https://jovanipink.com/posts/conformal-prediction-sets-mapie</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/conformal-prediction-sets-mapie</guid>
            <pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[How to add coverage-guaranteed prediction sets, temperature scaling calibration, and risk-coverage curves to a classifier using MAPIE — the pieces that make uncertainty quantification operationally useful rather than decorative.]]></description>
            <content:encoded><![CDATA[<p>How to add coverage-guaranteed prediction sets, temperature scaling calibration, and risk-coverage curves to a classifier using MAPIE — the pieces that make uncertainty quantification operationally useful rather than decorative.</p><p><strong>Reader outcome:</strong> Reader can construct prediction sets, examine their coverage assumptions, and design abstention gates.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>ml</category>
            <category>conformal-prediction</category>
            <category>calibration</category>
            <category>uncertainty</category>
            <category>mapie</category>
            <category>selective-prediction</category>
        </item>
        <item>
            <title><![CDATA[Fine-Tuning Open Source LLMs With NVIDIA NeMo]]></title>
            <link>https://jovanipink.com/posts/nemo-framework-fine-tuning-open-source-llms</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/nemo-framework-fine-tuning-open-source-llms</guid>
            <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical map of NVIDIA NeMo for teams that want to curate data, fine-tune open-source LLMs, evaluate them, and move from research checkpoints to production inference.]]></description>
            <content:encoded><![CDATA[<p>A practical map of NVIDIA NeMo for teams that want to curate data, fine-tune open-source LLMs, evaluate them, and move from research checkpoints to production inference.</p><p><strong>Reader outcome:</strong> Reader can separate data curation, fine-tuning, alignment, evaluation, export, and serving responsibilities.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>nemo</category>
            <category>llm fine-tuning</category>
            <category>mlops</category>
            <category>gpu training</category>
            <category>enterprise ai</category>
        </item>
        <item>
            <title><![CDATA[Plain-Language Machine Learning Metrics for Real Decisions]]></title>
            <link>https://jovanipink.com/posts/plain-language-ml-metrics-and-logits</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/plain-language-ml-metrics-and-logits</guid>
            <pubDate>Sat, 11 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical explanation of ML metrics with decision tables for regression tolerance, rare-event classification, threshold tradeoffs, and the failure case where accuracy looked good but the decision failed.]]></description>
            <content:encoded><![CDATA[<p>A practical explanation of ML metrics with decision tables for regression tolerance, rare-event classification, threshold tradeoffs, and the failure case where accuracy looked good but the decision failed.</p><p><strong>Reader outcome:</strong> Reader can connect metric choice, thresholds, and logit interpretation to decisions based on model outputs.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>model evaluation</category>
            <category>classification</category>
            <category>regression</category>
            <category>interpretability</category>
        </item>
        <item>
            <title><![CDATA[Probability Calibration Is an Operating Control]]></title>
            <link>https://jovanipink.com/posts/probability-calibration-operating-playbook</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/probability-calibration-operating-playbook</guid>
            <pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical playbook for turning classifier scores into reliable probabilities that can support ranking, thresholds, SLAs, and cost-sensitive decisions.]]></description>
            <content:encoded><![CDATA[<p>A practical playbook for turning classifier scores into reliable probabilities that can support ranking, thresholds, SLAs, and cost-sensitive decisions.</p><p><strong>Reader outcome:</strong> Reader can separate ranking quality from probability quality and carry calibration into monitoring.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>calibration</category>
            <category>mlops</category>
            <category>classification</category>
            <category>model evaluation</category>
        </item>
        <item>
            <title><![CDATA[The Three-Run Lab: How I Triage Slow PyTorch Training]]></title>
            <link>https://jovanipink.com/posts/pytorch-training-loop-triage</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/pytorch-training-loop-triage</guid>
            <pubDate>Fri, 03 Oct 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A repeatable triage routine — the three-run baseline, DataLoader diagnosis, five profiler signatures, and a copy-paste scaffold — for finding where training time actually goes before touching the model.]]></description>
            <content:encoded><![CDATA[<p>A repeatable triage routine — the three-run baseline, DataLoader diagnosis, five profiler signatures, and a copy-paste scaffold — for finding where training time actually goes before touching the model.</p><p><strong>Reader outcome:</strong> Reader can use baseline runs and profiler signatures to identify training bottlenecks before changing a model.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>pytorch</category>
            <category>ml</category>
            <category>training</category>
            <category>performance</category>
            <category>profiling</category>
            <category>debugging</category>
        </item>
        <item>
            <title><![CDATA[PyTorch Training Throughput: The Patterns That Actually Move the Number]]></title>
            <link>https://jovanipink.com/posts/pytorch-training-throughput-patterns</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/pytorch-training-throughput-patterns</guid>
            <pubDate>Mon, 29 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[torch.compile, mixed precision, gradient accumulation, DDP vs FSDP, and the profiler — the five levers I reach for before rethinking the model architecture.]]></description>
            <content:encoded><![CDATA[<p>torch.compile, mixed precision, gradient accumulation, DDP vs FSDP, and the profiler — the five levers I reach for before rethinking the model architecture.</p><p><strong>Reader outcome:</strong> Reader can test compilation, mixed precision, and gradient accumulation against a measured training baseline.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>pytorch</category>
            <category>ml</category>
            <category>training</category>
            <category>performance</category>
            <category>gpu</category>
            <category>distributed-training</category>
        </item>
        <item>
            <title><![CDATA[A scikit-learn Pipeline for Calibrated Decisions]]></title>
            <link>https://jovanipink.com/posts/sklearn-calibrated-classifier-production-pipeline</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/sklearn-calibrated-classifier-production-pipeline</guid>
            <pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A production-friendly scikit-learn pattern for mixed tabular data, class imbalance, calibrated probabilities, threshold selection, and model persistence.]]></description>
            <content:encoded><![CDATA[<p>A production-friendly scikit-learn pattern for mixed tabular data, class imbalance, calibrated probabilities, threshold selection, and model persistence.</p><p><strong>Reader outcome:</strong> Reader can align preprocessing, imbalance handling, calibration, thresholds, and saved classification artifacts.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>machine learning</category>
            <category>scikit-learn</category>
            <category>calibration</category>
            <category>classification</category>
            <category>mlops</category>
        </item>
        <item>
            <title><![CDATA[Algorithm Complexity as Engineering Judgment]]></title>
            <link>https://jovanipink.com/posts/algorithm-complexity-as-engineering-judgment</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/algorithm-complexity-as-engineering-judgment</guid>
            <pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical way to use algorithm complexity in product engineering, from choosing data structures to designing recommendation features that do not collapse as data grows.]]></description>
            <content:encoded><![CDATA[<p>A practical way to use algorithm complexity in product engineering, from choosing data structures to designing recommendation features that do not collapse as data grows.</p><p><strong>Reader outcome:</strong> Reader can compare naive loops with indexed lookup and recognize where algorithm complexity affects a product feature.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>software engineering</category>
            <category>algorithms</category>
            <category>systems design</category>
            <category>typescript</category>
            <category>performance</category>
        </item>
        <item>
            <title><![CDATA[Why Teams Miss Goals They Actually Care About]]></title>
            <link>https://jovanipink.com/posts/goal-clarity-and-the-four-disciplines</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/goal-clarity-and-the-four-disciplines</guid>
            <pubDate>Wed, 17 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[The four reasons goal execution breaks down, the 4DX framework that addresses them, and why the apparent tension between goal-thinking and systems-thinking resolves the moment you understand lead measures.]]></description>
            <content:encoded><![CDATA[<p>The four reasons goal execution breaks down, the 4DX framework that addresses them, and why the apparent tension between goal-thinking and systems-thinking resolves the moment you understand lead measures.</p><p><strong>Reader outcome:</strong> Reader can translate organizational goals into lead measures, visible scoreboards, and weekly accountability.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>leadership</category>
            <category>team performance</category>
            <category>execution</category>
            <category>systems thinking</category>
            <category>management</category>
        </item>
        <item>
            <title><![CDATA[The Many Paths Into Data Architecture]]></title>
            <link>https://jovanipink.com/posts/pathways-to-data-architect</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/pathways-to-data-architect</guid>
            <pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Data architecture is a function, not a credential. The paths into it are genuinely varied, and that variety reflects something real about what the role actually demands.]]></description>
            <content:encoded><![CDATA[<p>Data architecture is a function, not a credential. The paths into it are genuinely varied, and that variety reflects something real about what the role actually demands.</p><p><strong>Reader outcome:</strong> Reader can compare routes into data architecture and identify the strengths and gaps in each technical background.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>data architecture</category>
            <category>data engineering</category>
            <category>career</category>
            <category>data modeling</category>
            <category>data governance</category>
        </item>
        <item>
            <title><![CDATA[Ten Ideas About Thinking in 2026]]></title>
            <link>https://jovanipink.com/posts/ten-ideas-about-thinking-in-2026</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/ten-ideas-about-thinking-in-2026</guid>
            <pubDate>Tue, 09 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A practical set of reflections on thinking quality, decision-making, analogies, conflict, expertise, and the invisible assumptions that shape product and career outcomes.]]></description>
            <content:encoded><![CDATA[<p>A practical set of reflections on thinking quality, decision-making, analogies, conflict, expertise, and the invisible assumptions that shape product and career outcomes.</p><p><strong>Reader outcome:</strong> Reader can apply ten decision checks to product, engineering, consulting, and career questions.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>critical thinking</category>
            <category>decision intelligence</category>
            <category>systems thinking</category>
            <category>product judgment</category>
            <category>career</category>
        </item>
        <item>
            <title><![CDATA[Thinking and Communication Are Engineering Work]]></title>
            <link>https://jovanipink.com/posts/thinking-and-communication-as-engineering-work</link>
            <guid isPermaLink="false">https://jovanipink.com/posts/thinking-and-communication-as-engineering-work</guid>
            <pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[A design-review scenario showing why communication, facilitation, visual thinking, feedback, and critical judgment are part of engineering delivery.]]></description>
            <content:encoded><![CDATA[<p>A design-review scenario showing why communication, facilitation, visual thinking, feedback, and critical judgment are part of engineering delivery.</p><p><strong>Reader outcome:</strong> Reader can surface assumptions, evidence, and tradeoffs before a technical plan becomes difficult to change.</p>]]></content:encoded>
            <author>Jovani Pink</author>
            <category>systems thinking</category>
            <category>decision intelligence</category>
            <category>product discovery</category>
            <category>facilitation</category>
            <category>engineering</category>
        </item>
    </channel>
</rss>