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