Projects

My father once told me “If you want to make the world a better place, let the world’s problems find you, and then solve them.” After more than a decade working as a data scientist in resource-constrained environments, a lot of problems have found me. Most of my work is owned and classified by the US government. However, many of the tools I have built along the way do not assume any classification level, and so I recently decided to share some of those solutions with the rest of the world.

Two of these projects have reached a level of maturity that is ready for public release: a GET-only web server and a numeric-only database. Why the self-imposed constraints? We are all bound by one constraint that cannot be broken, the machine-ceiling. By identifying our own use case precisely, we can optimize for our needs by not wasting machine resources on what we don’t need. A GET-only web server can be far more secure than a general-purpose web server because it has a fraction of the attack surface. A numeric-only DB can compute faster than a general-purpose OLAP design because we can use far more efficient algorithms. To translate these examples into principles:

  1. Pragmatic minimalism — do everything necessary to do one thing well
  2. Literate paradigm — Knuth-inspired, but adapted to the AI era
  3. Agentic coding — highly structured collaboration with AI agents

However, in order to truly optimize, it is not sufficient to simply build streamlined tools. Many of the dependencies need to be rebuilt as well. For example, in order to speed up compute in the database even more, we compute in-engine, skipping the copy-compute-copy cycle. This requires an embedded language, such as Lua. Lua is perfectly capable of numeric workflows (for example, PyTorch began as Torch, a Lua library); however, it is not specifically designed for that workflow. There is no NumPy for Lua, for example. Therefore, I needed to build MatLua, a NumPy-shaped array and linear-algebra library for Lua. If I want to embed the database in a browser app, then it will need to compile to WebAssembly in order to retain its performance, and that means we need both lua.wasm (which I hope is self-explanatory) and blas.wasm, a BLAS rewritten routine-by-routine tuned for SIMD on WebAssembly with no runtime dependencies.

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.

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.