projects

Projects I'm currently hacking on and client work I've shipped.

mtlarchives

Semantic search for Montreal's historical photo archives

Started as an Instagram account sharing old Montreal photos from the city's Open Data portal. Now grown to ~3k followers and evolved into a full semantic search platform for ~15,000 historical images (1870s-1990s).

Built a complete data pipeline and search API with sub-50ms response times globally:

  • Semantic search using BGE text embeddings on Cloudflare Vectorize
  • Visual similarity search with CLIP embeddings (in development)
  • ETL pipeline: metadata cleaning, date normalization, deduplication, geocoding
  • VLM auto-captioning and OCR for data enrichment
  • Next.js frontend with Mapbox integration for geospatial browsing

Stack: Cloudflare Workers, D1, Vectorize, R2, Workers AI, Next.js, TypeScript, Python

Diane Party Rentals

Custom ERP for event rental business

Replaced manual paper-based workflows with a custom ERP system featuring automated quoting, real-time inventory locking (optimistic concurrency), and Stripe payment processing. The system handles the full rental lifecycle from quote to return. Built with Next.js, TypeScript, and PostgreSQL.

Impact: Reduced quote turnaround from 24h to <2h

visit site

Ballerz Football Academy

Scheduling and payout platform for youth sports

A multi-tenant platform featuring a landing page with dedicated admin and player portals. Staff can manage players, sessions, bookings, availability, and process payments through an admin interface. Players access their bookings, check trainer availability, and track training progress in their personalized portal. Built with Next.js, TypeScript, Tailwind CSS, and Cal.com for scheduling. Deployed on Vercel with Supabase.

Impact: Handling 100+ monthly sessions, eliminated manual scheduling overhead

visit site