I own production systems end-to-end — data model, API, infrastructure, and the interface on top. Six years building enterprise education platforms at ASU scale, now shipping health software at Geviti.
I build the review gates, typed contracts, and infrastructure-as-code that make coding agents safe to run — the harness, not just the tooling.
Available now · senior/staff full-stack or platform · Phoenix or remote
Ship features across a health and longevity platform — bloodwork panels, personalized supplement protocols, prescription therapies, and care team coordination — in TypeScript on React, React Native, Postgres, and AWS.
Work on member health data and prescription workflows, where correctness and auditability matter more than raw velocity.
Build the member-facing tools that turn lab results into tracked metrics and protocol changes over time.
Technical lead on Triangulator, an enterprise course-transfer evaluation platform: modeled credit equivalency as a graph in Neo4j alongside Postgres, and built the Python/Flask GraphQL API and Nuxt front end that replaced manual articulation review with ranked, reviewable equivalency suggestions — including the admin assign, boost, and reject-with-reason workflow institutions run on.
Architected the LTI 1.3 integration for Orchard, ASU's customizable-assignment platform — OIDC single sign-on and grade passback against ASU's LMS, including key rotation and the failure paths when a grade fails to post.
Refactored the ASU Earned Admissions backend, the platform learners use to earn credit toward 100+ ASU degree programs, and built the Salesforce-to-Canvas data sync plus a new program opt-in flow.
Rebuilt payment processing for Study Hall, the education platform ASU runs with the Study Hall YouTube channel, cutting payment failures and making the flow maintainable. Also shipped React components for Sun Devils, ASU's athletics site.
Quarterly recognition award — 2024 Q1, 2024 Q2, 2024 Q3–Q4, and 2025 Q1
Freelancing
2020–2022
Software Engineer
Delivered custom sites and web applications for small businesses end-to-end — scoping, build, deployment, and handoff.
Owned the client relationship alongside the code: requirements, timelines, and post-launch support.
02
Selected projects
Triangulator
Enterprise platform that automates course transfer evaluation between universities. I was technical lead: credit equivalency is modelled as a graph in Neo4j alongside Postgres, served through a Python/Flask GraphQL API, and reviewed in a Nuxt admin where institutions assign, boost, and reject ranked equivalency suggestions with a reason attached.
gamezilla.app↗ is a real-time multiplayer gaming platform built on a full-stack TypeScript implementation of the Elm architecture. Migrated off the Lamdera↗ platform — reimplementing what Lamdera gave away for free (wire format, state persistence, client reconnect) over plain WebSockets, incrementally, without a flag day.
Health and longevity platform combining bloodwork analysis, personalized supplement protocols, prescription therapies, and care team coordination. I ship member-facing features across web and React Native, on Postgres and AWS, in a domain where correctness and auditability outrank velocity.
One services.yaml is the desired state for a personal production fleet — Railway services, Cloudflare DNS and redirects, Neon databases, R2 buckets, GitHub secrets, and tunnels. A reconcile loop plans every phase and applies it. Stateless drift is removed freely; stateful resources are never auto-deleted, only reported with the explicit destroy command to run by hand. CI gates on Vault readiness before it will deploy anything. This is the fleet this site is served from, alongside a self-hosted OpenBao secrets service and a Turborepo remote cache backed by Cloudflare R2.
A production-ready, framework-agnostic, zero-dependency TypeScript combobox library. The widget is a state machine with no DOM of its own, so one core drives React, Svelte, or anything else while staying WCAG conformant. Documentation site↗.
Self-hosted OpenAI-compatible HTTP proxy that routes requests to configurable upstream APIs, supports custom auth headers (API keys and bearer tokens), and logs traffic to Postgres for analysis, health checks, and cost visibility.
Types that actually constrain: strict, plus noUncheckedIndexedAccess and exactOptionalPropertyTypes — the two that catch what generated code gets wrong most.
Structural limits enforced as errors, not warnings: caps on file length, function length, parameters, and cyclomatic complexity, with a standing rule that they may never be disabled to make a change fit.
Invariant tests over unit tests: assertions that the content model is coherent — every asset path resolves, every cross-reference points at something real — because that is the class of error a fast contributor actually introduces.
Infrastructure, CI, and deploys are code: a reconcile loop plans and converges environments on push, and is forbidden from deleting anything stateful.
I own the outcome end-to-end — data model, API, infrastructure, interface. Agents remove the repeatable parts. When something wrong ships, it is mine.
04
Proof, not promises
Every number here comes straight from the GitHub API at build time. Read it as throughput, not heroics — I run coding agents under review gates, so the graph reflects the harness as much as the hours. The harness is the part worth judging, not the total.
Contribution period
12,029contributions2025-09-21 → 2026-09-21
Last 12 months: 12,029 contributions across 342 active days.
342 active days · longest streak 76 days · busiest day 262
10,577contributions2026-01-01 → 2026-09-21
2026: 10,577 contributions across 257 active days.
257 active days · longest streak 76 days · busiest day 262
5,823contributions2025-01-01 → 2025-12-31
2025: 5,823 contributions across 316 active days.
316 active days · longest streak 50 days · busiest day 85
3,677contributions2024-01-01 → 2024-12-31
2024: 3,677 contributions across 301 active days.
301 active days · longest streak 30 days · busiest day 88
2,962contributions2023-01-01 → 2023-12-31
2023: 2,962 contributions across 265 active days.
265 active days · longest streak 27 days · busiest day 54
LessMore
GitHub contribution heatmap showing consistent shipping activity over the past year. Each square is a day; darker is more. 12,029 contributions in the last 12 months.
12,029Contributions (12mo)
76Longest streak (days)
81Public repos
Live data from the GitHub API at build time · 2026-09-21 · verify on GitHub
05
About
I'm a full-stack software engineer in the Phoenix Valley who owns features end-to-end: data model, API, infrastructure, and the interface on top.
Most of my career has been education technology — six years across ASU platforms for course articulation, earned admission, LMS integration, and assignment authoring — plus health software now at Geviti. Both are domains where being wrong is expensive and quiet, which shapes how I build.
I work AI-natively, but the claim I'd defend is narrower than the phrase: I build the review gates, typed contracts, and infrastructure-as-code that make coding agents safe to run, and I stay accountable for what gets through them.
I write TypeScript across the stack, reach for Go or Rust when a service earns it, and a mathematics and statistics background from ASU keeps me honest on the data-heavy parts.