About
I’ve been shipping production websites for more than six years. At Lull, that meant everything from campaign landing pages to a full Shopify migration. Most recently, I refactored a Vue customer portal for RYZE Superfoods. I care about pages that load fast, work for everyone, and are easy for the next developer to change.
Changelog
A fast, accessible static portfolio built with Astro and deployed by GitHub Actions, written as a changelog.
- Astro
- TypeScript
- CSS
- Vitest
- Playwright
- GitHub Actions
- GitHub Pages
- Claude Code
Details: This site
- My role
- Sole developer, working with Claude Code as an AI pair programmer.
- Notes
- Every push runs unit, browser, accessibility (axe) and Lighthouse tests. If any of them fail, the site doesn’t deploy.
- The repo and its history are public. See the link at the bottom of the page.
v4.1: AWS Certified Cloud Practitioner
Apr 2026
Details: AWS Certified Cloud Practitioner
Earned the AWS Certified Cloud Practitioner certification.
Verify on Credly↗Refactored a Recharge subscription portal built in Vue and embedded in a Shopify store, where customers manage subscriptions, delivery schedules and orders.
- Vue 3
- Vue 2
- JavaScript
- TypeScript
- Recharge
- Shopify
Details: RYZE Superfoods: customer portal
- Shipped
- Moved code written in mixed Vue 2 and Vue 3 styles toward consistent Vue 3.
- Removed duplicated logic and split large pieces into smaller, reusable ones.
- My role
- Joined an existing codebase. Changes went through peer review before going to production.
- Notes
- Some exposure to Webflow: small edits to existing pages and experiments.
v3.0: SNHU: B.S. Game Programming & Development
Jul 2024 – Aug 2025
A bachelor’s degree in game programming, with C++ and Blueprint projects in Unreal Engine. Shown here: four solo prototypes, from a light-based 2D platformer to a first-person arena shooter.
- Unreal Engine
- C++
- Blueprints
- Paper2D
- Behavior Trees
Details: SNHU: B.S. Game Programming & Development
- Shipped
- Sightbound: a 2D platformer prototype built around a light mechanic that limits what the player can see, using a custom glowing light-mask material.
- Survival Game: a 3D survival prototype with a cozy look, rebuilt in Blueprints from a C++ class project to see how far I could get without tutorials.
- First Person Arena Shooter: AI enemies in an enclosed arena, with a scoreboard and item pickups. My first Unreal project.
- Energy Quest: a 2.5D side-scrolling time challenge where the player collects energy to face a final boss.
- My role
- The four prototypes shown are solo projects, each built in a short sprint.
- Notes
- Coursework across the program included C++ projects in Unreal Engine. The four prototypes shown are built mostly with Blueprints.
- Some art comes from itch.io asset packs, credited on each project.
v2.4: Lull: Shopify migration
2023
Recreated lull.com on Shopify, replacing a custom Node.js site, with sections the marketing team could edit without a developer.
- Shopify
- Liquid
- Dawn
- JSON section schema
- GitHub
Details: Lull: Shopify migration
- Shipped
- Recreated lull.com on Shopify, replacing a custom Node.js (Koa) site.
- Section and block settings so non-developers could edit content.
- My role
- Main developer on the theme files. Teammates helped build some sections, and a few complex sections were outsourced near the end.
- Notes
- Extended from the Dawn theme, not from scratch.
v2.3: Lull: Nuxt landing pages
2020–2023
Rebuilt landing pages in a Vue/Nuxt static-site project so we could run experiments against the mirror landing pages on the legacy site.
- Vue
- Nuxt
- Sass
- Static site generation
Details: Lull: Nuxt landing pages
- Shipped
- Rebuilt landing pages inside a Vue/Nuxt static-site project so they could be used in experiments.
- Kept performance a priority, so the pages could be compared fairly against the same pages on the old site.
- My role
- A senior developer set up the project. I worked inside it, rebuilding landing pages.
v2.2: Lull: A/B experiments
2018–2024
Details: Lull: A/B experiments
Set up A/B experiments from specs and built the variant code: promo sections, landing pages and layout changes.
- Google Optimize
- Optimizely
- JavaScript
- CSS
- Sass
- Bootstrap
- My role
- I configured the experiments and built the variant code.
- Notes
- The testing tools changed several times over the years.
v2.1: Lull: day-to-day releases
2018–2024
Promotions, sale campaigns and product launches: most of my regular work, shipped through pull requests, preview environments and QA.
- Bootstrap
- Sass
- Nunjucks
- Node.js
- Koa
- Docker
- Shopify
- Liquid
- Git
- GitHub
Details: Lull: day-to-day releases
- Shipped
- New product sections and promotional sections.
- Seasonal changes across the site.
- Reusable components and processes where they paid off, such as a repeatable setup for rotating sales.
- Page speed optimizations.
- Code cleanup to make the structure easier to work in.
- My role
- Front-end developer on the WebOps/Engineering team, building and maintaining features and campaigns week to week.
- Notes
- Each change went through a pull request, review in a preview environment, QA, deploy and a retest in production.
v2.0: Lull: joined as a Junior Front-End Developer
Oct 2018
Details: Lull: joined as a Junior Front-End Developer
Joined the front-end team at Lull, a direct-to-consumer mattress and bedding company. Promoted to Front-End Developer after about two years, and stayed through May 2024.
- HTML
- CSS
- Sass
- JavaScript
- jQuery
- Bootstrap
- Nunjucks
- Git
Details: Freelance
Built a few WordPress sites with a designer, turning their designs into working pages, plus small content and CSS edits on Shopify and Kentico sites.
- WordPress
- Shopify
- Kentico
- CSS
- Bootstrap