Andy Emerson
Section Chief, Data Analytics, U.S. Strategic Command

I was born and raised on a potato farm in deep rural Maine, which perhaps makes me an unlikely candidate for a data scientist and AI researcher — but nonetheless, here I am.
This journey began at the University of Maine, my family’s alma mater, where I studied philosophy and mathematics. The former taught me what a good question looks like; the latter taught me what a good answer looks like.
I continued my education in graduate school, studying political philosophy and applied mathematics at Claremont Graduate University, where I was project manager for the Mathematics Clinic and a teaching assistant for discrete mathematical modeling and for graph theory. I recently began working on my dissertation in the Computational Science Ph.D. program.
My military career began almost sixteen years ago as an operations researcher. I am currently Section Chief for Data Analytics at U.S. Strategic Command, on loan to the National Geospatial-Intelligence Agency to stand up a data modeling team. Previously, I was an Assistant Professor at UC Berkeley, where I directed the Leadership Lab and developed a new course, Philosophy and Leadership.
A data scientist working in a constrained research environment keeps needing domain-specific tools that do not yet exist. So I began building my own, and sharing them. They are the projects below.
Education
Ph.D. candidate, Computational Science · Claremont Graduate University
M.S., Mathematics · Claremont Graduate University
M.A., Politics · Claremont Graduate University Pi Sigma Alpha
B.A., Philosophy and Mathematics · University of Maine Phi Sigma Tau · Pi Mu Epsilon
Research interests
Quantitative finance. Research on triangular arbitrage in the foreign-exchange markets: calculating latent currency values that establish equilibrium reference points for medium-frequency trading algorithms in the commodity market.
Human–AI collaboration. My AI research has been a series of experiments with agentic coding, aimed at minimizing machine hallucination and out-of-scope autonomy — keeping the machine honest, disciplined and within its brief.
Teaching
I taught at Berkeley for seven semesters, from 2018 to 2021. I arrived as an ROTC instructor; when that assignment ended, Berkeley hired me to stay on as faculty and keep teaching on the civilian side. Philosophy and Leadership was cross-listed with Political Science and no part of the ROTC curriculum: leadership studied by reading the great books — Plato and Shakespeare among them. About half the students were military and half were not, and it proved extremely popular.
Projects
Most of what I have built began as a tool I needed and could not find. The three with sites of their own — Servette, TallyDB and LoveIDE — are the visible layer, and each makes its own case at length. What I would rather point to is the pattern beneath them, because it is the same each time: a domain-specific tool that is friendly to use, and then the dependency it stands on rebuilt so that the tool can trust it.
The chain runs like this. A fully client-side notebook for Python and SQL became LoveIDE, which needed a LÖVE engine that ran in a browser — so love.wasm, real LÖVE compiled to WebAssembly rather than an imitation of its API, and beneath it lua.wasm, the reference Lua 5.4 interpreter as a single embeddable module that passes the full official test suite under WebAssembly. The notebook also needed a database that could ingest and compute on ordered numeric data without copying it out, which is TallyDB. Faster compute inside the database meant embedding Lua, and Lua then needed a serious numeric stack — MatLua, a NumPy-shaped array and linear-algebra library for Lua with Rust in the core. Under that sits blas.wasm, a BLAS written for WebAssembly routine by routine, with no runtime dependencies at all, as the foundation for the numeric work still to come. And because so much of this runs on the client, it needed a server small enough for a Raspberry Pi and secure enough for real use — which is Servette.
All of it is built under three ideas: pragmatic minimalism — do everything necessary to do one thing well; literate programming in Knuth’s sense, adapted to the AI era; and highly structured collaboration with AI agents.
blas.wasm Rust · WebAssembly
The wasm-native BLAS: one file per routine in netlib naming, all four number types, zero runtime dependencies, and a matrix multiply that beats faer at every size measured. Ships as one standalone .wasm with a flat C ABI.
MatLua Rust · Lua 5.4
Dense numeric arrays and linear algebra for Lua, the way NumPy is for Python: a high-level language in front, a systems language in the core. Scripts see a Lua library; hosts embed a Rust crate.
lua.wasm C · WebAssembly
Stock Lua 5.4 as a single embeddable WebAssembly module — plain clang and WASI, no Emscripten, a VM that never blocks its host — verified against the full official Lua test suite on every change.
love.wasm C++ · WebAssembly
Real LÖVE compiled to WebAssembly: a component with a published interface, not a program, so that a game authored in a browser behaves in preview the way it will when it ships. LoveIDE runs on it.