PROJECTS

Two things I shipped recently

chef-claude/README.md

Chef Homd

AI recipe generator

Add at least four ingredients you've actually got in the kitchen and it hands back a full recipe, mostly built from what you gave it, using a Hugging Face-hosted Llama 3.1 model. Type in nonsense and it just gets confused instead of making something up; throw in a mix of real food and junk and it'll call you out before cooking with whatever's actually usable.

JavaScript · Vite · Hugging Face — Llama 3.1
Why this is more than a recipe app

It started out as a broken project I had to revive: the third-party API integration didn't work, and the model's responses came back as messy, unstructured text. I fixed the integration and built a structured request/response format so the recipe output parses reliably every time. While I was in there, I found a prompt injection hole too. I closed it with layered defenses on both the client and the server: I validate input before it's sent, keep what the user types separate from the system instructions, and let the model itself sort real ingredients from junk before it's allowed to cook anything up.

whiteboard/README.md

Whiteboard

Real-time collaborative canvas

Pick a display name, spin up a board, send the link. Whoever opens it shows up live (cursor, name tag, colored avatar) and you're all drawing on the same canvas at once. Every stroke and edit syncs right away, undo/redo included, and the board's saved so it's still there next time you open it.

Next.js · Canvas API · NestJS · Socket.io · PostgreSQL · Redis
How it was actually built

I split this one across two AI agents working at the same time. One did the whole frontend, the other did the whole backend. Before either touched code, I wrote out a shared TypeScript contract covering every WebSocket event, payload, and route, so neither side had to guess what the other was doing. Each agent tested its own half before calling it done, then I did one final pass myself to make sure both sides actually lined up. Under the hood, the server holds the source of truth for event order and resyncs a client automatically if it falls behind, and presence runs through Redis pub/sub so it can scale across more than one backend instance.

business-finder/README.md

Nearby Business Finder

Geospatial search + automated outreach

A full-stack geospatial search app built as a TypeScript monorepo: NestJS on the backend, Next.js and Leaflet on the frontend. Search results come from the Nominatim and Overpass APIs through a cached proxy layer, which kills the CORS issues and cuts down on redundant calls to services that rate-limit hard.

TypeScript · NestJS · Next.js · Leaflet · n8n
The part that turned it into a lead-gen pipeline

I extended it past plain search: results get enriched with contact emails and business descriptions, there's a CSV export endpoint, and an n8n workflow handles automated cold outreach on top, with lead deduplication, send throttling, and CAN-SPAM/GDPR-compliant opt-outs built in.

CLIENT & EMPLOYER WORK

client-work.log

Nebula Academy
Senior Software Engineer & Product Owner — Shispare

An AI-powered LMS I'm building full-stack on Next.js, NestJS, and Postgres. I'm also the one sitting across from the client at every stage of it.

FMCSA
Software Engineer — BitByteCyber

Moved a legacy system over to an Angular-based CRM for the US trucking industry. It now serves thousands of customers and handles tens of thousands of visits a week.

BOIFiling
Software Engineer — BitByteCyber

A role-based CRM portal for a US company's BOI filing compliance process, with more permission logic than I'd like to admit.

Event Hippie
Software Engineer — BitByteCyber

A ticket platform with Stripe and Twilio wired in, plus a form builder that adapts itself depending on the ticket type.

Trophy Hunter
Software Engineer — BitByteCyber

An event portal for hunting season, with notifications, real-time chat, the works.

Arbitration
Software Engineer — BitByteCyber

A conflict-resolution tool for tracking witnesses, claimants, respondents, and all the evidence tied to a case.

Built these on the job, not on my own time — the code isn’t mine to hand out, so there’s nothing to link to here.