
About me
I'm a product designer who studied Computer Science, so I care as much about how a thing gets built as how it looks.
Newmarket, OntarioRésumé (PDF) (opens in a new tab)EmailLinkedIn (opens in a new tab)GitHub (opens in a new tab)
Me
So my work doesn't sit in one box. At MyRain I learned how the weekly pricing chore really worked from the owner, then wrote a Python tool to catch the bad prices. At Konfer I made the reels and graphics for SpurHacks, and helped with the konfer.ca landing page.
Lately that's product design. I take my own projects from who they're for, through the screens, to production code, and my habits around design systems and accessibility come from there. CityRoots is the one to start with.
Experience
Apr 2026 to Present / Remote
Product Designer (Independent)
Side projects
Designed and built my own products, self-initiated, from who each one is for through the interface to production code.
What I did (4)
- Took web products from the problem and visual direction to production code, including CityRoots, Ferni Finance and Retrosnack Clothing.
- Created design systems with design tokens and reusable UI components in CSS, Tailwind CSS and React.
- Designed bilingual interfaces, and pixel art with a fixed palette for Sam's Little World.
- Built responsive layouts, checked WCAG AA contrast with axe, and fixed what the audits found.
Apr 2026 to Aug 2026 / Remote
Software Developer (Volunteer)
MyRain Sprinkler Systems
Worked directly with the business owner on a manual weekly pricing workflow and built a Python integration between a supplier portal and Shopify.
What I did (5)
- Gathered requirements and identified operational risks directly with the owner.
- Developed and deployed a Python integration connecting a third-party supplier portal with Shopify, processing about 1,000 product SKUs through Playwright and Shopify GraphQL APIs.
- Investigated data inconsistencies and integration issues, adding validation, exception handling and safeguards against incorrect production updates.
- Built structured logging, execution reports, test-mode verification and a pytest suite to monitor scheduled runs and speed up investigation.
- Scheduled the automation through GitHub Actions and documented the workflow with step-by-step operating procedures for non-technical staff.
Dec 2024 to Dec 2025 / Hybrid
Marketing Coordinator (Volunteer)
Konfer Inc.
Made the graphics and social content for SpurHacks, and helped with the konfer.ca landing page.
What I did (6)
- Created SpurHacks story and feed graphics in Figma with the team's graphic designer, writing copy and editing layouts in the team's templates.
- Produced 23 Instagram reels with 993K+ total views, and planned content across Instagram, TikTok, LinkedIn, Facebook and Twitter/X.
- Supported the konfer.ca landing page, contributing to front-end content integration and layout consistency.
- Helped produce the Microsoft PowerPoint presentation delivered on stage at SpurHacks.
- Worked with sponsors, partners and a 100+ person volunteer team, and kept shared documentation in Notion.
- Supported registration and ticketing records across 1,174 issued tickets.
May 2022 to Oct 2022 / Waterloo, ON
Customer Service Associate
Shoppers Drug Mart
Ran the point-of-sale and helped customers with whatever came up.
Oct 2021 to Apr 2024 / Waterloo, ON
Full Stack Developer (Volunteer)
Laurier Computing Society
Built a Django member registration and management app with role-based access.
What I did (4)
- Developed the app with Python and SQL, including role-based access controls.
- Reproduced bugs and tracked their resolution through GitHub Issues.
- Helped deploy on Heroku and contributed to a GitHub Actions CI/CD workflow.
- Contributed to a design system in Figma for UI consistency across platforms, and designed and prototyped marketing materials in Figma.
Skills, by what I use them for
Making the thing
- Python
- TypeScript
- JavaScript
- C
- Bash
- Linux/POSIX
- Django
- Next.js
- React
Making it run without me
- Playwright
- GitHub Actions
- CI/CD
- REST and GraphQL APIs
- Excel/VBA
- pytest
Storing it and reading it
- SQL
- PostgreSQL
- Supabase
- Firebase
- Data visualization
Habits that keep it working
- Debugging
- Requirements gathering
- Testing
- Technical documentation
- Monitoring and logging
- Git/GitHub
- Notion
Making it look and work right
- Figma
- Adobe Photoshop
- Adobe Illustrator
- Affinity (learning)
- Canva
- Product design
- Interaction design
- Graphic design
- Production design
- Design systems
- Design tokens
- Responsive design
- Accessibility (WCAG AA)
- CSS
- Tailwind CSS
Getting it across
- Short-form video
- Adobe Premiere Pro
- CapCut
- Microsoft PowerPoint
Education
Wilfrid Laurier University
Bachelor of Science
Major in Honours Computer Science
September 2020 to April 2024 / Waterloo, ON
Yes, Learn 280 Characters or Less is a real course, on writing for social media. And yes, I took Windows Application Programming before building a site that looks like this.