work
every dot is something i built, and almost all of them have a live link.
tire spot500+ users
tire spot
contractsole engineer. took a local tire shop from no app to a published ios app.
500+ users · 100+ orders · 5.0 stars
how it workssoftware engineer (contract) · dec 2024 to jul 2025
swiftui app with in-app tire ordering, install booking and roadside assistance scheduling.
cloudflare workers backend so stripe secret keys stayed server side, never in the client. firebase auth and firestore for accounts.
seatsnipe152 students
seatsnipe
between termswatches a full class at gsu and texts you the second a seat opens.
152 students · 100 in the first 24 hours
how it worksdates. july 2026 to present
hard part. gsu's banner registration api has no public docs and answers 200 with empty results if you call it out of order. captured the real request chain from browser dev tools, then rebuilt the 3-step session-cookie handshake in code.
also. a promise-chain mutex and a 500ms rate limiter so concurrent polls don't thrash the session, tiered polling (60 to 90s in a surge, 5 min normal, 15 min overnight) switched at runtime through redis, a 5-error circuit breaker that pauses for 10 minutes, and idempotent alerts so nobody gets texted twice for the same opening.
stack. typescript · node · redis · bullmq · postgres
quiet until spring registration opens
prereqpilot40 students
prereqpilot
liveupload your degreeworks pdf and it tells you what classes you're actually eligible for, then builds a schedule.
40 students
how it worksdates. january 2026 to present
hard part. prerequisites are free text like "(csc 2720 or dsci 2720) and either math 3020 or math 3030 with a c or higher". wrote a resolver that turns that into and/or groups against a 13-level minimum-grade ladder, then walks the chain to work out what you're actually eligible for. claude writes the schedule, but the engine pre-filters the catalog down to courses you're cleared to take first, so it can only pick from a legal set.
also. live section data from the banner self-service json api behind a session and term handshake, professor ratings from the ratemyprofessors graphql api, two school-specific adapters feeding one shared normalization layer, disk-backed cache.
stack. python · fastapi · react · anthropic api · graphql · pdf parsing
nudge35 users
nudge
livean ai assistant that lives in imessage. text it an assignment, it schedules the reminder and follows up.
35 users
how it worksdates. june 2026 to present
hard part. serverless functions die after each request, so a delayed reminder can't just sleep. a next.js route handles the webhook, a separate always-on worker consumes a redis/bullmq queue and fires reminders on time, with recovery on boot so nothing is lost if the worker restarts.
also. blocks duplicate texts from three independent sources (serverless retries, bullmq retries, concurrent watcher ticks): an atomic database claim that rolls back if the send fails, redis set nx dedup keyed on the message guid, and deterministic bullmq job ids. a claude agent runs a tool-use loop across 12 tools, with e.164 phone normalization, a 20-message rolling history, and reminders that would land overnight pushed to 9am in the user's own timezone.
stack. typescript · next.js · node · postgres (prisma) · redis · bullmq · anthropic api · docker
job pipeline104 job boards
job pipeline
in daily usechecks 104 companies' own job boards every 3 minutes and flags the internships worth applying to.
104 ats boards · every 3 min
how it workspulls internship postings straight from companies' ats boards and classifies them with claude.
dates. june 2026 to present
hard part. linkedin lags job boards by a vendor-documented 6 to 48 hours, so the pipeline goes to the source: 104 companies' own ats boards every 3 minutes, deduped by normalized fingerprint, each posting run through a claude classifier against a rubric. cut about an hour of daily manual filtering to a 30-second glance.
also. covers greenhouse, workday, ashby, lever and smartrecruiters. two schedulers run at once, modal crons and github actions, kept from stepping on each other by a run lock in postgres. when the classifier is down, postings are parked rather than dropped and retried on the next run.
stack. python · modal · github actions · supabase (postgres) · next.js · anthropic api
tesycastlive, early beta
tesycast
live, early betamirrors your iphone screen to a tesla's in-car browser, phone and car each on their own connection, no hotspot.
live, early beta
how it worksrebuilt it solo, replacing the rtmp prototype my co-developer wrote before he left.
dates. december 2025 to june 2026
hard part. tesla's browser won't play video while the car is in drive, so tesycast doesn't send video. the replaykit extension jpeg-encodes each frame and pushes it over a websocket to a cloudflare worker, which fans the stills out to a canvas player in the car. one frame in flight at a time, and a quality ladder that backs off fast and probes slowly, the same asymmetry tcp uses.
also. one durable object per stream code with websocket hibernation, so an idle room costs nothing. per-viewer backpressure means a car on a slower connection always gets the freshest frame instead of a backlog. frames over 900 kb drop a quality rung and re-encode, because workers close a socket on any message over 1 mib. fixed a stream-hijack hole the original relay had, and 70 end-to-end checks run against the live deployment.
stack. swift · swiftui · replaykit · websocket · cloudflare workers · durable objects
closet scanner15 unit tests
closet scanner
prototypeiphone app that scans a room with lidar and measures it, built in a day and a half.
15 unit tests
how it worksdates. july 2026 to august 2026
hard part. measures by fitting planes (ransac + pca) to thousands of mesh points and reports every number with an honest confidence interval. the geometry math lives in a pure swift core under 15 unit tests, which caught an eigen-solver bug that was silently corrupting results.
stack. swift · arkit · lidar / roomplan · simd · xctest
icomit help desk
icom
internshipresolved client it and help desk requests through a ticketing system.
computer solutions intern · summers 2021 and 2022
how it workscomputer solutions intern · summers 2021 and 2022, springfield, va
skills
- languages
- python · typescript · javascript · swift · sql · java · c · c++
- frontend
- react · next.js · tailwind · swiftui
- backend
- node · express · fastapi · flask · rest apis · websockets · postgres (prisma) · redis · bullmq · background workers · serverless · webhooks · stripe
- ai
- anthropic claude api · openai api · agentic tool-use loops · structured json output · validation and guardrails
- tools
- git · github actions · docker · cloudflare workers · supabase · firebase · modal · vercel
also: nsbe · gdg at gsu · colorstack