PROJECTS
Things I'm building and breaking
GigFiend
Facebook Events died in 2018. This is what replaced it.
Turn "I saw something cool" into "I know if my friends are actually free and how many tickets to buy" for local gigs and events, without relying on the discovery platforms that quietly died along with Facebook Events' public API.
A real event data pipeline (Ticketmaster's Discovery API, PredictHQ for the community long tail Ticketmaster misses), a swipe interface that earns its keep instead of reading as a Tinder reskin, and a friend-invite/RSVP loop that replaces the scattered group chat — then it deep-links to the real ticket source instead of pretending to own the purchase.
Proof that a "boring" coordination problem — who's actually free, how many tickets to buy — is worth solving properly instead of leaving it to chat threads. A live, authenticated Next.js app with a real Postgres backend, not a demo.
STATUS Live (Sydney, Melbourne fast-follow)
Show more →Dream Home Pipeline
The real-estate portal shows you the photos. I built the rest.
Find cheap NSW rural land that already carries valuable native bush — the kind that earns biodiversity-credit income — and screen it systematically over a multi-year search.
A 30-second automated screen of any listing against 31+ government biodiversity and hazard layers, a scoring rubric that finds income-ready blocks — enough of the right native vegetation, in a catchment with real demand — and a per-property credit-revenue projection, so every candidate gets an auditable dossier instead of a gut feel.
Biodiversity credit markets are opaque and broker-mediated, and the "buy cheap bush → earn credit income" thesis has no public tooling. This turns a years-long search into a versioned shortlist and flags the dealbreakers (title, slope, native title) before a wasted site visit.
STATUS Active (personal)
Private — locations & financials generalized.
Show more →Imagen 4 MCP Server
Imagen 4 + Claude, actually talking to each other.
Expose Google's Imagen 4 and Veo video generation directly inside Claude as a Claude Code plugin.
Stop copy-pasting between a chat and a web UI — "generate this" and it happens, in-session.
Ship production AI tooling at the bleeding edge, native to the Claude Code plugin system.
STATUS Active (v2)
Private repo — publishable.
Show more →CaseVault
Built for people whose adversary has server access.
A workers-comp case-management app where the server is blind by design — zero-knowledge encryption, client-held keys only.
Claimants need court-ready document handling the insurer can't covertly read; subpoena the database and you get ciphertext. Cross-platform (iOS, Android, web) with ML document classification.
Show real security thinking under an adversarial constraint, not tutorial CRUD.
STATUS Pre-beta
Not yet public.
Show more →Spinners
Spent three months getting Beyblade physics right.
A LÖVE2D roguelike with real Box2D physics, built to a standard most hobby games never reach.
60+ modules, 700+ automated tests, and a headless balance simulator that runs thousands of rounds to tune the spin physics — because the wrong physics bothered me.
The craft card: proof the engineering rigour is real, even on a weekend project.
STATUS Active (hobby)
Private repo.
Show more →This Site — skunk.systems
You're looking at the portfolio piece.
Ship a fast, distinctive site that is itself the proof of work — designed, built and tuned end-to-end, not a template.
A published, reusable design system, light/dark theming, a terminal identity, a markdown blog, and genuine performance — mobile Lighthouse 90, CLS 0, auto-optimized images, and server-rendered content for SEO + AI discovery.
Best-practice "vibe coding" in the open: Next.js App Router, a token-driven design system, agentic-discovery SEO. The medium is the message — if my own site is sloppy, why trust me with yours?
STATUS Live (you're on it)
Show more →