
Enterprise UX Transformation
4 Years. 1000+ Iterations
One Vision. One Designer.
Redesigning a legacy, engineer-led system into an intuitive self-service platform for a leading FAAMG company
The Challenge
From Legacy Chaos to
Empowered Self-Service
Transforming a complex, backend-dependent system into an intuitive platform
1
Legacy System
A cumbersome, Cisco-based phone management tool that forced users to depend on backend engineers - even for minor changes.
2
User Struggle
Employees had to code workarounds, leading to inefficiencies and frustration.
3
The Goal
Transform a complex, backend-dependent system into an intuitive, self-service web platform.
Starting Point
Simplify phone number management and reduce dependency on technical teams.
Evolution
Expanded into a multi-functional platform with bulk operations, emergency tracking, and more.
Outcome
A streamlined workflow that drastically reduced dependency on backend support.
A thoughtful, iterative approach over 4 years transformed complexity into clarity, all through the vision of a single dedicated designer
Timeline & Information Architecture
Project Evolution Timeline
The timeline showcases the progressive iterations of the project, giving you a glimpse into how the tool evolved over the years
User Insights & Research
Understanding User Needs
The research objective was to understand the frustrations with the legacy tool to inform a more intuitive redesign
I synthesized findings from:
User Interviews
In-depth conversations with 20+ users across departments to identify pain points and workflow obstacles.
Field Studies
Quantitative analysis of how teams interacted with the legacy system to pinpoint inefficient processes.
Concept Testing
Iterative testing of prototypes to refine and validate design decisions throughout the process.
Insight into the users
Early in the project, it became clear that there were 3 types of users.
To uncover real needs and pain points, I ...
-
Observed how people used the system in real-world scenarios
-
Joined calls where users described their issues or workarounds
-
Spoke to key team members of each user type
-
Reviewed internal workflows and backend dependencies to map out tasks and responsibilities


This mix of qualitative insights helped me spot recurring patterns - especially in how users approached the application depending on their roles.
These insights became the foundation for the 3 user personas I kept in mind throughout the design process.
User Personas
Each persona’s interaction style influenced not just the UI, but how entire flows were modularized and permissions made intuitive - especially for our non-technical users
Tina
Admin
Role: Manages permissions and sensitive data
Tech Comfort: Knows a bit of code but prefers visual tools
Needs:
-
Grant/revoke access across different modules
-
Keep sensitive data secure and access compliant
-
Stay in control without relying on devs too much
Struggles:
-
Legacy system is confusing for setting roles
-
Needs help when something breaks - no easy rollback
Preferences:
-
Drag-and-drop style access rule builders
-
Simple, safe options to undo or override changes
Ravi
Developer
Role: Keeps the system running smoothly behind the scenes
Tech Comfort: Fully technical, works with logs and APIs daily
Needs:
-
Check if backend data syncs with the UI
-
Monitor server health, troubleshoot fast
-
Validate if updates reflect in real-time
Struggles:
-
Logs and UI are disconnected - lots of switching
-
Diagnosing issues takes too many steps
Preferences:
-
Dashboards with real-time data
-
Built-in tools that sit right where they need them
Alex
Contracter
Role: Handles specific tasks like updating rooms or devices
Tech Comfort: Comfortable with basic UI tasks
Needs:
-
Access only to the parts they’re assigned
-
Get alerts and complete quick updates
-
Stay focused on just their job and their role
Struggles:
-
Too many features that don’t apply to them
-
Sometimes blocked by access issues
Preferences:
-
Clean, focused screens with only what’s needed
-
Clear alerts and easy actions
Key Findings
Confusing Navigation
Users struggled to find key functions, leading to frequent requests for help from technical teams.
Technical Dependency
Over-reliance on technical support for routine tasks created bottlenecks in multiple workflows.
Need for Empowerment
Users expressed a strong desire for a more intuitive interface that would allow them to work independently.
Action Taken
Redesigned the menu structure, introduced interactive elements, and refined the information architecture - all based on iterative feedback and deep research led by one designer.
Information Architecture
Before diving into the IA, it's important to note that our approach kept evolving as the project grew. With each new feature, we had to revisit and adapt our IA. This iterative process was challenging, yet it ultimately led to a more flexible and user-centric design.

