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.

slopscore 0.9.0 adds a dimension for manufactured sincerity

Candor-heavy prose scored 0.0 on every slop dimension and earned credit as human writing. Version 0.9.0 adds performative_candor and ten rules to score it.

Side projects

Auditing tool-call traces in MCP agents

An outcome grader tells you the refund never happened. Only the trace tells you which of the four layers between the model and the payment API broke.

AI agents

How to measure a grader

A grader is a role in an eval rather than a technology. Deterministic checks and LLM judges both fill it, and each carries a different measurement cost.

AI agents

Failure taxonomies for ML and decision systems

Aggregate scores detect that behavior changed. Bucketing failures by stage, causal role, and opportunity rate is what routes a fix to the right owner.

Machine learning

phased-array-systems 0.9.0: validated physics and multi-objective trade studies

v0.9.0 brings NSGA-II multi-objective optimization and Sobol sensitivity to phased-array trade studies, on top of ITU-R propagation, real clutter models, and exact detection statistics.

Electromagnetics & RF

phased-array-modeling 1.4.0: polarized patterns for phased arrays

v1.4.0 adds a vector pattern engine: polarized element models, co/cross-pol cuts, axial ratio and XPD maps, measured pattern import, and polarization-correct conformal arrays.

Electromagnetics & RF

The state of the OpenTelemetry GenAI semantic conventions (July 2026)

The OTel GenAI conventions moved to a dedicated repository with no versioned release yet, nothing GenAI-specific is stable, and frameworks emit several generations at once. The current map.

AI agents

metasurface-py: a Python toolkit for programmable electromagnetic surfaces

An open-source Python toolkit for RIS, reflectarray, and metasurface antenna design: beam steering, phase quantization, hardware constraints, link budgets, sensing, and optimization.

Electromagnetics & RF

OpenEM Wave Lab: an interactive browser lab for electromagnetic wave physics

An open-source browser lab for EM wave physics: plane waves, Fresnel coefficients, phase vs group velocity, and standing waves, computed live from validated closed-form models.

Electromagnetics & RF

Programming the aperture: my PhD research on reconfigurable intelligent metasurfaces

A retrospective on my Virginia Tech PhD: reconfigurable intelligent metasurfaces (RIS) for beam steering and index modulation, a fabricated two-bit prototype, and generative deep learning for inverse design.

Electromagnetics & RF

How to build an eval harness for LLM agents

A working recipe for evaluating agentic workflows: isolated trials, outcome-first grading, invariant gates, reliability across repeated runs, and a benchmark you can trust.

AI agents

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.

AI agents

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.

AI agents

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.

AI agents

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.

AI agents

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.

Side projects

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.

Electromagnetics & RF

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.

Modeling & simulation

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.

Machine learning

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.

Machine learning

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.

Electromagnetics & RF

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.

Modeling & simulation

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.

Modeling & simulation

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.

Side projects

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.

Modeling & simulation

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.

AI agents

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.

Machine learning

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.

Electromagnetics & RF

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.

Modeling & simulation

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.

Modeling & simulation