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.
Challenges Core product gaps
The app lacked several core product foundations: a complete in-city payment flow, effective resident-to-team communication, a dedicated account experience, consistent accessibility across key journeys, and efficient workflows for higher-frequency use.
Result Measurable gains
We filled these gaps across the core product experience, improving payment completion from 75% to nearly 90%, reducing payment-related support requests by roughly one third, establishing a more consistent accessibility experience, and growing Chat into one of the app’s most successful and actively used features.
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.
I focused on making the send money flow clear and focused, removing unnecessary distractions from the task. The recipient’s profile helps users confirm they are sending money to the right person, while the available balance provides context as they enter the amount. Before sending, users can review the details and confirm the transaction with confidence.
I designed the top-up experience to feel simple and effortless, while keeping users informed throughout the process. Predefined amounts make it easy to choose a common value without entering it manually, while clear feedback and carefully considered error states help users understand what is happening at each step. The result is a flow that requires minimal effort while still giving users a sense of control.
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 Woven City App needed to support different ways of participating in the city, like visitors, residents and inventors. This role structure influenced what people could access, how they interacted with others, and how information was presented across the app.
As the experience evolved, Profile became another layer connected to this role model — giving users a way to introduce themselves and be represented within the community.
I worked across the role and profile experience, translating product requirements and operational rules into a clear interaction model and a consistent UI experience.
I defined how different user roles affected visibility, communication, notifications, and available actions across shared product surfaces such as the feed, projects, events, and chats.
The goal was to create a consistent model that could work across the wider app, while accounting for the different ways people participate in the Woven City.
Building on this structure, I designed the Profile experience for roles where a personal profile was relevant. The profile allowed users to introduce themselves through photos, interests, hobbies, and other personal information.
I designed the journey from introduction and onboarding through creation and editing, including empty, incomplete, and completed states. Profile visibility and states were also considered in the context of how people interact with each other across the app.
I designed the experience to make profile completion clear without making the process feel like a form to fill out. Users could see how complete their profile was and what information was still missing, while inline editing and bottom sheets allowed them to make changes without leaving the page.
I also worked through input validation and edge cases, including character limits, invalid inputs, incomplete information, and other error states, keeping feedback clear and actionable throughout the flow.
I worked closely with engineers to introduce auto-save, removing the need for users to manually save each individual change. Together, we defined the interaction states around saving, successful saves, and failed saves, so users could understand what was happening without interrupting the editing flow.
Throughout the process, I worked closely with product, engineering, research, and city teams, translating requirements into UI behavior and refining the experience through implementation and UAT.
I also contributed to bilingual UX copy and worked through details with the team as the design moved from concept to the implemented product.
The role model became a shared foundation for city communication, with visibility, chats, and targeted notifications relying on consistent access patterns.
Profile built on this foundation, giving people a more expressive way to represent themselves. Over half of users completed 5+ profile fields, showing that people went beyond the minimum requirements to share their interests, background, and preferences.
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.
Chat was one of the most successful features of the Woven App. It had high adoption and continued to grow throughout the year, with users not only viewing conversations but coming back regularly and actively participating. This made Chat an important part of everyday communication in the Woven City community and gave us a strong signal that there was demand for more community-oriented ways of communicating. We 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.
The accessibility work improved how the Woven App is experienced with VoiceOver, making navigation, labeling, grouping, and image descriptions more consistent across Home Feed, Account, and Profile. I refined the reading order and grouping of elements, improved button and image labels, removed unnecessary announcements, and addressed a range of interaction and input issues across these screens. The work also helped establish a more consistent approach to accessibility across different types of content, while documenting areas that require further exploration, such as meaningful image descriptions and user-generated content.
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