I'm a web developer and former teacher in Portland, Oregon. After years in the classroom and a Master of Education from Portland State, I moved into software, but I kept the part of teaching I cared about most: taking something complex and making it clear, usable, and genuinely human.
Today I build websites and digital archives for cultural, heritage, and community organizations. A community's history, collections, and stories need to live online in a way that's searchable, welcoming, and easy for a non-technical team to manage. My favorite recent project, the Albina Community Archive, does exactly that: a searchable digital home for the cultural legacy of Portland's historic Albina neighborhood.
I work in React, Next.js, Ruby on Rails, and Sanity, with a soft spot for maps and place-based storytelling. But the tooling matters less than the result; a site your visitors actually enjoy using and your team can actually run. If you've got a collection, an archive, or a story that deserves a better home online, I'd love to help.

A searchable digital archive preserving the cultural legacy of Portland's historic Albina neighborhood.
The challenge. The Albina Music Trust holds a rich collection of photographs, recordings, oral histories, and documents tied to the Black community of Portland's Albina neighborhood. That history needed a public home online where anyone could explore the collection, and where the organization could keep adding to it without touching code.
What I built. A searchable, browsable digital archive that organizes the collection into donor collections, decades, locations, people, tags and makes it easy for visitors to discover material across the archive. Just as important, I set it up so the Trust's team can manage and grow the archive themselves through a bespoke CMS.
Why it matters. The archive turned scattered private collections into a public resource for researchers, families, and the community. A neighborhood's systemically buried history is now daylighted and accessible.
Stack. React • Next.js • Ruby on Rails. Live at https://www.albinacommunityarchive.org/
Ruby on Rails, React, Next.js

A clean, content-managed website for a creative professional.
The challenge. Sarita needed a professional web presence that looked polished and that her team could update independently.
What I built. A custom site with an editable content structure via Sanity so the content stays current without code changes. Fast, responsive, and built to reflect her brand.
Stack. Next.js • Sanity • Tailwind • Typescript. Live at https://www.saritaposadainteriors.com/
Next.js, Sanity, TypeScript

A portfolio site built for clarity and easy self-management.
The challenge. Ceci needed a portfolio that presented her work well and is simple to maintain.
What I built. A responsive, content-managed site with [a clean editorial layout], structured so updates are quick and painless for a non-technical owner.
Stack. Next.js • Sanity • Tailwind. Live at https://www.cecidoes.work/
Next.js, Sanity, Tailwind