Feature Showcase
Key Solutions
Transforming complex workflows into intuitive interfaces, each feature was meticulously designed to empower users
DNS Configuration
What it does
Organizes thousands of phone numbers from around the globe by region, country, state, city, and office block.
User benefit
Provides intuitive navigation with integrated filters and search options. Finding details has become effortless!
Collapsible region panels helps Tina to scan high‑level data or dive into a specific office block without extra clicks.
Bulk Edit With Smart Subgrouping Iteration Spotlight
context & challenge
Initially, the original Bulk Edit only let users select DNs (directory numbers) and apply changes to all of them. Our users told us they needed more control to target only certain sub‑groups within those. And each sub-group could be edited differently.
design exploration & User Testing
We ran moderated usability sessions with 6 power‑users, asking them to complete typical bulk‑edit tasks.
Here are some of the fallbacks we faced:



Despite overcoming most of these challenges with validation steps & filters that kept data in check, users still wanted to further sub-divide their groups for more in-depth editing. All without the help of code. So we dove deep - we analysed various codes that backend developers have created for these purposes. These were SQL codes that admins would copy and paste and run blindly. These codes needed updating from time to time, or revamping if the admin wanted to change the values.
Based on this behavior pattern, I came up with a clear solution that would help admins segregate data as much as they wanted:

Key Insights
-
The dymanic checkbox options were overwhelming - users got lost in nested levels.
-
A simple “auto‑group” by pool, followed by manual "how would you like to group?" pop-up was far more intuitive.
-
Participants valued seeing their selected items highlighted in real time.
Refinement & Final Design
-
Auto‑Segregation: System groups by pool automatically on import.
-
Subgrouping like a pro: Users found the "how would you like to group?" pop-up as very intuitive.
-
Real‑Time Feedback: Selected items and subgroup names appear in a distinct colour coded manner - making scanning easier.
User benefit
Dramatically reduces time spent on repetitive tasks. Makes large-scale updates straightforward and less error-prone.
Our iteration focused on minimizing their cognitive load while maximizing control - reflected in the subgrouping feature developed just for them.
Provisioning Policies Iteration Spotlight
Context & Challenge
These Policies are there to elaborate the rules that govern phone number usage and other company policies. Originally, policies lived fully in code - developers were given instructions regarding variables and connectors by the admins. I had to build an interactive UI that lets the admins “draw” policy flows without touching code.
Design Exploration
Initially, the admins felt like they wanted all the information of each node to be displayed at all times - just like how they saw it in code. We explored various design options and also experimented with how much data to show on screen. I even suggested a horizontal scroll between policies for easier comparisons.
User Testing & Feedback

