Project Files
Independent projects I can show publicly. Most of my engineering happens in production applications I can't publish, so treat what's below as a sample of how I work rather than the ceiling of what I build.
Professional work
Since 2022 I've worked as a software engineer, currently for a large enterprise technology organization. That work is production React, Next.js, and TypeScript against an established design system: Material UI theming and component variants, GraphQL and REST integrations, Azure and Cosmos DB, headless CMS content, SSR and CSR tradeoffs, dependency and framework upgrades, accessibility and focus behavior, and CodeQL findings. It isn't public, which is why it isn't listed below.
How I build
These start as a React or Next.js front end and grow a Node, Express, and PostgreSQL back end when the data calls for it. I reach for TypeScript on anything large enough to earn it, deploy on Vercel, and treat accessibility as part of building rather than a pass at the end: labeled controls, working keyboard navigation, and color that clears WCAG contrast in both light and dark modes.
Where I'm heading
Two directions, both built on the same foundation rather than replacing it: Shopify and e-commerce development, and AI integration work, meaning LLM APIs connected to real workflows with the architecture and access controls that implies.
The projects
Easy File Converter
A macOS desktop app for converting and combining video files, built with Electron and FFmpeg. The default profile re-encodes to H.265 to roughly halve the file size, and both shortcuts (stream copy and VideoToolbox hardware encoding) are scoped so they cannot quietly undercut that.
Interview Drill
A spaced-repetition trainer for frontend interview questions. Answer out loud, rate your recall, and the FSRS algorithm brings each question back on the day you are about to forget it. Next.js and TypeScript, with review history kept in the browser. No account and no backend. The repository also carries a Claude-powered generation route, rate-limited and built so the bundled bank always serves every question, so the live demo depends on no key and no third-party host.
Water My Plants
A full-stack plant-care scheduler: React 19 and Vite on the front end, Express and PostgreSQL behind it, with token auth so each account manages its own plants.
Secret Recipes
Paste a recipe in any shape and it comes back as structured ingredients (quantity, unit, item, preparation), which makes scaling, unit conversion and a merged shopping list fall out of the same data. The parser will never catch every way a person writes an ingredient, and the app is designed around that rather than against it: the original line is never overwritten, so a wrong reading is visible and correctable instead of silently wrong.
Simple Grocery List
A demo grocery list app built with Next.js and TypeScript that runs entirely in the browser: color-coded lists, tag filtering by aisle, and barcode scanning that fills in product names. No account and no backend: lists live in the browser tab, and the sign-in screen is a UI demonstration.
Shopify Collection Grid
A custom collection grid for a Shopify theme, built on my own development store. Dawn ships one rectangular product card shared across the collection page, search, the homepage, and related products. This replaces it on a single collection with a notched-silhouette card, a staggered four-column layout, and a hover reveal, without modifying a single base theme file and without losing the faceted filtering, sorting, or pagination the theme already had. Liquid and CSS only, no JavaScript.