Skip to content
John Hodge

Blog

Technical notes on applied ML, physics-based modeling, and the engineering tradeoffs behind real systems. Each post links to the code or model it is built on.

Agentic systems change what engineers review

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.

Tracing a local LLM agent end to end: Strands Agents, Ollama, and OpenTelemetry

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.

planner-lab: a financial planning agent where the LLM never does the math

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.

APAB 0.3.0: observability and provenance for agentic phased-array design

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.

Gumline, a private dental habit tracker

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.

Model-based engineering for phased arrays: from a radar project to open-source tools

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.

pitchphys, a baseball pitch physics simulator

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.

Connect Four AI: the minimax algorithm behind Neon Drop

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.

Physics, learning, and control, in one helicopter simulator

An interactive browser simulator of the Abbeel-Coates-Ng autonomous helicopter: flight physics, apprenticeship trajectory learning, system identification, and LQR control.

The antenna is the modulator: index modulation with reconfigurable metasurfaces

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.

Modeling Roasted Coffee as a Perishable Asset

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.

opensatcom: an open toolkit for satcom link budgets and trade studies

An open-source Python toolkit for satellite communications: snapshot link budgets, ITU-R propagation, a DVB-S2 modem, multibeam payloads, and Pareto trade studies.

slopscore: a transparent linter for AI-slop writing patterns

A rule-based prose linter that scores formulaic, generic, low-specificity writing patterns with visible evidence spans. It scores patterns rather than authorship.

An open MDO toolkit for axial-flux robot actuators

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.

An agentic workflow for phased-array design, from unit cell to link margin

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.

Predicting the next pitch, by decomposition

A baseball pitch-prediction package as a lab: separate pitcher pitch-mix, count, fatigue, and sequence memory, and test which models actually use each.

Modeling phased arrays in Python, from physics to trade study

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.

Sizing AI training by its bottleneck resource

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.

Orbital data centers, by the numbers

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's cost today.