Software Engineer · Cloud, Backend & AI Systems
CS at Cal State San Marcos · open to SWE internships and part-time work
- 54 pull requests merged into 34 open-source repositories totalling 511,000+ stars, including Astro, pandas, Black, raylib and Prefect.
- 15,200+ sales and 344k Robux (~$1.3k at the DevEx rate) in the past year from 3D accessories made on my own local-GPU generation pipeline.
- 1.57x faster LLM decoding at 16k context on an RTX 4090, found with a roofline built from measured hardware ceilings.
- ~120 AWS resources provisioned with Terraform to deploy a multi-provider GenAI gateway end to end.
- A Redis-compatible database engine from scratch in Java 21: ~100K writes/s and ~130K reads/s single-threaded.
Local LLM Lab: making a 7B model faster on one GPU, then taking it apart
A measurement framework for Qwen2.5-7B-Instruct on an RTX 4090. It finds where inference time goes, fixes the bottleneck, and tests how refusal works inside the network.
- Built a roofline from measured ceilings (947 GB/s, 157.5 TFLOP/s) with no fitted parameters. It showed the attention path copying the KV cache seven times per layer.
- Wrote a grouped-query decode path that reads each cached key and value once: 1.57x faster at 16k context, 1.65x at batch 32, with no measurable fidelity loss against an FP32 reference.
- Removing one residual-stream direction takes refusal on harmful prompts from 95% to 0-2.5%. Random directions of the same size do nothing.
- Paired ABBA benchmarks, and every headline number is a recorded run stored with its hardware, versions and commit. 173 tests.
Python · PyTorch · Transformers · CUDA
kvstore: a Redis-compatible database engine
An LSM-tree key-value store written from scratch in Java 21. redis-cli, redis-py and Jedis connect to it unmodified.
- Storage engine shaped like LevelDB/RocksDB: write-ahead log, memtable, sorted SSTables, leveled compaction and bloom filters.
- ~100K writes/s and ~130K reads/s single-threaded (JMH, 100K keys). Bloom filters answer missing keys ~90x faster by skipping the disk.
- Speaks Redis's RESP protocol over TCP, with TLS, multi-user auth, pub/sub and snapshots.
- 209 tests, about 3,800 lines of Java plus 3,300 of tests.
Java 21 · LSM-Tree · RESP · Concurrency
Tempo: a neural-network chess engine (live on Lichess)
A chess engine written from scratch in C++20, with an NNUE evaluation trained in PyTorch on its own self-play games.
- Rated 2976 (95% CI 2933-3019) from 300 games against Stockfish 19 capped at 2800-3190, on Stockfish's own scale at 10s + 0.1s. The first version rated 2688.
- The network trained on 120M self-play positions beat the hand-written evaluation by +175 ± 32 Elo, and every retrain after it had to pass an SPRT match to ship.
- Lazy SMP search gains +269 Elo at 8 threads. Move generation matches all 32 published perft counts (610M nodes, ~113M nodes/s).
- Plays rated blitz on Lichess as a BOT account, currently around 2600.
C++20 · PyTorch · NNUE · CMake
bytepair: GPT-4's tokenizer, rebuilt in Rust
A byte-level BPE tokenizer with a Rust engine behind PyO3 bindings, and a pure-Python reference kept alongside it as the oracle.
- 1.6-2.2x faster than tiktoken on one thread, with zero mismatches over 7.46M tokens on cl100k and o200k, plus a 1M-string fuzz.
- Trains a vocabulary 3.2-4.9x faster than Hugging Face tokenizers, with merges identical to the Python reference.
- Hand-written pre-tokenizer splitters replace the regex engine and run 15.5-20x faster than it.
- Refuses a literal
<|endoftext|>in user text, which Hugging Face's GPT-4 port turns into the special token. 151 tests (138 Python, 13 Rust), CI green.
Rust · Python · PyO3 · maturin
Heart Disease Audit: a reproducibility audit of a popular ML dataset
Traces the Kaggle Heart Failure Prediction CSV back to its four UCI hospital sources and measures what that changes.
- Found that the filled-in missing values encode the diagnosis: every filled
ST_SlopeisFlatfor heart disease (111 of 111) andUpwithout it (191 of 191). - Undoing the fill drops the typical pipeline's median accuracy from 86.4% to 79.3% over 1,000 paired splits.
- A pre-registered survey of 30 public notebooks found 0 of 30 mention it. Every prediction was committed before its experiment ran, and 14 of 15 held up.
- Leave-one-hospital-out AUC is about 0.83. 77 tests, and all five notebooks run in CI.
Python · pandas · scikit-learn · pytest
Landed: pricing for card shops
Paste a TCGplayer link and get a whole-dollar sticker price for every condition, matched to what a buyer would pay online including shipping. I'm the sole engineer.
- Full stack on Cloudflare Workers, D1 and KV, with an hourly cron keeping prices current.
- Pricing engine written twice on purpose: a Python reference and the production TypeScript port, with golden tests asserting they match byte for byte.
- 371 automated tests. Deployed but not yet in service: Clerk auth and Stripe billing are wired in test mode.
TypeScript · Cloudflare Workers · D1 · Stripe · Python
Deployed AWS's multi-provider GenAI gateway reference design from an empty repository to a working, TLS-secured endpoint, as a task set by Cisco professionals at Riffyx Labs. The architecture is AWS's; the deployment was mine. It was stood up end to end and then torn down.
- ~120 AWS resources in Terraform: VPC, ECS Fargate, ALB, RDS, ElastiCache, WAF, Secrets Manager, Route 53 + ACM, remote S3 state.
- LiteLLM in front of Amazon Bedrock behind one OpenAI-compatible endpoint, with least-privilege IAM and per-key cost tracking.
- Traced a PII-masking defect in the Presidio sidecar to a dependency version, and fixed it with a controlled upgrade and regression tests.
AWS · Terraform · ECS Fargate · Bedrock · LiteLLM
54 pull requests merged into 34 repositories totalling 511,000+ stars. These are fixes in codebases I don't maintain, found by reading unfamiliar code, diagnosed by measurement and defended in review. The ten largest repositories:
| Repo | ★ | Merged | What it fixed |
|---|---|---|---|
| withastro/astro | 62.9k | 1 | Fallback route generation swapped the locale as a substring, corrupting any path segment that merely started with the locale code. |
| pandas-dev/pandas | 49.9k | 1 | qcut never validated q: a bad bin count raised the wrong error, or none at all. |
| bilawalsidhu/gods-eye-view | 44.3k | 3 | Kept node:fs out of the browser build, fixed 25 tests that failed on every Windows clone, and bounded CCTV media downloads with an idle deadline. |
| psf/black | 41.9k | 1 | Formatting from a notebook crashed because it assumed every stdout has a .buffer. |
| raysan5/raylib | 34.9k | 1 | MatrixCompose() read back vector components it had just overwritten, so most rotations produced a wrong matrix. |
| HKUDS/Vibe-Trading | 34.2k | 3 | Reference links that resolve on GitHub and for the agent, and "newest first" history that really is, fixing three tests already failing on main. |
| fmtlib/fmt | 25.8k | 1 | A test target built from format.cc never inherited the library's /utf-8, so the pedantic build did not compile under MSVC. |
| PrefectHQ/prefect | 23.9k | 1 | Jitter was drawn around the base interval instead of the backed-off one, so every caller silently lost its retry backoff. |
| kivy/kivy | 19.0k | 2 | KV bindings queued during Builder.sync were dropped, silently and forever. |
| FreshRSS/FreshRSS | 16.2k | 1 | The feed preview page skipped the URL-rewriting hook that subscribing ran, so extensions like RSS-Bridge were bypassed on the page that confirms a subscription. |
Plus 39 more merges across PyInstaller, OpenLayers, Simon Willison's llm, kornia, Unciv, node-gyp, Terser, SwiftFormat, Puma and 15 other repositories: full list on ethanstoner.dev.
Two worth reading in full: rakazo #322, where the reporter wrote "I cannot explain the root cause" and I narrowed it down by elimination, and trueforge #464, where a reviewer asked whether an abort was needed and I measured it instead of arguing: Promise.race frees the caller but leaves the socket open.
Landed, Founder & Solo Engineer · 2026 – Present
Built and deployed a card-pricing tool as sole engineer across product, infrastructure and testing. 371 automated tests; billing wired in test mode, not yet in service.
Roblox UGC, Independent Creator · 2025 – Present
Design and sell 3D avatar accessories made with a local-GPU generation pipeline: 15,200+ sales and 344k Robux (~$1.3k at the DevEx rate) in the past year.
Riffyx Labs, Engineering Mentee · 2025 – 2026
Deployed a multi-provider GenAI gateway on AWS end to end, provisioning ~120 resources with Terraform across ECS Fargate, RDS, ALB, WAF and Bedrock, with Guardrails and PII masking.
| Project | What it does | Stack |
|---|---|---|
| aibackflip | A humanoid learns to backflip on a 2D physics engine and PPO both written from scratch: 24 of 24 flips land, and 83% still land when shoved mid-flight. 313 tests. | C++ Python PyTorch |
| strata | One Rust binary turns a folder of CT or MRI files into a browser viewer with hand-written WebGL2 volume rendering, ordering slices by scanner geometry rather than file index. 129 tests. | Rust WebGL2 TypeScript |
| Universe Simulator | Newtonian N-body gravity from real astronomical data, with four integrators, Barnes-Hut or exact summation, and live energy diagnostics. 160 unit tests; CI runs the OpenGL self-test headlessly (41,005 checks). | C++20 OpenGL CMake |
| NeuroRacer | Neuroevolution racing cars as a generalisation lab, with every claim pre-registered in git. The champion laps 43/43 clockwise test tracks and 0/42 counter-clockwise; training both ways makes 5/5 seeds lap all 100 in both directions. Includes a TypeScript track editor parity-tested against the trainer's NumPy checks, live in the browser. | Python NumPy TypeScript |
| RAG From Scratch | 18 RAG techniques in plain Python, scored on 300 MultiHop-RAG queries with paired bootstrap CIs. A reranker lifts exact match from 0.563 to 0.667; CRAG and Self-RAG both hurt. | Python Ollama pytest |
| Pincer (private) | Closed-loop agent driving physical Android phones over ADB with a fine-tuned YOLO11 detector that labels its own training data. | Python PyTorch YOLO11 |
| Qorlyt | One image becomes a textured 3D model in about 90 seconds (median of 64 runs) on a local ComfyUI + Hunyuan3D 2.1 pipeline, behind FastAPI with live progress. | Python FastAPI ComfyUI |
| CSUSM Campus Monitor | Counts people on live campus camera streams with an open-vocabulary grounding model, falling back to YOLOv8n without a GPU. 133 tests. | Python FastAPI OpenCV |
| Lyric Generator | Spotify link in, lyric video out, with Whisper word-level timing. | Python FastAPI Whisper |
| Hunyuan3D-2.1 Install Guide | Step-by-step Windows install for Hunyuan3D-2.1 + ComfyUI. My most-starred repo. | Docs |
- Cal State San Marcos, B.S. Computer Science · Fall 2026 – 2030 (expected)
- Great Oak High School, Temecula, CA, Diploma · June 2026
- Anthropic: Claude API, Amazon Bedrock, Vertex AI, Model Context Protocol (Advanced), Agent Skills, Claude Code (all certificates)
- OpenAI Academy: Agents & Workflows, AI Foundations, Applied AI Foundations
- AWS Certified Cloud Practitioner (CLF-C02): exam in progress






