Kia Mouriora Te Kaiwharawhara Community Website
Spent seven weeks in Wellington, New Zealand building the public website for Kia Mouriora Te Kaiwharawhara, a waterway restoration initiative led by Zealandia ecosanctuary. I was the software developer intern for the project, part of WPI's IQP program. My main contribution was the ArcGIS map: I built the map component using the arcgis-core SDK, pulled in published ESRI layers for bird sightings (iNaturalist), land cover, and waterway boundaries, and wired up layer toggling, a filter navigation bar, collapsible layer descriptions, and click popups with species information. I also wrote the Legend and LayerCollapse components, redesigned the homepage, and set up a Google Sheets CMS so the sponsor can update content without code changes. We were building on a Leaflet prototype from the previous year's team, rebuilt it in Next.js and TypeScript, ran three scrum sprints tracked in Jira, and closed with 18,000+ lines of code, tutorial videos, and a maintenance guide.
kaiwharawhara-wpi.vercel.app
- Next.js
- TypeScript
- ArcGIS SDK
- React
- Tailwind CSS
- Google Sheets
- Vercel
- Jira
IEEE WPI Student Branch Website
The website for WPI's IEEE student branch, which I maintain and develop as its elected Web Chair. I've held the role for two consecutive terms.
This Portfolio
The site you're reading. Built on Next.js 15 App Router with React 19, Tailwind CSS v4, Neon serverless Postgres, and NextAuth for Google sign-in. It also fetches a live transcript from a registrar-published CSV and manages an authenticated contact inbox.
- Next.js
- React 19
- TypeScript
- Tailwind v4
- Neon Postgres
- NextAuth
Deck Doctor: Business Site & Employee Portal
I founded Deck Doctor, a deck renovation business, and built and maintain its software. There's a customer-facing site to bring in leads and a separate employee portal where the team manages estimates, jobs, quotes, and hours.
TTF-Merger
FontForge-based Python utility for merging .ttf files. Multilingual font licensing was getting expensive for user-facing reports at my internship, so I wrote something to combine only the needed glyphs from each file into one.
PDF Report Generation Framework
I built a PDF generation framework during my software engineering internship at Hedberg Data Systems (Steelcase | HNI). It's a type-safe Kotlin DSL: describe the report structure in code, it generates the HTML around the company's data types, Playwright renders that in headless Chromium, and the PDF bytes go back to the frontend. These reports use the merged fonts that TTF-Merger produces.
- Kotlin
- DSL
- Playwright
- Chromium
- HTML/CSS