Projects

Tool World Model (UCC & IBM Research)

An agent that uses software tools is told what each tool does, not how the tools fit together, and documentation leaves more of that unsaid than you would expect: even the handoff that supplies a username to a login is written nowhere. We are building an agent that learns the missing structure by using the tools, with no documentation, demonstrations or language model in the loop, and then finds its own routes through the suite, ones nobody wrote down.

HERMES — Differentiable Transit Detection and Vetting

A pipeline that finds planets in Kepler light curves by the small dip they make when they cross their star, and then decides whether each dip is really a planet. I wrote it in JAX so that the search, the physics and the classifier are one differentiable program, which turned out to be useful for something other than training: the pipeline can measure itself. I used that to map where its own search stops finding planets, and to test whether the physics-informed feature it was built around changes what the classifier can do. It does not.

Attnax — Attention for JAX

JAX ships excellent attention kernels and deliberately no models; Flax ships layers but no RoPE, ALiBi, mixture-of-experts or vision transformer. Attnax is the layer in between: attention biases and masks you write once and compose, which it lowers onto JAX’s own fused kernels where they have a native form and turns into block-sparse work where they don’t, plus the transformer pieces.