<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>John Hodge · Blog</title><description>Technical notes on applied ML, physics-based modeling, and engineering decisions for physical systems.</description><link>https://john-hodge.com/</link><language>en-us</language><item><title>Agentic systems change what engineers review</title><link>https://john-hodge.com/blog/what-engineers-review-in-agentic-systems/</link><guid isPermaLink="true">https://john-hodge.com/blog/what-engineers-review-in-agentic-systems/</guid><description>When a model chooses tools and actions at runtime, requirements and code review do not disappear. Engineers review the decision environment: tools, permissions, traces, and evals.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>agentic systems</category><category>AI agents</category><category>agentic workflows</category><category>code review for AI agents</category><category>agent observability</category><category>agent evaluation</category><category>LLM tool use</category><category>agent harness</category><category>AI requirements</category><category>human oversight of AI</category><category>software engineering with AI</category><category>agent traces</category></item><item><title>Tracing a local LLM agent end to end: Strands Agents, Ollama, and OpenTelemetry</title><link>https://john-hodge.com/blog/strands-ollama-opentelemetry-local-agent-tracing/</link><guid isPermaLink="true">https://john-hodge.com/blog/strands-ollama-opentelemetry-local-agent-tracing/</guid><description>Instrument a fully local tool-calling agent with OpenTelemetry: Strands Agents plus Ollama, traces in Jaeger or Grafana, no cloud APIs and no observability SaaS.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>Strands Agents</category><category>Ollama</category><category>OpenTelemetry</category><category>LLM observability</category><category>local LLM agent</category><category>agent tracing</category><category>Jaeger</category><category>Grafana</category><category>GenAI semantic conventions</category><category>agent evals</category><category>tool calling</category><category>LLM agent tutorial</category></item><item><title>planner-lab: a financial planning agent where the LLM never does the math</title><link>https://john-hodge.com/blog/auditable-financial-planning-agent/</link><guid isPermaLink="true">https://john-hodge.com/blog/auditable-financial-planning-agent/</guid><description>planner-lab turns a typed household case file into a retirement-readiness memo. Deterministic code does the math; a critic gate blocks any memo with untraceable numbers.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><category>auditable LLM agents</category><category>agent verification</category><category>LLM critic gate</category><category>financial planning agent</category><category>retirement planning software</category><category>funded ratio</category><category>Monte Carlo retirement simulation</category><category>Strands Agents</category><category>Model Context Protocol</category><category>local LLM</category><category>Ollama agent</category><category>open source Python</category></item><item><title>APAB 0.3.0: observability and provenance for agentic phased-array design</title><link>https://john-hodge.com/blog/apab-0-3-0/</link><guid isPermaLink="true">https://john-hodge.com/blog/apab-0-3-0/</guid><description>APAB 0.3.0 makes agentic phased-array design auditable: OpenTelemetry traces of every MCP tool call, runtime provenance manifests, real LLM providers with uniform cost tracking, and a golden-task eval harness.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>agentic phased-array design</category><category>AI antenna design</category><category>LLM agent for RF engineering</category><category>Model Context Protocol</category><category>MCP engineering tools</category><category>phased array design automation</category><category>agentic workflow</category><category>APAB</category><category>OpenTelemetry LLM tracing</category><category>agent observability</category><category>run provenance</category><category>reproducible AI workflow</category><category>phased array antenna design</category></item><item><title>Gumline, a private dental habit tracker</title><link>https://john-hodge.com/blog/gumline-dental-habit-tracker/</link><guid isPermaLink="true">https://john-hodge.com/blog/gumline-dental-habit-tracker/</guid><description>A private, on-device iPhone app for logging your dental routine and remembering the exact spots your dentist flagged. Why I built it and how it works.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>dental habit tracker</category><category>brushing tracker</category><category>floss reminder</category><category>oral hygiene app</category><category>dentist notes app</category><category>tooth map</category><category>private health app</category><category>on-device</category><category>iOS app</category><category>habit streak</category></item><item><title>Model-based engineering for phased arrays: from a radar project to open-source tools</title><link>https://john-hodge.com/blog/model-based-engineering-phased-arrays/</link><guid isPermaLink="true">https://john-hodge.com/blog/model-based-engineering-phased-arrays/</guid><description>A graduate radar project led me to MBSE and MDAO, then to model-based engineering of AESA phased-array radar systems, and finally to a set of open-source phased-array design tools.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>model-based engineering</category><category>MBSE</category><category>MDAO</category><category>multidisciplinary design optimization</category><category>phased array design</category><category>AESA radar</category><category>model-based systems engineering</category><category>SWaP-C</category><category>digital engineering</category><category>radar systems</category><category>open-source phased array</category><category>antenna design</category><category>trade study</category><category>ModelCenter</category><category>metasurface</category><category>reconfigurable intelligent surface</category></item><item><title>pitchphys, a baseball pitch physics simulator</title><link>https://john-hodge.com/blog/pitchphys-baseball-pitch-simulator/</link><guid isPermaLink="true">https://john-hodge.com/blog/pitchphys-baseball-pitch-simulator/</guid><description>A browser simulator for the physics of a thrown baseball: gravity, drag, and the Magnus effect. Built to understand why spin moves a pitch, and where the model stops.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>Magnus effect</category><category>baseball physics</category><category>pitch trajectory</category><category>spin rate</category><category>induced vertical break</category><category>active spin</category><category>gyro spin</category><category>drag coefficient</category><category>aerodynamics</category><category>Streamlit</category></item><item><title>Connect Four AI: the minimax algorithm behind Neon Drop</title><link>https://john-hodge.com/blog/connect-four-ai-minimax/</link><guid isPermaLink="true">https://john-hodge.com/blog/connect-four-ai-minimax/</guid><description>How the Connect Four AI in Neon Drop works: minimax with alpha-beta pruning, a window-scoring heuristic, tunable difficulty, and what it reveals about four-in-a-row strategy.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>connect four AI</category><category>connect four algorithm</category><category>connect four minimax</category><category>alpha-beta pruning</category><category>connect four strategy</category><category>four in a row AI</category><category>connect four evaluation function</category><category>is connect four solved</category><category>how to build a connect four AI</category><category>game tree search</category></item><item><title>Physics, learning, and control, in one helicopter simulator</title><link>https://john-hodge.com/blog/helicopter-ml-simulator/</link><guid isPermaLink="true">https://john-hodge.com/blog/helicopter-ml-simulator/</guid><description>An interactive browser simulator of the Abbeel-Coates-Ng autonomous helicopter: flight physics, apprenticeship trajectory learning, system identification, and LQR control.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>apprenticeship learning</category><category>learning from demonstration</category><category>helicopter dynamics</category><category>system identification</category><category>LQR control</category><category>imitation learning</category><category>physics simulation</category><category>machine learning for control</category><category>robotics</category><category>Abbeel Coates Ng</category></item><item><title>The antenna is the modulator: index modulation with reconfigurable metasurfaces</title><link>https://john-hodge.com/blog/metasurface-index-modulation/</link><guid isPermaLink="true">https://john-hodge.com/blog/metasurface-index-modulation/</guid><description>A plain-language explainer of our IEEE JSTSP paper: reconfigurable metasurfaces that perform index modulation for 6G, encoding bits in which beam or frequency harmonic is active, grounded in full-wave EM.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>reconfigurable intelligent surface</category><category>RIS</category><category>index modulation</category><category>metasurface</category><category>6G wireless</category><category>beam steering</category><category>frequency harmonics</category><category>mmWave</category><category>reflectarray</category><category>wireless communications</category></item><item><title>Modeling Roasted Coffee as a Perishable Asset</title><link>https://john-hodge.com/blog/modeling-roasted-coffee-as-a-perishable-asset/</link><guid isPermaLink="true">https://john-hodge.com/blog/modeling-roasted-coffee-as-a-perishable-asset/</guid><description>Roasted coffee has a hump-shaped quality curve: it improves while resting, peaks, then stales. That makes it a clean toy problem for perishable-inventory pricing, storage economics, and a small client-side model.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate><category>perishable inventory</category><category>dynamic pricing</category><category>revenue management</category><category>newsvendor</category><category>coffee freshness</category><category>client-side modeling</category><category>TypeScript</category><category>open source</category></item><item><title>opensatcom: an open toolkit for satcom link budgets and trade studies</title><link>https://john-hodge.com/blog/opensatcom/</link><guid isPermaLink="true">https://john-hodge.com/blog/opensatcom/</guid><description>An open-source Python toolkit for satellite communications: snapshot link budgets, ITU-R propagation, a DVB-S2 modem, multibeam payloads, and Pareto trade studies.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><category>satellite communications</category><category>link budget</category><category>ITU-R propagation</category><category>DVB-S2</category><category>rain fade</category><category>phased array</category><category>trade study</category><category>Pareto optimization</category><category>RF engineering</category><category>Python</category></item><item><title>slopscore: a transparent linter for AI-slop writing patterns</title><link>https://john-hodge.com/blog/slopscore/</link><guid isPermaLink="true">https://john-hodge.com/blog/slopscore/</guid><description>A rule-based prose linter that scores formulaic, generic, low-specificity writing patterns with visible evidence spans. It scores patterns rather than authorship.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><category>AI slop</category><category>prose linter</category><category>writing quality</category><category>AI detection</category><category>non-native English bias</category><category>SARIF</category><category>pre-commit</category><category>continuous integration</category><category>open source</category><category>Python</category></item><item><title>An open MDO toolkit for axial-flux robot actuators</title><link>https://john-hodge.com/blog/mdo-for-axial-flux-actuators/</link><guid isPermaLink="true">https://john-hodge.com/blog/mdo-for-axial-flux-actuators/</guid><description>axfluxmdo: fast analytical models, 2.5D annular analysis, Pareto trade studies, and FEA hooks for early-stage axial-flux motor design, aimed at robot actuators.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>axial-flux motor</category><category>robot actuator</category><category>multidisciplinary design optimization</category><category>Pareto optimization</category><category>torque density</category><category>pole pairs</category><category>electric machine design</category><category>OpenMDAO</category><category>pymoo</category><category>direct-drive actuator</category></item><item><title>An agentic workflow for phased-array design, from unit cell to link margin</title><link>https://john-hodge.com/blog/agentic-workflow-for-phased-arrays/</link><guid isPermaLink="true">https://john-hodge.com/blog/agentic-workflow-for-phased-arrays/</guid><description>I built APAB, an LLM that orchestrates a chain of phased-array physics tools through MCP and emits an auditable run bundle. The agent drives; the solvers compute.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>phased array</category><category>LLM agent</category><category>MCP</category><category>Model Context Protocol</category><category>agentic workflow</category><category>EdgeFEM</category><category>mutual coupling</category><category>provenance</category><category>RF engineering</category><category>Ollama</category></item><item><title>Predicting the next pitch, by decomposition</title><link>https://john-hodge.com/blog/predicting-the-next-pitch/</link><guid isPermaLink="true">https://john-hodge.com/blog/predicting-the-next-pitch/</guid><description>A baseball pitch-prediction package as a lab: separate pitcher pitch-mix, count, fatigue, and sequence memory, and test which models actually use each.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>pitch sequencing</category><category>baseball analytics</category><category>sequence modeling</category><category>baseline ladder</category><category>model calibration</category><category>data leakage</category><category>cross-validation</category><category>machine learning evaluation</category><category>log loss</category><category>Statcast</category></item><item><title>Modeling phased arrays in Python, from physics to trade study</title><link>https://john-hodge.com/blog/modeling-phased-arrays-in-python/</link><guid isPermaLink="true">https://john-hodge.com/blog/modeling-phased-arrays-in-python/</guid><description>Two open Python tools for phased arrays: one computes the beam pattern, the other asks whether a design meets its link, radar, cost, and reliability margins.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>phased array</category><category>antenna pattern</category><category>array factor</category><category>beam steering</category><category>grating lobes</category><category>radar equation</category><category>link budget</category><category>trade study</category><category>Pareto frontier</category><category>RF systems engineering</category></item><item><title>Sizing AI training by its bottleneck resource</title><link>https://john-hodge.com/blog/sizing-ai-training-by-bottleneck/</link><guid isPermaLink="true">https://john-hodge.com/blog/sizing-ai-training-by-bottleneck/</guid><description>A small open model for AI hardware: find whether a workload is compute-, memory-, or network-bound, then price the resource that actually binds it.</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate><category>AI training hardware</category><category>GPU sizing</category><category>memory bandwidth</category><category>roofline model</category><category>arithmetic intensity</category><category>HBM</category><category>cost per TB/s</category><category>KV cache</category><category>LLM inference</category><category>tokens per second</category></item><item><title>Orbital data centers, by the numbers</title><link>https://john-hodge.com/blog/orbital-data-centers-by-the-numbers/</link><guid isPermaLink="true">https://john-hodge.com/blog/orbital-data-centers-by-the-numbers/</guid><description>An open, physics-based model of space-based AI data centers: why inter-satellite links are easy, the downlink is hard, and orbit runs about 19x Earth&apos;s cost today.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate><category>space-based AI data centers</category><category>orbital data centers</category><category>Project Suncatcher</category><category>Starcloud</category><category>levelized cost of compute</category><category>optical downlink bandwidth</category><category>thermal management in space</category><category>delivered compute</category><category>AI infrastructure</category></item></channel></rss>