Senior Software Engineer · Greater Salt Lake Area
Hi, I'm Zoë.
I'm a self-taught software engineer with over 12 years of experience building for the web. I enjoy finding ways to make development easier for my team, whether that means creating shared components, improving our processes, or helping someone work through an unfamiliar problem.
Much of my recent work has involved design systems, framework migrations, and exploring how AI can fit into our development process.
Now: acting as technical lead on a new product at RedX, where I'm helping develop both the software and the processes our team uses to build it.
- 12+ yrsbuilding for the web
- 63components in the design system I created
- 10 appsmoved to Vue 3 on a live platform
- 1–2 daysclient setup with a tool I built, down from 3+ weeks
Selected work
These projects represent some of the ways I've helped our team develop and maintain software. They include shared tools, updates to existing applications, and processes that support how we work together. Open a card for the details.
Migrating a live micro-frontend platform to Vue 3
Ten Vue 2 apps sharing one page, upgraded without pausing feature work.
Read the case study
The situation
RedX's lead-generation platform is about ten Vue 2 apps that share one page through single-spa micro-frontends. Vue 2 had reached end of life, and product work couldn't stop while we upgraded.
What I did
- Rebuilt the design system on Vue 3 first, so every app had something to move onto.
- Upgraded the main application in two waves, then started the Vue 3 upgrade in eight of the micro-frontends.
- Tracked down a Safari-only failure caused by every app bundling its own copy of Vue, and moved the platform to one shared copy of Vue, Vue Router and Vuex.
- Documented each issue we ran into. The list grew to 68 entries and became the team's migration guide.
- Used AI agents for much of the code conversion. I reviewed their changes and wrote QA scripts so non-developers could test each app against production.
Outcome
Once the merge strategies were created the platform was live on Vue 3 in about one month, with no pause in feature work.
A large part of this work was making what I learned useful to the next migration. I documented the issues I encountered and how I resolved them so we had a starting point when updating further applications.
Five years of one design system
The shared Vue component library I started in 2021. All ten of our frontends use it.
Read the case study
The situation
When I joined RedX, each application had its own UI components. I saw an opportunity to create a shared library that we could maintain together and use across our applications.
What I did
- Started the shared Vue component library and its Storybook docs two months after joining, and have maintained it since.
- Grew it to 63 documented components, including dialogs, date pickers, a rich-text editor, and tree lists.
- In 2026, rebuilt it on Vue 3 with an updated visual style and better keyboard, focus, and contrast support, and wrote a migration guide for the team.
Prequel
This is my second design system. The first was a style guide I led at StateFoodSafety.
Maintaining the library has meant continuing to adapt it as our applications change. Along with building components, I've worked on documentation and conventions to help other developers understand how to use and contribute to it.
A review and QA process for AI-assisted development
Most of my team builds with AI, so I designed how that code gets checked before it's merged.
Read the case study
The situation
On a new product at RedX, members of our engineering, product, and design teams were building with their own AI assistants. I worked on creating a shared process for reviewing and testing those changes before they became part of the product.
What I did
- Wrote shared instructions for separate AI roles (builder, reviewer, QA, and others) that the whole team uses.
- Code review starts by checking that the change does what was asked. QA runs the end-to-end tests and reports results against a specific commit.
- Prototypes are rebuilt from their design and intent, not copied into the product.
- Proposed a seven-step process from idea to production, with sign-off from product, design, and backend, and a log of product decisions.
- Made agent work faster and cheaper by running agents in parallel and keeping each one small.
Outcome
As acting technical lead, I shipped three major features in the first month. The shared instructions and review process are now part of how our team develops the product.
AI research and fixes for new tickets
An internal tool I built on my own that my team now uses.
Read the case study
The situation
I built an internal tool to help with the research involved in picking up a new ticket. It looks through our codebases and provides an initial assessment that a developer can review before deciding how to move forward.
What I built
- When a ticket is created, an AI agent researches it across our codebases without changing anything, and comments with the likely size, steps to reproduce, and a suggested fix.
- Once a developer approves, an agent makes the fix, runs the checks, and opens a merge request.
- Replies on the ticket can send it back for more research.
- Added limits on what it can run, timeouts, and a required approval before any code changes.
Outcome
It researched about 200 tickets in its first month and is now used by the team. Developers can ask it to investigate further through replies on the ticket, or approve it to work on a fix and open a merge request.
Also built along the way
- The platform's global navigation and shared Vue library
- Five micro-frontends, from mail merge to new-user onboarding
- A React-to-Vue rewrite of the account and billing app
- Moved features out of a legacy AngularJS app
- White-label theming, with high-contrast support
- An AI chat and map onboarding flow with LLM cost caps
- A CSV contact import with AI column matching
- Cut local setup for new developers to 1–2 hours
- At StateFoodSafety: a self-serve client-portal tool that cut setup from 3+ weeks to 1–2 days
Experience
- Jun 2021 — Present
RedX
Senior Software Engineer
I started on the frontend platform and moved into full-stack and technical-lead work. I created and maintain our design system, built new micro-frontends, and led the Vue 3 migration. I've also built backend features in Node and NestJS, and I'm acting as technical lead on a new product.
- Feb 2014 — May 2021
AboveTraining(StateFoodSafety)
Senior Web Developer (Full Stack)
Full-stack development on an online food-safety training platform. I advocated for code reviews and testing, helped move us to Vue, led our style guide, and trained employees in our technologies and processes.
About
My early programming projects were simple video games. Since then, I've explored game development, information security, and full-stack web development. Being self-taught has given me plenty of practice working through unfamiliar problems and figuring out what I need to learn along the way.
I like understanding how people work with the software I help build. That includes the people using it and the developers maintaining it. Asking questions, sharing what I've learned, and being open to suggestions are all part of how I approach that work.
Away from the keyboard:
- Board games
- Hiking Utah's state and national parks
- Baking
Anyone can make the simple complicated. Creativity is making the complicated simple.
Say hello
Email is the best way to reach me.
Based in the Greater Salt Lake Area, Utah.