Selected work

Retire With Time3,000+ tests

Enterprise wealth management platform for financial advisors and their clients, built as the sole engineer: 716 API endpoints, 176 pages across client, advisor, manager, and admin portals, and a native iOS app. The projection engine draws correlated multi asset returns through Cholesky decomposition and reshapes them into a multivariate Student t, so tails fatten and assets crash together while marginal mean and volatility are preserved. It models federal and state tax law, Social Security taxation, SECURE 2.0 RMDs including the inherited IRA ten year rule, IRMAA re-tiering off post withdrawal MAGI, ACA premium credits and the subsidy cliff, NIIT, AMT, and long term capital gains basis tracking across 15 withdrawal strategies. Tax brackets and RMD divisors live as database rows editable from an admin console rather than constants in code. Ricki, an AI planning assistant with more than 70 tools and document ingest, runs through a LiteLLM gateway that routes to models on our own hardware or to OpenRouter. The same engine runs three ways, on serverless GPU, local GPU, and CPU, with a parity gate that fails CI if they disagree, and nightly mutation testing proves the gates actually catch bugs.

Next.js, React 19, FastAPI, PostgreSQL, PyTorch, Modal, Redis, Stripe, Plaid, WorkOS, LiteLLM, SwiftUI

Talon10 landing providers

Solana sniper bot that detects new token creations and lands buy transactions in the same block. Transaction shapes are serialized once at startup into fixed stack allocated buffers, then patched at recorded byte offsets on detection rather than rebuilt. Signing runs on a hand rolled thread pool pinned to physical cores, coordinating through cache line padded atomics and switching between spin and park depending on core availability. Detection runs three interchangeable ways, including raw UDP shred ingestion with FEC reassembly done in process.

Rust, Tokio, Solana, Yellowstone gRPC, ShredStream, Axum, Next.js

StayStaked200+ person waitlist

Staking platform for head to head wagers on console and PC matches, which I co-founded and led engineering on. A unified SSE endpoint multiplexes every live event over one connection per client, fanned out through Redis Pub/Sub so odds stay consistent across machines that scale to zero. Odds come from a pool based engine with bounded multipliers and stake limits derived from the pool math, and ELO ratings drive matchmaking. Balance moves through a single conditional SQL update, closing the read-modify-write race a naive check leaves open under concurrency. Stripe Connect Express handles payouts, with every webhook persisted and deduped before processing and the transfer reversed automatically if a payout fails. One backend of 357 endpoints serves the web app and an Expo mobile client over the same realtime contract, alongside admin, moderator, owner, partner, and support portals.

Next.js, FastAPI, PostgreSQL, Redis, Stripe Connect, Expo, React Native, Fly.io

deskall670 tests

Peer to peer desktop fabric that makes several machines behave like one. It shares a single keyboard and mouse across Windows and macOS with screen edge handover, syncs clipboards with Lamport clock ordering and digest based echo suppression, and mounts each peer's files as a WebDAV drive in Explorer and Finder. A device's identity is the hash of its public key, connections are mutually authenticated QUIC pinned to it, and pairing runs SPAKE2 over a PIN with confirmation MACs bound to each side's observed identity, which defeats relay attacks. Windows stream between machines through Windows Graphics Capture and a hardware H.264 encoder, with color conversion on the GPU and VideoToolbox decode on macOS.

Rust, Tauri, QUIC, rustls, SPAKE2, Direct3D 11, Media Foundation, VideoToolbox

geoai24.9 km median on 4,000 held-out panoramas

Local open weights geolocation for Street View panoramas. A SigLIP2 backbone feeds an autoregressive hierarchical S2 cell classifier, then a ProtoNet content selector reranks candidates by image feature similarity rather than model probability. Three training generations plateaued, so instead of scaling further I ran diagnostics that isolated selection as the bottleneck rather than model capacity. Replacing greedy ranking with ProtoNet selection cut median error from roughly 70 km to 24.9 km with no retraining, and removed an inference stage rather than adding one.

Python, PyTorch, SigLIP2, S2 geometry, FastAPI

SerlaSDKs for JS, React, Node, Python, and Go

Open source product analytics, a self hostable PostHog alternative covering event ingestion, funnels, retention, session replay, feature flags, error tracking, and LLM cost tracking. The batch ingestion endpoint validates up to 100 events per request, rejects foreign session IDs in one query, and upserts sessions atomically, publishing realtime events and webhooks only after the commit lands. API keys are hashed and scoped so browser keys can only write. Feature flags bucket users deterministically by hash, errors are fingerprinted across V8 and Firefox stack formats, and session replay is stored as compressed rrweb chunks.

Next.js, TypeScript, Drizzle, PostgreSQL, Redis, rrweb, Go

Georend55% faster training

Co-founded startup turning iPhone LiDAR scans into walkable 3D property tours. I hardened the GPU worker that trains Gaussian splats from ARKit captures, with Postgres SKIP LOCKED job claims, timeouts on every subprocess, idempotent re-claims, and HMAC signed callbacks carrying replay nonces. Sharpness gated frame selection and a progressive resolution schedule cut training time 55% at render parity, and a clean room pruning stage from the LightGaussian and Taming 3DGS papers scores each gaussian by backpropagating rendered views to opacity. I also added about 9,600 lines of floor plan features to our fork of Pascal's open source three.js editor and landed two fixes upstream.

