A continuous design system practice I led to scale consistency across teams, products, and regions.
Building a scalable design system across multi-market products
(Best viewed on desktop for full detail)
2024 – 2025
✶ Design System Lead
✶ Product Design
✶ QA
✶ Defined system architecture and governance
✶ Led cross-team alignment with engineering
✶ Scaled system across products and regions (incl. LTR/RTL)
Reduced fragmentation and enabled consistent product experiences across markets
360F is a middleware company providing digital bancassurance, serving as a bridge between banks and insurers across Singapore, Thailand, Africa, and the Middle East.
As 360F scaled across regions and products, UI decisions were increasingly made in isolation. Components were repeatedly recreated, behaviours diverged, and supporting new markets and languages became fragile.
Components were repeatedly recreated across products, resulting in inconsistent UX, increased QA effort and slowed delivery.
The system needed to support both English (LTR) and Arabic (RTL), requiring layouts and components to work symmetrically across directions.
The design system evolved alongside active product development, requiring continuous balance between short-term delivery and long-term system integrity.
Shifts in tools, frameworks, and priorities required the system to adapt without breaking existing products or workflows.
My approach: A continuous loop designed to adapt as products, teams, and markets evolved.
Each step informed the next, and none existed in isolation.
I audited all active products, screens, and components across teams to understand:
✶ What patterns already existed
✶ Where duplication and inconsistency occurred
✶ How existing patterns behaved across different contexts and markets
→ This step helped surface duplication, hidden complexity, and gaps in foundational decisions.
A clear baseline of the system’s current state, enabling informed decisions rather than assumptions.

With a full audit in place, I focused on defining foundations that could scale.
Tokens defining colour, typography (English & Arabic), spacing, radius, grid, and icons.
Reusable, prioritised components with defined states and behaviour.
Page and journey references used to speed up work — not as sources for new components.
→ This ensured predictability across products and regions.
A stable foundation that supported reuse, localisation, and future expansion without redesigning from scratch.



The system evolved alongside active product development, so it was not possible (or desirable) to design everything at once. I prioritised:
✶ Base components used most frequently
✶ Patterns shared across multiple products
✶ Multi-language support
→ This allowed teams to continue shipping while the system matured.
A system that delivered value early, without blocking product velocity.


As tools, frameworks, and requirements changed, the system needed to evolve without breaking existing products. This included:
✶ Adapting the system to a shift from React (Storybook) to FlutterFlow (Widgetbook)
✶ Maintaining backward compatibility with live products
✶ Aligning regularly with engineers through weekly working sessions
✶ Updating documentation and QA processes as the system matured
→ Rather than aiming for a “final state,” I treated the system as an ongoing practice shaped by real product needs.
A resilient design system that continued to adapt as the company scaled across teams, products, and regions.



A single source of truth replaced fragmented UI decisions
Consistency improved across products, teams, and regions
Delivery accelerated through reuse and shared patterns
Duplication and QA overhead were reduced
The design system became product infrastructure.
It enabled 360F to scale across markets and languages while maintaining coherence, making localisation and customisation additive rather than disruptive.
As product complexity increased, the system reduced long-term design and engineering cost and established a shared, predictable way of building products, designed to evolve.
✶ A design system is a long-term product, not a one-off deliverable
✶ Adoption depends as much on communication as on structure
✶ At scale, stability matters more than novelty
✶ Designing for multiple markets requires system-level thinking
Selected Works
Fintech Brand SystemBranding
Pet Adoption AppProduct Design
Hand-tracking AppVibe Coding
Service Booking AppVibe Coding
Coffee Brand SystemBranding
Wedding RSVPWebsite Development
© Mai Linh Design 2026
Made with love ♡ and good music ♬
Say hello
mailinh.designs@gmail.com
+65 8814 2089