work
projects
an ai assistant that lives in imessage. text it an assignment, it schedules the reminder and follows up.
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. claude agent with a tool-use loop (7 tools), webhook dedup on message guid, e.164 phone normalization, 20-message rolling history, and reminders that would land overnight pushed to 9am in the user's own timezone with a guard so the shift can never push past the due date. follow-ups escalate over five rungs, each checking whether you already replied.
typescript · next.js · node · postgres (prisma) · redis · bullmq · anthropic api · docker
watches a full class at gsu and texts you the second a seat opens.
hard part. gsu's banner registration api has no public docs and returns empty results with a 200 status if you call it out of order. captured the real request chain from browser dev tools, then rebuilt the session-cookie handshake in code.
also. tiered polling with a redis surge flag, idempotent alerts so nobody gets texted twice for the same opening, and per-watch rate guards.
typescript · node · redis · bullmq · postgres
part of nudgebuddy.netlaunching august 2026upload your degreeworks pdf and it tells you what classes you're actually eligible for, then builds a schedule.
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.
python · fastapi · react · anthropic api · graphql · pdf parsing
pulls internship postings straight from companies' ats boards and classifies them with claude.
hard part. linkedin lags job boards by a vendor-documented 6 to 48 hours, so the pipeline goes to the source: 50 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. four ats integrations, three currently exercised. two schedulers run at once, modal crons and github actions, kept from stepping on each other by a run lock in postgres.
numbers. 50 ats boards · every 3 min
python · modal · github actions · supabase (postgres) · next.js · anthropic api
githubin daily useiphone app that scans a room with lidar and measures it, built in a day and a half.
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 14 unit tests, which caught an eigen-solver bug that was silently corrupting results.
numbers. 14 unit tests
swift · arkit · lidar / roomplan · simd · xctest
githubprototypemirrors your iphone screen to a tesla's in-car browser over wifi. built with one other dev.
hard part. it worked perfectly on his machine and silently failed for everyone else. he had hard-coded a local network address. fixed by resolving it dynamically at runtime.
swift · swiftui · replaykit · haishinkit · rtmp
tesycast.comlive
experience
dec 2024 to jul 2025
- sole engineer. took a local tire shop from no app to a published ios app.
- swiftui app with in-app tire ordering and roadside assistance scheduling.
- cloudflare workers backend so stripe secret keys stayed server side, never in the client. firebase auth and firestore for accounts.
numbers. 300+ users · 100+ orders · 5.0★
summers 2021 and 2022, springfield, va
- resolved client it and help desk requests through a ticketing system.
skills
- languages
- python · typescript · javascript · swift · sql · java · c · c++
- frontend
- react · next.js · tailwind · swiftui
- backend
- node · express · flask · rest apis · 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 · supabase · firebase · modal · vercel