Python, PyTorch, Nerfstudio, gsplat, three.js, WebGPU

guirs628 tests

GPU accelerated GUI framework for Rust with no HTML, no JavaScript, and no web view. Two wgpu render pipelines draw everything, with a signed distance field shader handling per corner radii, gradients, and shadows, and glyphs and images batched into array atlases for instanced draws. Styling comes from its own cascading stylesheet language with a hand written parser, selector matching, transitions, and hot reload. Text goes through shaping, bidi, and per character font fallback, and screen readers work through AccessKit.

Rust, wgpu, WGSL, winit, taffy, AccessKit

pkarb

Arbitrage engine monitoring Kalshi and Polymarket for price inefficiencies. Kalshi's taker fee is reimplemented exactly and subtracted inside the margin calculation, so the threshold is fee inclusive rather than fee blind. Event matching funnels through a unified API, then TF-IDF cosine similarity, then LLM verification, with persistent caches so any pair is judged once. The flakier Polymarket leg is placed first so a rejection aborts with zero exposure.

Python, scikit-learn, py-clob-client, Groq, Claude, Next.js

oddstaked

Odds aggregator across DraftKings, FanDuel, Bet365, and BetMGM. Bet365's sync token is generated by obfuscated in-page JavaScript, so it is acquired two independent ways: intercepting it off the site's own outgoing requests, and reimplementing their character substitution cipher in Python. Cross book normalization resolves 133 canonical team entries and guards against false player matches so lines are actually comparable.

Python, curl_cffi, Playwright, Pydantic

Push to talk dictation for Windows and macOS. Audio is captured on a dedicated thread, transcribed locally by Whisper, cleaned up by a local Ollama model for punctuation and proper nouns, then pasted at the cursor. Nothing leaves the machine. A silent warmup at startup forces the mmapped weights into RAM, removing a multi second stall on the first keypress.

Rust, Tauri, whisper.cpp, cpal, React, Vite, SQLite

Solcialslive on mainnet

Onchain social platform with no centralized backend. Posts, replies, likes, follows, and profiles are Anchor PDA accounts on Solana, with images chunked into sub 10 KB accounts to stay under the account size limit. The client hand rolls Anchor instruction encoding, computing the eight byte discriminators directly instead of depending on a generated IDL.

Next.js, React 19, Solana, Anchor, Rust, TypeScript

More projects

tokenrank

Rust CLI that runs as the Claude Code status line and tracks token usage and cost, with 9 cross-compiled releases and a public leaderboard.

Harness

AI native desktop browser in Rust and Tauri where an agent drives real tabs, the shell, files, and scheduled tasks.

Swashr

Two sided auto detailing marketplace with Stripe Connect payouts, an availability engine, and a 56 screen Expo app.

Rentcroft

Property management SaaS with AI lease import from text, photos, and PDFs, plus a 19 tool MCP server.

BriefBin

Note sharing platform for law students with in-browser PDF OCR and Gemini generated flashcards.

Scholent

Academic job marketplace that verifies PhD credentials through CrossRef DOI lookups and fuzzy author matching.

DwellIndex

Freight analytics startup where I built the backend foundation and the Samsara, Motive, and Geotab integrations.

DegreeMe

Degree planner for UCF IT students with a prerequisite aware scheduler and an interactive prerequisite graph.

Street View MCP

13 tool Model Context Protocol server inside an Electron map generator so AI agents can drive it over a LAN.

Experience

Retire With Time2025 – Present

Founder

Built an enterprise wealth management platform as the sole engineer, covering the tax and actuarial modeling, the simulation engine, the advisor and client web app, a native iOS client, and an AI assistant with tool access.

Billee Group2025 – Present

Co-Founder

Custom software and self hosted infrastructure studio. Rebuilt SNG Soaps' store, a business doing four figure monthly sales, on Next.js, Stripe, and PostgreSQL with on-site subscription checkout and a transactional booking engine. Client sites deploy with Ansible to our own servers.

StayStaked2024 – 2026

Co-Founder

Led engineering for a head to head wagering platform through a 200+ person waitlist, writing most of the FastAPI backend, the Next.js web app, and the Expo mobile client.

Lazard2021 – 2022

Software Engineering Intern

Financial technology solutions and internal tooling at a global advisory firm.

Skills

Languages

Rust, Python, TypeScript, JavaScript, Swift, C++, C, C#, Go, Java, SQL, Bash

Frameworks

Next.js, React, React Native, Expo, SwiftUI, Tauri, FastAPI, Node.js, Express, Tailwind, Flask, Django

Infrastructure

PostgreSQL, Neon, Redis, Solana, Anchor, Stripe, Plaid, Docker, GitHub Actions, Ansible, Fly.io, Modal, Cloudflare, Vercel, Linux, Nginx, Caddy

Machine learning

PyTorch, SigLIP2, Nerfstudio, gsplat, Whisper, NumPy, Pandas, scikit-learn, OpenCV, Monte Carlo simulation

Automation

Playwright, Selenium, Puppeteer, curl_cffi, TLS fingerprinting, web scraping at scale