Portfolio

Owner of Vitality Studios, LLC

I have contributed to many projects, including:

Past and current projects include:

  • Legionella - A specialized Rust compiler enabling single source programming for distributed workloads
  • Modkit - Wrote a dynamic linker/syscall interface for Unix WebAssembly modules. Also did some embedded work
  • Hahbee - A social network targeting social events
  • LaborSheetDb - A contractor job site reporting tool

Interesting things to me, in no particular order:

  • Mathematical interests:
    • Data Assimilation (basically, mathematically rigorous unsupervised learning)
    • Stocastic differential equations
    • Dynamic systems, numerical PDEs, nonlinear problems
  • Weather forcasting, specifically shallow water models
  • Rust
  • Erlang/Elixir
  • C++/C
  • Typescript
  • Angular2/HTML/CSS
  • PostgreSQL/PostGIS
  • Phoenix Framework/Elixir/Erlang
  • Linux
  • Embedded development, including ARM and AVR
  • General video game development
  • Vulkan

Education

Attended the University of Kansas from 2013-2018. Majored in Mathematics, with a Minor in Chemistry. Left after completing all of the Math BS requirements.

I have a strong background in mathematics; specifically: non-linear dynamic systems, PDEs, probability, numerical methods, and Data Assimilation.

I have implemented Kalman and particle filters and a few other state estimation methods.

Project Descriptions

Legionella

A single source distributed programming framework for Rust. Currently focused on AMDGPU, it, among other things, helps you efficiently manage resource lifetimes, prevent concurrent read/write hazards, and offers work kernel and memory distribution for your clusters.

My company, Vitality Studios, offers consulting services for Legionella; if there's a feature you'd like to see, reach out to me to discuss!

Modkit

Contracted to, originally, port the LLVM/Clang/LLD compiler suit to NaCl, for use in Modkit's robotic visual programming environment, which would run completely client-side. Later, I ported LLVM/Clang to WebAssembly. This later work involved creation of a wasm dynamic linker and unix-y syscall implementation. This wasm loader and runner enables multiple wasm binaries (as in, exes) to share their shared objects in a single set of wasm instances. So, for instance, LLD and Clang would share a single libLLVMARMCodeGen.so instance, yielding significant memory savings. Additionally, created a Rust implementation of the Emscripten IDBFS schema for use in the aforementioned loader/runner. The syscall implementation includes page table support so memory mapping works roughly as expected.

Wrote a cross sysroot builder for many ARM and AVR embedded platforms.

Fixed many, many issues in the LLVM AVR backend, and a few in the LLVM PBQP registry allocator.

Rust

Added support for the complex address space configuration required by the AMDGPU LLVM target, and many other small patches.

VLC

Ported VLC to PNaCl for a client, allowing VLC to play video/audio in any webpage (ie not limited to use as a Chrome Store app). Created modules to fetch and cache remote media resources (ie resource retreived over HTTP(S)), play audio, and provide a rich, versioned API to JS. Modified VLC's core to allow it to correctly run without pthread_kill/signals. Required dealing with PPAPI audio sync issues.

Hahbee

A social network, which targets the way we organise our lives around groups of friends and our interests. Hahbee is being built for all of the mobile platforms, with the intention to leverage location data to provide the ablity to automatically associate content with events, and to provide the user with similar suggestions w.r.t. an event.

Uses Elixir/Postgres on the backend, and Angular2 on the frontend.

I'm not currently actively working on this, but I may resume the work as I strongly believe the idea is novel and worthwhile.

LaborSheetDb

Automated the previously manual job of creating Excel job reports, including pretty charts for each job or in aggregate. Source