Making three city websites accessible by default
Led WCAG 2.1 AA initiatives across Granicus OpenCities sites, set reusable patterns and content structures, and trained 20+ department publishers on accessible content and metadata.
Frame / Portfolio — UX Engineer
I design the experience and ship the code. Twelve years turning business needs into accessible, usable products, from Figma to production.
Selected work
Led the migration of three city websites to one platform, including 400+ pages on the main site. Rebuilt the navigation and redesigned 12 department main pages around what residents come to do.
Read the case study →
Migrated 80+ pages and built 8+ reusable templates so residents can find who's in charge and what each team does.
Read the case study →
Redesigning a legal process page around one clear path: request online, know what happens next, and see the fees up front.
Read the case study →
Led WCAG 2.1 AA initiatives across Granicus OpenCities sites, set reusable patterns and content structures, and trained 20+ department publishers on accessible content and metadata.
Used Google Analytics and engagement data to rework homepage navigation, calls to action, and AI chatbot prompts so residents reach city services faster.
Helped integrate Medallia's design system across the product during a major rebrand: reusable React components, consistent visuals, and accessible interaction patterns.
Implemented WCAG and Section 508 standards across multiple SAP applications, earning VPAT certification through third-party audits.
How I work
Sit with stakeholders, find the real user need, and turn it into requirements a team can build against.
Wireframes to high-fidelity Figma, built on design-system thinking so the next screen is faster than the last.
Responsive, accessible front ends in React and TypeScript, then analytics to decide what to change next.
Experience
NowAug 2025 – Present
City of Tracy
Digital Communications Designer / Webmaster
Leading UX strategy and website management for three major municipal websites, with a fourth on the way.
Co-founderOngoing
Talyi
Co-founder
Building an AI-powered B2B SaaS product for automotive workforce management.
3 yr 8 moMay 2021 – Jan 2025
Medallia
Senior Front-End Engineer
5 yrMay 2016 – May 2021
SAP
UI/UX Engineer
2 yr 9 moAug 2013 – May 2016
The Myers-Briggs Company
Web Producer
Toolkit
UX/UI design, user flows, wireframing, prototyping, requirements gathering, information architecture
React, TypeScript, JavaScript, Next.js, HTML, CSS
Website management, CMS platforms, SEO, Google Analytics
WCAG 2.1 AA, Section 508, accessible design, VPAT
Figma, Adobe Creative Cloud, Sketch, Granicus OpenCities
Contact
Case study / Citywide redesign
Leading the migration of three city websites onto Granicus OpenCities, starting with the main city site: restructuring its navigation and redesigning every department's main page so residents land on tasks instead of mission statements.
One platform, three sites

The problem
The old site was organized like an org chart. The Departments menu listed fifteen entries in one long column, with divisions sitting beside the departments they belong to. Department pages opened with mission, vision, and benefits statements, and the things people actually came to do were scattered through paragraphs and sidebars.
The migration to a new platform was the chance to fix the structure, not just move the content.
Before / after · Navigation


Before / after · Department page


System
Parks is one example. Every department main page follows the same structure: a banner with the section menu, quick actions, explore cards, live content, contact, and staff. Residents learn the pattern once and it works everywhere on the site.
The same approach shaped the Public Records Requests page.

Case study / Civic web
Building the operations section of the department's new website so residents can find a bureau, a specialized unit, or the person in charge in two or three clicks.

The problem
A police department is organized as bureaus, divisions, and units. Residents don't think that way. They want to know who runs patrol, what the K9 team does, or how to reach someone without calling 911.
The job was to migrate the department's operations content into the new OpenCities site with a structure that matches the org chart for staff, but stays easy to scan for the public.
Before / after


Top tasks
Emergency and non-emergency contacts sit at the very top of every page. Right under the homepage hero, a "How Do I" tab puts the most common tasks first: filing a report, requesting records, animal services, alarm permits. News, events, and bureaus are one tab away.

Wayfinding
Every page carries a breadcrumb and an "In this section" menu. Units are indented under their bureau and the current page is highlighted, so the hierarchy is visible without a diagram.

Accountability
Bureau pages open with the commander's card: name, title, address, the non-emergency line, and a message link. That answers the most common reason someone lands on the page before they read a paragraph.

Navigation
Below a short overview, each bureau lists its units as a grid of large tiles. They're big touch targets on a phone and a quick scan on desktop.

Community
The K9 page introduces each dog with a photo card, then answers recurring public questions in an accordion FAQ, so the page stays short but complete.

Case study / Service design
Redesigning the City Clerk's records request page so residents know the fastest way to ask, what happens after they do, and what it will cost.

The problem
The old page opened with a paragraph of 1975 legislative history. The four ways to submit were one bulleted list, with the online portal given the same weight as mailing a letter. Fees and office hours were buried in long paragraphs, and nothing told people what would happen after they asked.
Every unclear step turns into a phone call or email to the Clerk's Office. The goal was a page that answers those questions before anyone has to ask.
Before / after


Hierarchy
The online portal is fastest for residents and for staff, so it gets the only button on the page and a "Fastest option" label. In-person, phone, and mail stay available as equal-weight cards right below, so nobody is shut out.

Expectations
A three-step sequence (you submit, the city reviews, you get notified) answers "now what?" before it becomes a follow-up call. The numbering is real here: it's the actual order of the process.

Process
I built the page first as a full HTML mockup to settle layout and content with the Clerk's Office. Then I ran an accessibility audit on it, and rebuilt the final version inside OpenCities using only the city's built-in CSS classes, so staff can maintain it without custom code.