The main hiccup we seemed to run into after these iterations was the amount of information we displayed for each node.
We conducted a Follow‑Up Survey - a quick poll that asked which 3 data points they sought out the most to the team of 22 admins.
Key Insights
-
80% wanted just the policy name & ID, priority, and workflow on each node.
-
The remaining fields could live behind a “Details” icon click to keep the canvas clean.
-
An option to view the code - an ask from the developers.
Refinement & Final Design
-
Minimal Node Headers: Only policy name & ID, priority, and workflow are shown by default.
-
Details Pop-up on Click: A pop-up reveals full policy metadata when the icon is clicked.
-
Drag‑and‑Drop Policy Builder: Placed the widget on the left where it was most comfortable for the users.
User benefit
Simplifies policy management with a clear, visual hierarchy.
While developers helped us ensure data integrity, it was our admin users who needed a clean interface.By testing with both, we found the right balance between visibility and simplicity.
Transaction Logs
What it does
Displays a chronological history of changes, complete with detailed event breakdowns. Its like a window into every change made across the web app.
User benefit
-
Ensures transparency and traceability with a sophisticated date-time filter.
-
An in-depth view for each transaction - including a table of all the backed code triggers that were fired.
-
Maintains highest level of data integrity
Live view of all the server's health lets Ravi have real‑time visibility
Tina can use pre‑set date range shortcuts to save time when she needs to generate a quick audit report.
User Provisioning
What it does
Enables the provisioning of phone numbers to employees. It has both options - individual assignments (via dropdowns) and bulk operations (CSV uploads) with automated data verification.
User benefit
Removes the hassle of manual assignments & significantly reduces errors, ensuring everyone gets connected accurately.
Tina often uploads large CSVs. Error highlighting helps catch and fix mistakes before submission.
Scroll to view samples from the flow
Role-Based Access Control
What it does
Provides clear views of roles and permissions through intuitive checkbox management.
User benefit
It is guaranteed that the right users have the right permissions without compromising system integrity.
Visual permission matrix shows allowed actions at a glance, and tooltips to explain each permission.
This used to be a major job for Ravi and now he isn't called on to help with Tina's admin work.
Meeting Room Tracker
What it does
Displays detailed information on meeting spaces, including images, inventories, and connectivity details.
User benefit
Enhances meeting space management by consolidating all key data in one view.
Alex doesn’t need to dig through data tables. Each row shows room status - which informs them of upcoming maintenance, and recent alerts. They can go in and take limited actions - based on her role.
Tina can batch assign, add or edit multiple device types to multiple meeting rooms.
Scroll to view samples from the flow
Retail Store Tracker
What it does
Offers a global snapshot of retail outlets with real-time updates and detailed store profiles.
User benefit
Centralizes oversight, ensuring consistent operational performance.
Alex can log in, see only the stores they manage, and immediately act on flagged tickets.
Tina can batch assign or add multiple device types to multiple stores.
Job Management
What it does
Monitors and enables manual triggering of backend maintenance tasks with detailed logging
User benefit
Empowers users to maintain system health without deep technical know-how.
Alex doesn't need diagnostic options. They can check the status of a job that was triggered and check if it has passed or failed. Hovering over the status will provide an error message.
Ravi needs to know dependencies before kicking off a maintenance script. Clicking on a job name reveals its estimated runtime, last success/fail time, and linked database tables.
The Transformation
The Power of Focused Design
This project embodies the power of focused designing - working iteratively to turn a rigid, legacy system into a dynamic, user-friendly platform
Impact: Time & Cost Savings at Scale
Tangible Cost Savings
-
Before: Avg. 4 to 5 mins/task
-
Time reduced by ~ 1.5 mins per user, per task
-
Average of 15 operations per user per day across 375 users - 8,250 mins/month
Annual Cost Savings:
$ 56,100/-
SUS Feedback
-
We collected qualitative feedback through periodic internal surveys following the launch of three key modules.
-
It highlighted improvements in clarity, flexibility, and control.
Ratings:
4+/5 on key features
Error Rates
-
Initially, users from legacy systems faced errors due to unfamiliar workflows.
-
Today, the majority of issues stem from backend system lags / snags.
Outcome:
Less support tickets
Beyond the numbers, this redesign reduced cognitive load, improved accuracy, and provided a more seamless experience - empowering users to focus on decision-making rather than manual inefficiencies.
The Lessons Learnt
What I learned from this project?
Reflections from four years of building.
Iteration, iteration, iteration
Design doesn’t end at handoff. As development progresses, new edge cases and constraints often surface - some subtle, some game-changing. This project taught me the value of staying closely looped in, refining and adapting designs in step with developers to create solutions that actually work in the real world.
Design system - use it with a flexible mindset
We built a design kit to streamline our work - but integrating new ideas into existing components wasn’t always easy. I learned that while a design system brings structure, it shouldn’t box you in. The real skill is knowing when to follow the system, and when to thoughtfully bend the rules. 😉
Every phase - from initial research to the rollout of robust features - demonstrates how thoughtful, enterprise-level design can transform complexity into clarity, enabling teams to work more efficiently and independently.
4
Years
1000+
Iterations
1
Designer
Hi! Explore my other projects















































