unbearable lightness of leveraging our robot overlords

unbearable lightness of leveraging our robot overlords

TL;DR FOR HIRING MANAGERS

I’m a senior product designer who ships code. At Coveo, I became the first designer to merge production PRs, built 12,000+ lines of interactive prototypes connected to live Commerce APIs, and authored reusable AI agent skills for the engineering org.


Outside work, I’ve built and deployed 8 apps and a Chrome extension from scratch — spanning Next.js, React, Python/Flask, Chrome Extensions, Cloudflare Workers, WebRTC, and custom WebGL shaders. I don’t just hand off designs — I understand the medium I design for.

While we can get into a very in-depth talk about AI and its implications, I wanted to show what sort of practical use cases I had for it — a little bit for the hiring managers but more so to showcase tangible examples of what's possible when a designer is willing to get their hands dirty with code.

@WORK: COVEO

Production PRs — First Designer to Ship Code

Description: Merged PRs into Coveo's production monorepo (admin-ui), touching 22+ files across locale strings, component tests, and E2E tests. What started as fixing inconsistent labels ("Modify" → "Edit", "Reset" → "Clear") turned into a bigger realization: E2E tests are basically automated design QA — every UI label is a source of truth that the entire test suite validates against. Nobody can ship inconsistent copy because the tests catch it. 5 code review approvals, commit signing, branch syncing — the full engineering workflow.

VSCode · TypeScript · React · E2E Tests · Git PR Workflow
IntentState — Conversational Product Discovery

A 10k+ line interactive vision prototype exploring conversational commerce patterns. Features a dual-theme system, a unified ProductGrid component as single source of truth for all product displays, contextual awareness with browsing history, rich hover interactions, and Component Browser (Cmd+K) that catalogs every pattern with props and sample data streams. Backed by three design documents (design system architecture, design values with exact CSS tokens, and component terminology). Originally prototyped from Figma using Figma Make, then extended and fully migrated to Mantine + CSS Modules. Presented to leadership in a sprint review.

React · Mantine 7 · CSS Modules · Vite · Vercel · 58 files
Real-Data Search Prototype — Intent Classification

Description: A 2,085-line search prototype that classifies user queries by intent and pulls real products from Coveo's Commerce Search APIs — real prices, real images, real inventory. Features client-side intent detection, conversation history with follow-up questions, and streaming LLM responses. Built using Coveo's actual design system components (Plasma Mantine). The point: stakeholders see a real experience, not a mockup, and that changes the conversation entirely.

React · TypeScript · Vite · Coveo Commerce Search API · Plasma Mantine · OpenAI
AI Agent Skills — coveo-ai-cookbook

Authored 2 reusable AI agent skills for Coveo's org-wide AI cookbook — a cross-team repository used by engineers and designers across the company. The first skill (design-review) orchestrates Figma MCP, Playwright, and Atlassian MCP to compare Figma designs against live UI or run heuristic audits against Coveo's design principles, then optionally files Jira tickets. The second skill (user-research-synthesis) takes research transcripts and produces structured synthesis using established frameworks (Erika Hall, SVPG risk lens, Mom Test signal checks). Both merged or pushed to the org-wide repo.

MCP (Playwright + Figma + Atlassian) · Markdown · SKILL.md (500+ lines each)
Pattine — Pattern Library

An interactive pattern library with searchable database, tagging, commenting, and ratings — living design documentation powered by Supabase and deployed via Figma Make

one more thing

Also: ran Coveo's production Shopify Hydrogen storefront and AI agent evaluation framework (agent-smith) locally to design in context rather than from mockups. Selected to the company's AI Enablement Committee based on this body of work.

PERSONAL PROJECTS

Otito

A real-time multiplayer party game where players communicate secret numbers through creative clues. Originally built on Upstash Redis with 10 API routes and a WebSocket layer — then migrated to peer-to-peer using raw WebRTC (no PeerJS, no wrapper libraries). The server is now only used for a ~5-second signaling handshake; after that, all game state flows directly browser-to-browser via DataChannels. The migration eliminated the database dependency entirely and cut 347 lines of code. Each player also gets one of 8 animated card backs rendered with custom WebGL fragment shaders (fire, water, ice, lava, cosmic, lightning, nature, particle).

Next.js 16 · React 19 · TypeScript · WebRTC (raw) · Custom GLSL Shaders · Vercel
BoardLens

A Chrome extension that overlays BoardGameGeek ratings on board game shop pages. Rich hover cards with player count, playtime, weight, and mechanics. Backed by a 174k game database on Cloudflare D1, with a generic detection engine that automatically works on any Shopify, WooCommerce, Magento, PrestaShop, or BigCommerce store — not just hardcoded sites. Prepared for Chrome Web Store submission.

Helix
Helix

A privacy-first genomics analysis tool. Analyzes 350+ clinically significant genetic variants across 15 health categories — cardiovascular, pharmacogenomics, nutrient metabolism, carrier screening, and more. All processing runs locally: zero network calls, zero cloud services. DNA data never leaves your machine. Generates PDF reports with evidence citations from PharmGKB, ClinVar, and GWAS Catalog. Supports 23andMe, AncestryDNA, MyHeritage, FamilyTreeDNA, and LivingDNA.

Python · Flask · ReportLab · Custom SNP Database (JSON)
Cleanboxd

Analyze your Letterboxd watchlist for ethical concerns about cast and crew. Multi-source controversy detection across 5 data sources (Epstein docs, WikiData, NewsAPI, The Guardian, NYT) with a weighted scoring algorithm that factors issue severity, source reliability, and role impact into a 0–100 composite score with letter grades.

Next.js 16 · React 19 · TypeScript · Prisma + SQLite · Redis · TMDb API Evolution: (none)
 BGHelper

Digital companion for party board games — generates random prompts for ito (350+ categories), A Fake Artist Goes to New York (100+ prompts), and Just One (300+ words). Features a 3D IKEA Kallax shelf UI where game boxes sit in cubes with edge highlights, texture overlays, and a neon sign logo in dark mode. Full E2E test suite with Playwright.

Next.js 14 · React 19 · TypeScript · Tailwind CSS 4 · shadcn/ui · Playwright
DarBudget desktop
DarBudget mobile
Previously BudgetBuddy (v0) → W4th it (Lovable + Supabase) → DarBudget (full rewrite)

A personal finance app with two distinct interfaces: a full desktop layout for managing budget categories, CSV imports, and monthly overviews — and a dedicated "Simple Mobile Mode" purpose-built for quick on-the-go expense entry (not just responsive, a separate UX). Google OAuth via Supabase, Row-Level Security on PostgreSQL, and real-time budget tracking. The evolution of this project tells its own story: started on v0 with localStorage, migrated to Lovable for Supabase, then fully rewritten.

React 18 · Tailwind CSS · Supabase (PostgreSQL + RLS + Auth) · PapaParse · Vercel
Emoji Canvas

A creative toy to test v0's limits — paint a digital canvas with emojis. Uses spatial grid rendering for smooth interaction with thousands of emojis simultaneously. Color-based emoji filtering, shuffle mode, and dark mode.

Next.js 16 · React 19 · TypeScript · Tailwind CSS · shadcn/ui