0 years
to build a city
Woven by Toyota · 2023 – Present
Details
0 years
to build a city
0
initial residents
0
planned residents
UX across the entire product lifecycle — problem framing, research, flows, prototyping, validation, and developer handoff. Focused on clarity and measurable outcomes.
Designing within (and actively improving) a large-scale design system — refining components, interaction patterns, and documentation to keep the product consistent and scalable.
Finding friction points and turning them into incremental, measurable improvements. Prioritizing step-by-step iteration over big rewrites, so quality compounds over time.
Cohesive experiences across web, mobile, enterprise platforms, and connected devices (React, Flutter, ServiceNow) — including AI and Slack-integrated workflows.
01Define product behavior, not only UI
02Cover edge cases, error states and empty states
03Contribute to PRDs and point out missing logic
04Help product managers compare product options
05Discuss limitations and implementation options directly with engineers
06Protect important UX decisions when simplification would damage the experience
07Find missing product logic
08Check technical feasibility early
09Balance UX, cost, and implementation effort
10Turn complex permissions into clear flows
11Create realistic working prototypes
12Prototype before development
13Use code to test interaction ideas
14Build reusable patterns and components
15Define design-system states and exceptions
16Work across web and mobile
17Prepare prototypes for user research
18Help researchers define what to test
19Turn findings into product changes
20Design bilingual product experiences
21Check accessibility behavior
22Design CRM and enterprise workflows
23Learn and reuse technical libraries
24And more
App features Everyday city essentials
Access to latest information. Stay up-to-date with real-time news and notifications from around the city.
Connect through events & projects. Discover a space where weavers and inventors meet — online and in person — to build the future of the city together.
Everyday life in one place. One app for payments, household services, and support from the city team.
Problem Core product gaps
The app had no complete in-city payment flow, no native chat for resident-to-team communication, no established account management page, unresolved accessibility issues across key journeys, and no dedicated web/power-user experience for higher-frequency workflows.
Result Measurable gains
We improved trust-critical flows, with top-up completion rising from 75% to 90%, payment support tickets dropping by roughly one third, and 26 of 40 accessibility issues resolved across key journeys.
Challenge: Designing a high-trust money transfer flow under strict security, system, and real-world constraints.
Redesigned how payments are structured and used, improving card, balance, and transaction history views while introducing new send and top-up flows. Defined the end-to-end experience, including system states, edge cases, and error handling, in close collaboration with engineering and payments teams.
Send flow
Biometric confirmation
Push notifications
Payment details
In finance-related flows, small interaction details have a big impact on how confident people feel.
I focused on a few simple principles that make it easier to see what’s happening, recover from mistakes, and trust that every change to the balance is intentional.
Explicitly surfaced who you’re sending to, from which balance, and the exact amount in a single, high-contrast summary screen.
Defined UX for insufficient balance, network timeouts, duplicated taps, and server-side validation errors.
After a successful transfer, both sender and receiver see a consistent pattern: updated balance, a confirmation state, and a history entry so they can verify what happened later.
Users first pick the recipient and amount, then see a clear “final check” state before committing.
Worked with engineers to keep failure messages specific and actionable: “Your balance is now X; you need at least Y” instead of “Something went wrong.”
Real-time balance updates help users connect their action with the exact change, reducing uncertainty about whether the transaction went through.
Microinteractions can make financial flows feel more empathetic.
By animating the numbers changing, we gave clear visual confirmation of the action. It reduces stress by removing doubt and showing right away that the money was added, making the app feel more responsive and humane.
After the redesign, we saw top-up completion rise from about 75% to just under 90%, and the typical time to finish a top-up dropped from a little under 40 seconds to around 25 seconds. Payment-related support tickets about top-ups went down by roughly a third, which matched what we heard in feedback sessions: people described the new flow as “safer,” “more predictable,” and said it was easier to see exactly what was happening to their balance at each step.
One app, one city — but very different people need to see and do different things.
The challenge was to design a single interaction model where different groups could share the same features, while seeing role-appropriate information and actions that still felt like one coherent product.
I designed the interaction model for role-based access in the Woven City App. I focused on how user roles affect the core city surfaces — news feed, projects, events, and communication — and translated high-level policy and operational requirements into consistent UI behavior.
Defined what each role could see and do across shared product surfaces.
Created consistent patterns for targeted content, conversations, and notifications.
Worked with product, engineering, and city teams to turn policy into predictable behavior.
Built a model that could absorb new users, roles, and features without fragmenting the app.
Within two quarters, the multi-role access model was in daily use across city communication. Visibility, chats, and targeted notifications all relied on the same access patterns. Stakeholders said messages were “reaching the right people” without feeling spammy, and engagement grew without splitting the Woven City App into separate products.
Challenge: Creating a reliable chat experience in the Woven City App that seamlessly integrates private conversations with Official Account interactions.
The goal was to ensure users could easily grasp their current context, compose and send messages, navigate various conversation types, and recover smoothly when things didn’t go as planned.
Contributed to the zero-to-one design and refinement of mobile chat in close collaboration with Product, Engineering, UX Research, and QA.
I worked across conversation structure, Official Account chat, message composition, sending feedback, loading behavior, error recovery, and conversation continuity.
Opening a chat and understanding the conversation context, including the distinction between private conversations and Official Account chats.
Entering text and preparing messages within the chat experience.
Defining clear feedback for sending, loading, failed actions, and retry behavior.
Keeping rooms and message history understandable when users returned to a conversation or when content was still loading.
In chat experiences, small interaction details have a major impact on whether communication feels reliable.
I focused on making it clear which conversation the user was in, what action had taken place, and what they could do next.
Helped distinguish private conversations from Official Account chats, giving each type a clearer place within the overall chat experience.
Defined behavior for loading, sending, failed actions, delayed responses, repeated taps, and unavailable services.
Supported a dedicated conversation experience for Official Accounts, allowing users to interact with organizations or services through the same familiar chat environment while maintaining a clear distinction from private conversations.
Refined room and message behavior so users could return to ongoing conversations without losing context, especially when content was loading or the system was recovering from an issue.
Created reusable patterns for composing, sending, receiving feedback, and recovering from errors across different chat contexts.
Worked with engineers to identify less common scenarios, including interrupted requests, duplicate actions, delayed responses, and messages that could not be sent.
The work helped establish a clearer mobile chat foundation for the Woven City App, supporting both private conversations and Official Account interactions.
It introduced more consistent patterns for conversation context, message composition, sending feedback, loading, and failure recovery. The resulting experience made chat easier to understand while providing a foundation that could support additional conversation types and future product development.
As the product grew, accessibility decisions were made incrementally across different features. Over time, this led to unclear labels, uneven reading order, and interactions that did not always behave predictably for screen reader users. Core flows worked visually, but for VoiceOver users they could feel noisy, repetitive, or hard to navigate.
I contributed to the UX side of an accessibility pass, working closely with accessibility specialists and engineers. Together, we reviewed a 40-issue audit, aligned priorities around real user impact, and translated the findings into concrete design decisions.
Clarified controls and actions through consistent, intent-based language.
Reworked screen structure so content follows a logical sequence.
Simplified interactions and removed repetitive, low-value announcements.
Applied targeted contrast, focus, and hit-target improvements.
Real user feedback exposed recurring problems: missing labels, repetitive navigation, disrupted reading flow, and poorly described critical actions. Reviewing ARIA usage alongside industry data shifted our approach toward simpler, more dependable foundations.
Use less ARIA and more native semantics.
Use clear grouping, logical order, and meaningful headings.
Create intent-based labels and remove redundant announcements.
Improve contrast, focus visibility, and hit-target sizes where needed.
26 of 40 issues resolved, with three in progress. Nine remaining issues were documented with constraints and future directions, including user-generated alt text. Home, Projects, and Chat now have clearer labeling, better navigation for screen readers, and more stable interaction patterns. Accessibility is no longer treated as a final check; it is part of how features are designed and built from the start.
Due to NDA restrictions I'm unable to share detailed project information, screenshots, or design artifacts. But recent work has included:
01B2B / enterprise SaaS design
02ServiceNow product & interaction design
03AI conversational interfaces
04Custom illustrations & visual storytelling
05Working with large design systems
06UI guidelines & standards
07Information architecture
08Cross-functional workshop facilitation
As a designer, I worked closely with researchers throughout the process—helping define research goals, preparing studies, and participating in interviews and usability sessions where appropriate. Together, we combined insights from those sessions with product data to better understand both user behavior and intent.
01Usability testing
02UI evaluation
03Scenario testing
04In-depth interviews
05Accessibility testing