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.