portfolio

projects

software, simulations, and interactive graphics.

01 · production systems

professional experience

Data Systems · Microsoft
Jul 2021 – Jul 2024

SSAS Multidimensional → Tabular Migration

Migrated an internal financial reporting platform to Tabular with zero downtime, owning implementation, telemetry, validation, and operational support.

  • Extended automated financial-value reconciliation between the legacy and replacement systems to preserve correctness during the migration.
  • Reduced representative filtering latency by up to 200x and user-visible Excel loading time by approximately 4x.
SSAS TabularSQLAzureTelemetry
Stakeholder Analytics · UVA
May 2025 – Mar 2026

Decision-Support Dashboards

Owned Tableau analytics products for institutional stakeholders from discovery through implementation, deployment, and ongoing support.

  • Translated ambiguous operational questions into SQL-backed metric definitions and decision-support dashboards.
  • Contributed to telemetry-informed optimization work that improved organization-wide dashboard load times by approximately 20%.
TableauSQLTelemetryStakeholder delivery
01

python · mujoco · control systems

robotics test bench + c-1n

six-legged robot simulation and control experiments.

PPO learns joint corrections and gait cadence for a six-legged MuJoCo robot. walk_fast_500 reaches 0.888 m/s in the recorded mean-policy run, with no falls across 24 fixed flat-ground evaluations.

scope: flat-ground walking; foot slip remains.

view work ↗
02

python · pytorch · tokenization · attention

lm lab

tokenization, language modeling, and causal attention in pytorch.

pinned notebook records cover a tokenizer, a trained bigram baseline, and an attention block; the current source extends the study with transformer comparisons.

tokenizer notebook ↗
unicode round-trip assertions; a 512-token vocabulary encodes the first 100,000 characters of tiny shakespeare into 47,586 tokens.
bigram notebook ↗
1,000 adamw steps. one validation batch records cross-entropy 4.376, against 6.238 for a uniform distribution over the vocabulary.
attention notebook ↗
two heads; input and output [32, 8, 32], attention weights [32, 2, 8, 8]. causal masking, pre-normalization, and residual connections.

recorded notebook metrics are pinned at 19222f1; the current study continues beyond the bigram baseline.

view work ↗
03

python · duckdb · dbt · flask

indigo circuit

tournament data, player ratings, and a nightly pipeline.

tournament results feed a nightly duckdb/dbt pipeline with glicko-2 ratings. the dashboard validates shadow-database rebuilds before promotion, with a direct-write fallback. its experimental deck estimates use bayesian shrinkage and approximate 90% model intervals that exclude baseline uncertainty and dependence between cards.

view work ↗
04

typescript · canvas 2d · fourier analysis

fourier drawing

interactive fourier reconstruction of drawn curves.

drawn 2d curves are reconstructed with rotating vectors. the interface exposes the periodic seam and normalized rms reconstruction error.

error is measured against the input curve.

view work ↗
05

three.js · webgl2 · shaders · web audio

voidpulse / jellyfish

audio-reactive webgl jellyfish.

procedural mantle, filaments, oral arms, and accretion disk. local files or captured tab audio drive the full application, with separate playback and visual-intensity controls.

the black-hole lensing is an artistic approximation. the homepage specimen is silent; the full app responds to audio.

view work ↗
06

semantic typography · three.js

tiramisu

a searchable lyric-sheet reader with focus mode and song comments.

plain-text lyrics sit over a webgl color field, with a focused reading view and a separate panel for public Genius comments. the text remains usable without webgl.

view work ↗
07

React · SQLite · MCP

mural

a shared drawing wall for leaving and curating marks.

the React client and MCP tools work with a SQLite-backed wall, keeping the public surface and its curation record in the same project.

open mural ↗
08

tauri · svelte · windows

magnet

keyboard-controlled spotify desktop client for windows.

saved tracks, playlists, search, playback, and queue editing in a native desktop app. it ships as an nsis installer and stores tokens in windows credential manager.

view work ↗
other project notes
09

typescript · websockets · sqlite · canvas

ecosim lab

server-owned artificial-life simulation.

feeding, reproduction, energy budgets, and inherited mutations. websocket clients share one simulation. sqlite snapshots preserve the world and random-number state for deterministic resumption.

simulation behavior has not been validated against real ecosystems.

view work ↗
10

three.js · web audio · spatial interaction

faltone

audio-reactive 3d corridor.

estimated tempo controls travel speed. frequency bands shape the visual field, stereo width expands it, and detected attacks trigger decaying pulses.

tab-audio capture is implemented; sample audio requires a configured source. spotify authorization is implemented separately from the visual signal path.

