Projects
You are here 😊 A personal site to showcase my work and projects. Built with React and TypeScript, deployed on Vercel with analytics and automatic deployments on every push to main.

Inspired by the annoyance of continuing to dismiss cookie banners, Cookie Refuser is a cross-platform browser extension that automatically denies all cookie consent banners. Supports Chrome, Firefox, and Safari. Uses a three-tier detection strategy — known platform selectors, banner container scanning, and a broad fallback — along with MutationObserver for late-loading popups. Covers major consent platforms (OneTrust, Cookiebot, Quantcast, Didomi, and more) across 9 languages. Built with Manifest V3. Published on the Chrome Web Store, Firefox Add-ons, and the App Store.
A mobile app that gamifies rejection exposure therapy — users log rejections with titles, descriptions, dates, and photos while tracking progress toward 1,000 total rejections. Built with Supabase for auth and data, comprehensive unit and E2E testing via Maestro, and a CI/CD pipeline via EAS Build. Reframes failure as forward momentum.
A mintable ERC-20 token (QTPI) built with Hardhat and OpenZeppelin, deployed on Ethereum's Sepolia testnet. Implements peer-to-peer transfers and admin minting on top of a 1 million token initial supply. Leverages OpenZeppelin's battle-tested contract libraries for security. The deployed contract is publicly verifiable on-chain and importable directly into MetaMask.
A React Native mobile app serving as a complete reference guide for Little Alchemy 2 — featuring a searchable catalog of 720+ elements, crafting recipe lookup, and reverse ingredient search. Includes an automated web scraper that pulls element data and icons directly from the game's wiki to keep the database current.