Interrogate
Before design begins, I identify the business goal, stakeholder concerns, and trust gaps by understanding real user pain points and support tickets.
Output — one page: the problem, in the customer’s wordsI work closely with founders, engineers, and business stakeholders to translate regulatory, technical & business requirements into digital products that solve real problems of user and business.
My strength lies in reading the room, bridging user needs with business objectives to deliver high-impact solutions with clarity and confidence.
I combine UX strategy, visual design, technical expertise, and business thinking to lead the design and development of digital products that make people’s lives easier and smarter.
Four products.
Hover to summon · click to open
Before design begins, I identify the business goal, stakeholder concerns, and trust gaps by understanding real user pain points and support tickets.
Output — one page: the problem, in the customer’s wordsI align the team around a clear vision, map end-to-end workflows, and address edge cases early to reduce rework and ensure consistent delivery.
Output — flows, states and the edge cases nobody wantsI leverage AI to turn ideas into high-fidelity prototypes quickly, enabling stakeholders to test, validate, and make informed decisions based on real experiences.
Output — a clickable build, not a deck of rectanglesI build scalable design systems with clear documentation, enabling teams to work consistently, independently, and efficiently.
Output — tokens, components, modes, documentationI’m Aamir Khan — a senior product designer who designs, builds, and manages products across Web3 wallets, stablecoins, payments, KYC/KYB, AML, onboarding, banking and enterprise SaaS. I design the system, then build the prototype that proves it, and ship it, usually in the same week.
Turning complexity into clarity and simplicity has always been my priority and is non-negotiable in my dictionary when build world-class complex systems for governments and enterprises.
Available for senior & lead product design roles. Relocation welcome.
Rethinking how a US nonprofit moves funding across borders — and how that movement can be made visible, faster and accountable.
What if every dollar donated could be traced from the moment it was given to the moment it created impact?
Global Citizen is a US-based nonprofit that mobilizes funding for critical challenges around the world — food security, education, agriculture, energy.
But moving funds across borders is complex. Organizations and implementing partners face slow cross-border settlement, transaction limits, intermediaries and high payment costs. Donors face something simpler and harder: not knowing.
The opportunity wasn’t to redesign a payment screen. It was to rethink how funds move through the ecosystem — and how that movement could be made visible and accountable.
The existing FIAT-based payment infrastructure introduces friction at multiple points in the funding lifecycle. Each hop is a place where time, money and traceability are lost.
Fund movements can pass through multiple financial institutions and intermediaries, making it difficult to give a simple, end-to-end view of where funds originated, where they went, and how they ultimately created impact.
Cross-border FIAT transactions can require multiple intermediaries and settlement processes. Funds that could reach their destination quickly may take days or weeks to fully settle. For organizations operating in time-sensitive environments, that delay matters.
Traditional financial infrastructure can introduce limits around how much can be transferred, where funds can be sent, and how transactions are processed. The rail becomes a constraint on the funding ecosystem itself.
Cross-border transactions can involve fees across different stages of the payment journey. For organizations working to maximize the impact of every donated dollar, payment overhead directly competes with mission impact.
How can we make the existing payment flow better?
I askedCan we create a more transparent and efficient financial rail for moving funds across the ecosystem?
This led me to explore crypto-based payments as an additional payment method alongside the existing FIAT infrastructure. The goal was never to replace traditional payments overnight — it was to introduce an alternative rail that addresses some of the structural limitations of cross-border FIAT.
It was evaluated because some of its underlying characteristics mapped directly onto the problems we were trying to solve.
Transactions are recorded on a public blockchain, creating a verifiable transaction history.
Potential product benefit Donors and authorised stakeholders gain visibility into fund movement.Depending on network and conditions, digital assets can settle significantly faster than traditional cross-border processes.
Potential product benefit Less friction moving funds between participants.Smart contracts can encode predefined rules and automate financial workflows.
Potential product benefit More structured fund distribution and accountability.Certain networks can offer lower transaction costs than traditional cross-border rails.
Potential product benefit More of the available funding reaches its intended destination.These benefits depend on the blockchain network, asset, custody model, compliance requirements and operating environment. The product therefore had to treat crypto as a financial infrastructure choice — not a UI feature.
Senior Product Designer, working from discovery through product definition and prototyping.
The work required thinking beyond individual screens and understanding the entire funding lifecycle.
This was never a two-sided product. Four groups touch the same money with entirely different motivations.
They want to understand where their contribution went and what it achieved.
They receive, manage, allocate and report on funding, and need efficient access to it.
Funding flows, performance, allocation and impact at an aggregate level.
Transaction histories, permissions, auditability and appropriate controls.
The product shouldn’t merely move money. It should make the movement of money understandable.
I stopped treating the transaction as the end of the experience and started treating it as one event inside a much longer journey.
That reframing opened the questions the product actually had to answer: where did the funds originate, which organization received them, which program got the allocation, how much, what stage is it in now, and what outcomes did it produce.
Give users a clear transaction trail rather than forcing them to understand blockchain infrastructure.
Blockchain terminology should not become the user’s problem. Nobody should need to understand gas, hashes, networks or wallet mechanics just to know whether their funds arrived.
A transaction shouldn’t feel like an isolated financial event. The experience should show what happened after it.
A blockchain transaction carries wallet addresses, hashes, network data, token amounts, confirmations, fees and timestamps. Most people don’t think in any of those terms — so I designed the information in layers instead of exposing it by default.
A donor needs one sentence. An operations or compliance stakeholder needs the hash. Progressive disclosure lets both be true on the same screen.
I structured the product around what each stakeholder naturally asks.
High-level funding, allocation, transaction and impact visibility.
Available, allocated, pending and distributed funds in one view.
A detailed, traceable history of financial activity.
Funding connected to the initiatives it supports.
Outcomes and measurable impact surfaced against funding.
Donors, implementing partners and other ecosystem participants.
Money enters from a donor, is applied for by an organization, is approved, released against evidence, and withdrawn. Each role only ever sees its own step — but every step hands the next one something it can verify. That handover is the product; the screens are just where it surfaces.
One design system, three densities. A donor gets figures and reassurance. A grantee gets forms and status. A reviewer gets tables and verdicts.
Four figures answer the question a donor actually carries: what I gave, how many projects it reached, how much has been disbursed, how much has been drawn down. Disbursed and withdrawn are the two most people never get told, so they sit in the same row as the amount given.
The reward tiles — actions, streak, badge — are deliberately a separate row in a different treatment. Motivation data and money data should never be mistaken for each other.
Wallet, card and Google Pay sit at the same level. A donor who has never held a stablecoin is never told they are missing out, and a donor who has one does not have to leave to use it. This was the whole argument for the project: the rail is an implementation detail, and the moment it stops being one you have lost the mainstream donor.
Amount, fee and reward are all stated before the irreversible button — and the fee line says Free rather than leaving it blank, because a blank is read as a hidden cost.
A bank transfer does not settle instantly and nothing in the interface can change that. So the screen hands over the account details with a copy button on every field, then asks for the amount actually sent, a reference ID and proof — the three things reconciliation needs.
Pretending this is instant would have produced a cleaner screen and a worse week for whoever matches the payments.
“Is this under 50% of your annual budget?” is a hard gate for this fund. Asking it on screen one stops a small organization writing a full application it was never eligible for — which is the most expensive thing a grant portal can do to the people it exists to serve.
The application is split across three tabs so a long form has visible progress, and the Submit button stays on screen throughout while Next drives the actual sequence. Grantees can see the finish line without being invited to trip over it.
Proofs, spendings and reports are different artefacts with different reviewers. Collapsing them into one attachment field would have been less work on this screen and far more work on the reviewer's, where someone has to open eleven files to find the receipts.
Naming the three also tells a first-time grantee what evidence actually means here — the form doubles as the brief. And the button says what the upload is for: funds released, not “submit”.
The balance is shown in USDC with the dollar figure beside it, the destination account carries a verified badge, and the summary ends on You'll receive rather than on the amount requested. Every other line is working toward that one.
Percentage shortcuts exist because the common case is withdrawing all of it, and typing seven figures by hand is a transcription error waiting to happen.
Collected against available sits at the top because the gap between them is the operating question. But the two cards that actually start the day — critical issues and pending actions — get their own borders and sit above the charts, away from the metric tiles.
Totals tell you how the programme is doing. Exceptions tell you what to do before lunch. Those are different jobs and they should not share a visual treatment.
Approve and reject are the obvious two. Return is the one that changes outcomes: a binary gate turns a missing registration document into a rejection, and the organization either reapplies months later or doesn't. On-hold covers the case where the application is fine and the cycle isn't.
The verdict buttons sit top-right, visible from the first scroll, because a reviewer who has already decided should not have to read to the bottom to say so.
Everything the grantee uploaded comes back sorted by type, each one openable in place. The release button is attached to that review rather than living in a payments queue somewhere else — so approving and paying are one decision with one audit trail, and nobody releases funds against a summary of a summary.
This is the mirror of the grantee's three uploads. The reason that screen asked for typed evidence is so that this one could show it typed.
I avoided making the product feel like a crypto exchange. The primary experience is about funds and impact — not cryptocurrency.
Transaction status, payment confirmation, fund allocation, balances, activity history, receipts, audit trails. Established patterns reduce the cognitive load of introducing a new rail.
Showing everything doesn’t create transparency. Good transparency is showing the right information at the right moment — so essential information and technical data were separated.
Challenge the assumptions behind the problem before designing screens.
Map users, stakeholders, constraints, workflows and dependencies.
The existing funding journey, financial infrastructure, blockchain capabilities, user needs.
Convert concepts into interactive prototypes early, before heavy implementation.
Use real feedback to find gaps, confusion and operational concerns.
Refine on what was learned rather than defending the first solution.
Problem → validated solution → usable product. Not polished screens.
AI is my second brain, not my first brain.
AI generates possibilities.
I evaluate, challenge, refine and validate the output against user needs, business objectives, technical constraints and stakeholder requirements.
I make the product decisions.
The experience explores how a global nonprofit could introduce blockchain-based payments without forcing users to become crypto experts — a bridge between traditional financial workflows and blockchain infrastructure, while keeping the user’s mental model on what actually matters.
Transparency is not the same as exposing more data.
A blockchain can provide an immutable record, but that alone doesn’t create a transparent experience. The designer’s job is to turn complex financial and technical infrastructure into information people can understand, trust and act on.
The best technology is invisible when the experience is good.
Users shouldn’t have to care that blockchain is underneath. They should simply feel that their money moves faster, is easier to trace, and is connected to real-world impact.
A broader model for transparent impact finance — where funding, organizations, transactions, programs and outcomes live in one connected system.
I donated money.
I can see where my money went, who it reached, and what it helped create.
Designing visibility and accountability across Kenya’s regulated pharmaceutical ecosystem — regulators, manufacturers, distributors, suppliers and healthcare facilities on one traceable record.
Medicines don’t simply move from manufacturer to distributor to hospital.
In a national pharmaceutical supply chain, every movement creates a new question. Taifa Care connects government regulators, manufacturers, distributors, suppliers and healthcare facilities, and gives them visibility into how medicines move across Kenya.
As the Product Designer, my challenge was turning a highly complex, regulated supply-chain ecosystem into workflows that very different stakeholders could actually understand and operate.
The supply chain involved multiple organizations, systems, locations and handoffs — which created a different problem for every stakeholder.
Can we identify suspicious or counterfeit medicines in the market?
Regulators need visibility across the ecosystem to monitor product movement, investigate anomalies and support regulatory oversight.
Where did this batch go?
Once products leave the facility, manufacturers need to know where batches were distributed and which organizations received them. Without reliable traceability, investigating a problematic batch becomes significantly harder.
Did we receive the genuine product, and where did it go afterward?
Distributors need to verify products entering their inventory and keep visibility over where those batches are subsequently sent.
Can we verify what we’re receiving?
Hospitals, pharmacies and other facilities need confidence that the medicines entering their supply chain can be identified and traced.
Track medicines.
It wasn’tTrack individual products and batches across a multi-organization supply chain — under different permissions, responsibilities, workflows and regulatory requirements.
Which meant the product had to answer three fundamental questions. These became the foundation of the whole experience.
What exactly is this product?
A unique identifier assigned to pharmaceutical products and batches — a digital identity that travels with the physical product.
Where has it been?
Every organization and location the product has passed through, and where it sits right now.
What happened to it along the way?
The sequence of events attached to the product — created, aggregated, shipped, received, verified, recalled, dispensed.
Instead of treating a medicine as a line item, the platform had to represent it as a moving object with a history.
Taifa Care wasn’t a single-user application. It was an ecosystem — different jobs, different access, different questions.
| Stakeholder | Primary need |
|---|---|
| Government / regulators | Oversight, compliance & investigation |
| Manufacturers | Production & downstream visibility |
| Distributors | Receiving, verification & distribution |
| Suppliers | Inventory & movement visibility |
| Healthcare facilities | Product verification & receiving |
| Platform owners | Operational & ecosystem visibility |
That table drove everything downstream: the information architecture, the permissions, the dashboards, the workflows, and how much detail each user was shown.
This wasn’t a project where I could jump straight into Figma. The domain itself had to be understood first, so I spent time with stakeholders in discussions and working sessions — and researched the risks of introducing traceability into a regulated pharmaceutical environment.
Understand the system before designing the interface.
The physical product moves forward. The platform has to keep a parallel digital trail of events. That distinction became critical to the architecture.
A traditional ERP mindset stops at inventory, orders, users and reports. Track & Trace needs another layer underneath — every event contributes to a product’s history, so the UX had to make those events understandable without exposing the machinery behind them.
Structured around the operational needs of the ecosystem, not around the database.
A centralized view for monitoring pharmaceutical activity across the ecosystem.
Search and trace products and batches across their full lifecycle.
Let stakeholders check whether a product can be identified within the system.
Understand what products and batches an organization currently holds.
Track movement between organizations and locations.
Surface relevant batch, expiry and recall information where it matters.
Manage the organizations participating in the pharmaceutical ecosystem.
Visibility into activities and historical events, for the people who must answer for them.
A batch may pass through several organizations and locations. Representing that as a table wasn’t enough — the interface had to carry two very different questions at once.
Where is this batch right now?
Show me every movement and event on this batch.
Which led to one object carrying high-level status, a timeline of history, location information and detailed event data — layered so that neither question drowns the other.
A manufacturer creates the identity, a supplier carries it, a regulator reads it. Every screen in the platform does one of those three things, and the test for any of them is the same: does the identity survive this step intact?
Which turns most of the design work into a single discipline — derive everything that can be derived, and ask a human only for what the system genuinely cannot know.
Aggregation is where serialized units become a case and cases become a pallet — the parent–child relationship that makes a recall tractable later. Modelling it as a repeating block with add another product matches what is physically in the box; a single flat list of serials would have been simpler to build and wrong the first time someone packed two SKUs together.
Parent ID and GTIN auto-select from the product. The operator picks a product and a batch; the identifiers assemble themselves.
Pick the product and the GTIN, batch, manufacturing date and expiry all fill themselves. Supplier email follows the supplier. What is left to type is quantity, locations and dates — the things that genuinely vary per shipment.
Every derived field is a transcription error that cannot happen, and in a traceability system a mistyped identifier is worse than a missing one: it creates a record that looks valid and points nowhere.
A return is an exception, and exceptions are where traceability usually breaks — someone sends stock back with a note and the chain goes quiet. Here the reason is the first field and the rest of the form is labelled auto-filled from order all the way down to serializations.
Order error, damaged, expired, overstock: these are different regulatory events with the same physical movement. Capturing the reason at the top means the record is already classified before anyone touches a carrier dropdown.
Creating a shipment produces an SSCC, and that number only matters once it is on the pallet. So the confirmation does exactly one job: show the barcode large, and give the three ways it leaves the screen — copy, download, share.
The instruction is written on the dialog rather than left to training, because the next step happens at a printer in a warehouse, often by someone who opened this screen for the first time this week. A success toast would have been tidier and would have broken the chain.
Products, manufacturers, suppliers and facilities are the scale of the system. Batches recalled and compliance ratio are its health — so they sit in the same row rather than buried in a reports tab, and the recall donut gets its own card showing processed against completed.
The counts tell the Pharmacy and Poisons Board how big the network is. The ratio tells them whether it is working. Both at a glance, in one row, was the whole brief for this screen.
An inspector standing in a pharmacy has a number — off a carton, a pallet label, a delivery note. Whether it is an SSCC, a serial, a GTIN or a batch is a fact about the packaging hierarchy, not about their question.
Making them choose the type first would be asking the user to know something the system can determine from the string itself. One box, any identifier, and the results narrow from there.
Manufacturer, supplier, facility — each hop with its dispatch date and its from-and-to. A table would have held the same data and answered a different question; the vertical line is what makes the custody chain readable in one pass.
Parent and child SSCC sit side by side because that pairing is how a recall actually propagates: find the child, and the parent tells you what else travelled with it.
The column says 500 Serials · View. At table level the count is the information — it tells you the size of the consignment and whether it matches the quantity beside it. The list itself opens in a searchable dialog, because the only reason to read individual serials is to find one.
This is the recurring problem in serialized traceability: the data is enormous and almost all of it is only interesting as an aggregate until the moment it is not.
Select the batch; product and manufacturer fill themselves, because the batch already knows them. The only human input is the reason — and that field is the one the whole record will be judged on later, so it gets the space.
Everything upstream in the platform exists so that this dialog can be three fields long. Aggregation, derived identifiers, the custody timeline: their payoff is a regulator pulling a batch in under a minute without a single chance to name the wrong company.
The platform had to exchange information with external partners and systems. The design couldn’t assume the data would look exactly like the prototype — so I worked alongside engineering during integration to make sure the UI represented the data actually being exchanged.
I supported engineering throughout: reviewing implemented screens, clarifying interaction behavior, reviewing API-driven states, updating designs when data structures changed, refining components and handling the edge cases that only appear once real data arrives.
Because the domain was so complex, I deliberately didn’t start by polishing UI. I translated research and stakeholder sessions into workflows, user journeys and information architecture first — then into an interactive prototype covering the key flows.
Prototype the system before polishing the screens.
That prototype became the shared language between stakeholders, product, design and engineering. Instead of asking “does this screen look right?” we could ask “can you complete this real-world workflow?” — which produced far more useful feedback.
Built on the existing brand, adapted to the realities of the users and the regional context. The goal was never visual consistency alone — it was a system that could carry a product this wide.
AI is my second brain — not my first brain.
AI-assisted prototyping let me turn complex workflows into something stakeholders could interact with, fast.
AI-generated output isn’t automatically good product design. It can hallucinate. It can misunderstand domain rules. It can produce workflows that are technically plausible and operationally wrong.
So I reviewed, challenged, redesigned and validated every output against user needs, stakeholder requirements, business objectives, technical constraints and regulatory considerations.
Pharmaceutical supply chains, government stakeholders, regulatory considerations, physical products, digital identities and multiple organizations — all in one product.
A regulator, a manufacturer, a distributor and a healthcare facility don’t think about the same data in the same way. The product had to accommodate that without splitting into four products.
The platform wasn’t tracking abstract data. It was tracking real medicines moving through real locations — and that relationship shaped almost every design decision.
Taifa Care evolved from a complex supply-chain requirement into a connected platform for pharmaceutical traceability.
The most important shift wasn’t a feature. It was moving from fragmented visibility toward a shared source of truth for pharmaceutical product movement.
Users shouldn’t have to understand the architecture of the system to understand where a medicine is.
The most important decisions weren’t visual. They were about roles, permissions, data, workflows, states, integrations and exceptions.
When real APIs and real operational constraints arrive, the product changes. Senior product design means staying involved long enough for the experience to survive contact with reality.
An API, AI, ERP infrastructure or a traceability standard is only valuable when it helps people do the job with less uncertainty.
Taifa Care wasn’t just an ERP interface. It was an attempt to create a digital layer of trust across a physical pharmaceutical supply chain — connecting the manufacturer who needs to know where a batch went, the distributor who needs to know what they received, the facility that needs to know what entered its inventory, and the regulator who needs to see the whole picture.
Every medicine should have a story.
Making blockchain-based money movement feel simple, transparent and trustworthy — for people who are not thinking about blockchain at all.
Money is one of the highest-trust products a person can use.
DDSC is an AED-backed digital currency designed to hold a 1:1 peg with the UAE dirham, settling on ADI Chain. My challenge was to translate blockchain infrastructure and regulated financial requirements into an experience simple enough for everyday users and robust enough for serious financial activity.
What the wallet has to doBusinesses and individuals increasingly operate across borders, but traditional payment infrastructure introduces friction. A single cross-border transfer can pass through five parties before it lands — and every additional layer is another dependency.
I didn’t treat blockchain as the product. I treated it as the infrastructure underneath the product.
Blockchain architecture · wallet infrastructure · network mechanics · transaction hashes · smart contracts
to do thisSend AED.
Complex infrastructure. Simple experience.
Six requirements pulled against each other on almost every screen.
Financial actions should feel obvious.
Users should always understand what is happening to their money.
High-risk actions need appropriate friction and confirmation.
The experience has to operate inside regulatory requirements.
The UI must reflect what the wallet, chain and APIs can actually support.
Useful enough that people adopt it and keep using it.
So the design problem was never “what should the wallet look like?” It was “how do we make blockchain-based financial transactions feel trustworthy and understandable?”
I worked with founders, product managers, technology leaders, product engineers, compliance professionals and legal stakeholders. Several working sessions went into establishing the boundaries before any detailed design started.
That gave me a much clearer definition of what the product needed to solve — and, just as usefully, what it couldn’t promise.
Everyday movement of value, with as few decisions as the action honestly requires.
Stronger reporting, because the money is somebody’s books as well as somebody’s balance.
The wallet couldn’t be designed around a single happy path.
I structured the wallet around the user’s fundamental questions, not around the feature list.
The first thing anyone opens a wallet to see.
The highest-consequence action in the product.
Sharing an address without exposing wallet mechanics.
The bridge in from traditional currency.
The bridge back out, which matters just as much.
The record that turns a balance into a history.
For every critical transaction I designed against four moments.
What am I about to do?
What is happening right now?
Did it succeed?
What happened, and what can I do next?
A financial transaction contains several decisions and several potential failure points. The flow has to walk the user through all of them without making the walk feel long.
The confirmation step is the final checkpoint. Instead of a button that says Confirm, the user should be able to say: “I am sending X DDSC to this recipient, and this is what will happen next.”
You are sending 2,500.00 DDSC to Al Fahidi Trading LLC. Here is exactly what will happen next.
Al Fahidi Trading LLC now holds the funds. The transaction is recorded and traceable from your activity list — no hash required to know it worked.
A transaction hash is useful to a technical user and meaningless to someone who only wants to know whether their payment arrived. So transaction history was built in layers — what you need first, with the depth available when you want it.
The user is moving between two representations of the same value. The interface has to say so plainly.
The goal was for this to feel like a familiar financial transaction rather than a complicated crypto operation.
Once the requirements were established, I used AI-assisted prototyping to build three high-fidelity product directions — each taking a different position on architecture, navigation and transaction flow. The team got to evaluate working experiences instead of static ideas.
Information architecture and wallet navigation as the organizing idea — what the product foregrounds before anything is tapped.
Transaction flows and send/receive behaviour as the organizing idea — the product built outward from its riskiest action.
Deposit, withdrawal and transaction visibility as the organizing idea — the product built around moving between AED and DDSC.
We didn’t pick the most visually impressive concept. We picked the direction with the strongest balance between experience, feasibility, compliance and business requirements — and that became the foundation for the product.
With the direction settled, I moved from exploration into systematization — a system aligned with the DDSC brand and the needs of a financial product.
When users are moving money, consistency reduces uncertainty.
I used Claude heavily for concept exploration, high-fidelity prototyping, scenario generation, alternative workflows, design-system development, edge cases, documentation and iteration.
AI-generated output requires scrutiny — particularly in financial products, where a seemingly small interaction can create a significant user or compliance issue. Every output was reviewed against user needs, business requirements, regulatory constraints and technical feasibility.
AI increased the speed of exploration. Human judgment determined the product.
Users should never feel uncertain about their money.
Transaction processing…
Sophisticated enough for financial professionals. Simple enough for everyday users. Financial infrastructure without feeling sterile or intimidating.
And underneath that simplicity sits everything it takes to run it: blockchain settlement, transaction traceability and regulated financial operations.
People don’t trust financial products because they look secure. They trust them when the product consistently says what happened, what is happening, and what will happen next.
The chain should provide transparency without forcing anyone to understand it. Abstraction should remove complexity — not remove control.
Understanding compliance early creates better product boundaries. I treated it as an input into the architecture rather than a restriction discovered afterward.
Three working prototypes gave stakeholders something tangible to evaluate, which made the conversations far more productive than debating static screens.
A button isn’t just a button when it moves money. A status isn’t just a label when someone is waiting on settlement. Every interaction carries financial consequence.
DDSC isn’t simply another crypto wallet. The broader opportunity is a bridge between traditional AED and programmable digital value — and the wallet is the interface that makes that infrastructure usable. My role was to make a complex financial system feel clear, controlled and trustworthy, without hiding the information people need to make confident decisions.
Complex infrastructure underneath. Simple experience on top.
Every banking app ships the same features. Spark Bank was built on the bet that once features stop being the difference, the deciding factor is how the thing makes you feel when you open it.
Banking apps compete on a feature list that stopped being a differentiator years ago.
Balance, transfer, cards, statements — every serious bank has them, and has had them for a decade. So Spark Bank does not try to be the perfect banking product. It takes a position: that a financial app can carry full-scale banking functionality and still be something a person looks forward to opening.
That is a design problem, not a feature problem. It took several months, and the whole thing was built on what people told us they actually wanted rather than on what the category assumes.
Before a single frame, I wanted to know who would become an enthusiastic supporter of this bank and why. That meant asking, not assuming — interviews in person and remotely, publicly available research, and surveys run on social media to reach people outside our own circle.
Two archetypes came out of it, and they turned out to be the whole brief.
Traditional banking apps are complicated and tedious.
Energetic people who keep up with current trends. They are not asking for more features; they are asking why using their money feels like admin.
It should look like something I chose.
Enthusiasts of good-looking, authentic solutions and modern novelties, who want that appreciation of beauty to extend into the ordinary parts of their lives.
Two people carried the decisions. One is why the app has to be fast. The other is why it has to be exact.
Elegant, precise, ambitious. Still paying a student loan from three years ago and saving for his first property, because paying down a loan beats paying rent. He holds accounts at several banks he never chose — one per job — and splits his life between them: one for the loan and savings, another for daily spending. He plans purchases rather than making them. What he wants is simply to see where the money goes.
He knows exactly what a bank owes him, which makes him the harder of the two to please. He will forgive a slower path if the numbers are unambiguous, and forgive nothing if they are not. Designing for Chris is what kept the product honest: no figure without its context, no confirmation without its detail, nothing simplified past the point of being checkable.
Between them they cover the two failure modes of a premium financial product — too slow for the person who lives on their phone, too vague for the person who reads the statement.
A persona tells you who someone is. An empathy map tells you what it is like to be them — and that is where the main paths of usage came from, ranked by what actually mattered to the person rather than by what was easiest to build.
“Is there something innovative in finances?” Pays attention to details. Likes discussing fintech, and a lot of other things besides.
All financial apps are the same — complex, and nothing to look at. A financial app should make life easier. It should save time and energy, not spend it.
Loves sport, spends weekends outside rather than at home. Plans his spending in a spreadsheet, because the bank never gave him anything better.
Dislikes the feeling of not being on top of his spending. Relaxed in a space that looks and feels good. Interested every time he tries something new.
Two things fell out of this that shaped everything after it. The pain was not missing functionality — it was out-of-date design that took effort to read. And these people were already primed to leave: they were curious about neo-banks, and being told to try them by friends who had already switched.
My bank is missing features.
My bank makes me work to understand my own money.
The customer journey map pulled the observations from every earlier stage into a single document: what people expected from the app, what they would feel while using it, and the paths they would take most — set against business objectives, KPIs and a plan of action.
Seeing the whole picture at once is what made it possible to design a step-by-step experience that serves the person and the business in the same move, instead of trading one against the other. And it let me mark the moments that carry the most emotional weight — the points where the product either earns trust or loses it.
The crucial action points were not the ones with the most taps. They were the ones where someone asks themselves, quietly, whether this bank has their back.
I built the architecture from the mental models people showed us rather than from the org chart of a bank. To get there I ran card sorting — potential users arranging the components of the product the way their own heads arrange them — and used the result to shape the conceptual model of the service, built from the fundamental sections of data and the vocabulary that goes with them.
Then I made the call that defines Spark Bank: simplify the architecture until the navigation menu is unnecessary, and delete it. Not fewer features — fewer places to be lost.
A full bank, with nowhere to get lost in it. That constraint did more for the feeling of the product than any visual decision that followed.
Low fidelity to argue about structure. High fidelity to find out we were wrong about one thing.
Low-fidelity wireframes drew the overall structure of the app — cheap enough to throw away, complete enough to disagree with. High fidelity turned that into a prototype real enough to test the UX strategy and the key user scenarios properly, which is where the interesting failure showed up.
We tested in-house against the most critical and frequently used banking scenarios from the Red Route Analysis. People struggled to work out how to activate the payment function.
Add a control that explains itself.
Leave the structure alone and teach it once, on first login.
Adding a visible affordance would have solved one screen and started the slow slide back toward the cluttered apps we were reacting against. Keeping the structure intact and adding a single learning tip at first login solved it for people less comfortable with advanced technology without charging every other user for it, forever. That trade — one moment of teaching against permanent visual debt — is the one I would defend hardest.
This is the phase everyone waits for and the one most often skipped. The job was to turn what we had learned about how these people feel into a visual language — and that is not the same as applying a palette to finished wireframes, or borrowing an abstract inspiration board.
It took a week. The idea changed shape repeatedly, and the version we shipped looks very little like the first one. I kept going until nothing obvious was left to improve, which is the only honest stopping rule I know.
The premise stated plainly. Enough to see that the direction had something, and that it was not there yet.
Warmth and depth pushed harder against the dark ground, testing how far richness could go before it read as decoration.
Pulled back. The restraint that separates a premium product from an expensive-looking one.
Light, depth and motion borrowed from nature rather than from finance — the reason the app feels alive instead of merely dark.
The final concept covers the scenarios that matter most, built as a clickable prototype in Figma so the experience could be judged by using it rather than by reviewing it.
Enrolment, in fullIdentity checks are where most banks lose people, so this is the part that gets the most warmth — the app asks you to smile at it, shows you what it read, and lets you correct it before anything is committed.
And the rest of the bankSmall thing, large effect: a transfer asks what it is for — car, business, education, electronics, health, loan. It costs one tap and it is the reason the spending breakdown is worth looking at later. Most apps make you categorise afterwards, which is to say never.
Deleting the navigation menu only works if every screen knows where it sits. These are the three places a person goes — the account they hold, the money they spent, the thing they want next — and each one had to be reachable without a map.
One figure, centred, inside the form the whole visual language came from — a thing that fills rather than a value that sits. Above it, three account tabs. Below it, one action. That is the entire screen, and with no navigation menu it is also the navigation: you are already where you need to be.
The carousel dots matter more than they look. Accounts are a stack you swipe, not a dropdown you open — one gesture instead of tap, read, choose, confirm.
Three physical cards fanned down the screen, each with its own colour and its own job — debit, credit, salary. You flick through them the way you thumb a wallet.
The alternative was a list of masked numbers with type labels, which is a database view of a wallet. It would have been faster to scan and completely forgettable, and forgettable was the one outcome this product could not afford.
Amount on the left, paid to on the right. No category chips, no icons, no running balance — the list answers one question and the detail screen answers the rest.
The date sits in a ring at the bottom, in the same form as the balance, and changing month is a turn rather than a calendar modal. It is also exactly where a thumb rests, which is why the filter and search controls are at the top: the thing you do constantly goes in reach, the thing you do rarely goes out of the way.
Most people open a transaction because they do not recognise it. So the screen is built for recognition before reconciliation: merchant and amount first, then the account it left, then the map.
The map does in one glance what no amount of merchant-name cleanup achieves — you see where you were. The row of this year's amounts with the same merchant sits above it, because the second question after “what was this” is always “how often do I do this”. And Report is right at the top, since the worst case is the one where you genuinely do not recognise it.
A customer knows they need a car. They do not know whether that is a personal loan, an auto lease or a credit facility — and being asked to choose is being asked to do the bank's job. So the purpose grid takes the input they actually have, and the mapping happens behind it.
The catalogue still exists, one tap away, for the people who do know what they want. Two doors into the same place, because the expert and the first-timer are both real and designing only for one of them is how banks end up with a call centre.
APR, term, deposit and fee stay on screen while the minus and plus move the monthly figure. You are not filling in a request and waiting to be told the terms; you are moving one number and watching the other four hold still.
And the button carries the amount — Get AED 90,000 — so the commitment is never abstract. A button that says Continue would have tested the same and meant nothing.
Amount, recipient, receipt, done. The recipient has a face, and that is the whole point of the screen: the fear in a transfer is not that it failed, it is that it went to the wrong person. A name alone does not settle that. A photo does, instantly.
Download receipt sits below the fact and above the dismiss, because the people who need it need it now, and everyone else is already reaching for Done.
If the emotional target is not written down next to the functional ones, it gets negotiated away in the first review. We wrote ours down: mind-blowing, emotionally engaging, delightful, easy to use, innovative.
Removing the navigation menu while keeping every banking function is harder than cutting features, and it is the only version of simplicity a bank can actually ship.
The architecture that felt right to me and the one people built with their own hands were not the same. Theirs won, and navigation stopped being a problem.
A usability failure is not automatically an argument for another control on the screen. Sometimes the cheapest fix for everyone is one tip, shown one time.
Anyone can make a home screen look expensive. The product is judged on the confirmation, the error, the empty state and the receipt.
Spark Bank was never trying to be the perfect banking solution. It was an argument that the next advantage in financial products is not another feature — it is designing for how people feel while they use their own money. That argument is easier to make now than it was in 2021, and it is the one I have been making in every financial product since.
Full-scale banking underneath. Nothing in the way on top.