view work ↗
11

three.js · web audio · typescript

nebvis

audio-reactive nebulae, dust, and light.

local tracks, microphone input, or captured browser audio drive accretion fields, nebular dust, light echoes, and jets. the audio analysis stays in your browser.

view work ↗
12

youtube · generative weather

soundspace

a youtube player with changing weather.

an authored weather timeline follows the playback clock. seeded climates combine skies, clouds, mist, rain, particles, and electricity around the player.

the weather follows timing and metadata presets. it doesn’t analyze youtube’s audio.

view work ↗
13

spatial interface · code visualization

punkcubes

spatial codebase viewer.

files are cubes, functions sit inside them, and variables are voxels. you can drag and dock them, inspect weighted connections, and change the spatial mapping.

view work ↗
14

python · pandas · seaborn

social vulnerability & health

census-tract analysis of social vulnerability and health.

the recorded notebook joins 78,815 census tracts and compares overall social vulnerability and four theme rankings with six selected health measures. outputs include a correlation heatmap, a diabetes scatterplot, and state-level correlations.

these are observational relationships. they don’t establish causation.

view work ↗
15

python · numerical methods

test bench

numerical-method exercises and notebook drafts.

laplace relaxation, sheet gravity, and lattice sums. recorded outputs include relaxation plots and naive-versus-vectorized lattice-sum timings; some exercises remain unfinished.

view work ↗
16

deterministic physics · webmcp

agent physics lab

a physics experiment a person or a browser agent can run.

a deterministic ramp simulation with five webmcp tools. the tools use the same controls and measurements as the browser interface.

the full natural-language agent loop still needs validation.

view work ↗
17

p5.js · webgl · material studies

flowers

botanical sketches and an interactive 3d bouquet.

a p5.js lily sketch and a three.js bouquet with growing stems, opening petals, and a flower-and-color picker. earlier image-reveal studies remain in the repository.

the current bouquet uses procedural geometry and shaders; earlier image-reveal studies use generated material.

view work ↗
additional implementation notes

02 · Current engineering study

Robotics Test Bench → C-1N

controlled MuJoCo experiments and a six-legged robot with preserved standing and learned walking checkpoints.

Controlled experiments
August 2026 – Present

Robotics Test Bench

MuJoCo experiments in feedback, coupled dynamics, model-based control, and jacobian mappings.

  • Current studies cover feedback, coupled multibody dynamics, model-based control, and Jacobian mappings.
PythonMuJoCoControl
Open the test bench →
Integration study
C-1N // 03 · STRIDE

C-1N

a six-legged MuJoCo robot with recorded native PPO walking and preserved historical browser checkpoints.

  • The native simulation records policy weights, model settings, and measured trajectories for reproducible comparisons.
  • walk_fast_500 completes STRIDE within the fixed flat-ground protocol. SHUFFLE and STAND remain inspectable as earlier checkpoints.
PythonMuJoCoWebAssemblyControl
Inspect C-1N →

03 · Selected work

Products, desktop software, and analysis.

Independent Analysis · Health
May 2026

Social Vulnerability & Health Outcomes in America

an analysis of social vulnerability and six selected health measures, with 78,815 joined census tracts in the recorded notebook.

  • compared overall social vulnerability and four theme rankings with six selected health measures using a correlation heatmap, a diabetes scatterplot, and state-level correlations.
  • The analysis measures observational relationships and does not establish causation.
PythonStatistical analysispandasseaborn
View Analysis →
Personal · Data Platform
June 2026 – July 2026

Indigo Circuit

A competitive Pokémon TCG analytics platform that uses a DuckDB and dbt pipeline to produce live rankings, meta analysis, and matchup estimates.

  • the nightly pipeline ingests tournament data, recomputes glicko-2 ratings, and rebuilds dbt marts. the dashboard validates shadow builds before atomic promotion, with a direct-write fallback.
  • the experimental deck model uses bayesian shrinkage and approximate 90% model intervals that exclude baseline uncertainty and dependence between cards.
PythonDuckDBdbtFlask
Open App →
Personal · Windows desktop app
August 2026

Magnet

A minimal Windows Spotify player inspired by ncspot ↗. It supports native playback and keyboard navigation.

  • Implemented saved-track and playlist browsing, Spotify-wide search, and a manipulable queue for adding, reordering, and removing tracks.
  • Shipped an NSIS installer through tagged Windows builds; Spotify refresh tokens are stored in Windows Credential Manager.
TauriSvelteSpotify APIWindows
View project →

C-1N STRIDE checkpoint evidence ↗