Send Money
A money-transfer flow built around one specific problem: transfers vanishing into an unclear "Pending" status with no explanation. The fix — a four-step tracker that always shows exactly where the money is.
I travel a lot, keep life simple, and at some point decided to get serious about digital product design. This is where I show that work.
I'm new to UI/UX in the way that actually matters — I haven't padded a portfolio with a dozen half-finished exercises. I have a handful of projects done for real: genuine research into a real problem, decisions I can explain, and a working prototype instead of a static screen for each one.
I work closely with AI tools to move faster and pick up the craft as I go — and I say that plainly, because I want you to trust what you see rather than be impressed by something I couldn't explain in a conversation.
If a project needs more than design — working code too — I build that as well, also paired with AI at every step. So we can talk not just about "how this should look," but about making it actually work.
A money-transfer flow built around one specific problem: transfers vanishing into an unclear "Pending" status with no explanation. The fix — a four-step tracker that always shows exactly where the money is.
A crypto-sending flow that fixes the mistake behind some of the industry's largest irreversible losses: sending an asset to the wrong network. Ethereum and BNB Smart Chain addresses look identical — so the fix isn't format checking, it's an explicit, impossible-to-miss network selector.
Real conversations from real projects — added here as they come in, screenshots and all.
Write to me and tell me what you want to build — I'll tell you honestly whether I'm the right fit for it.
A redesign of the money-transfer flow in a digital wallet, built around one specific question: what happens to the money right after you hit send.
I use apps like PayPal, Venmo, and Wise like most people do — and the moment that always bugs me is right after tapping "send." The screen usually just says "Pending" — no timeline, no explanation, nothing. The money's already left your account, and you have no idea whether everything's fine or if that's just how it works.
Instead of guessing, I checked whether other people felt the same way. I went through recent reviews of PayPal, Venmo, and Wise, specifically looking for complaints about the transfer process, and a few things kept coming up:
That confirmed it wasn't just me. So instead of trying to redesign the whole wallet, I picked one flow to get really right: sending money to another person, from opening the app to the money arriving.
Recipient, then amount, then the send button. Sounds obvious, but in my first version the button sat above the amount field — meaning the user saw "Send" before they'd entered anything at all. Small thing, but it's the difference between a screen that walks you through it and one that just drops elements in a random order.
Everything before it — sending, confirming — is fairly standard stuff every wallet has. The screen I actually designed to solve the problem is the transfer tracker: four steps (Sent → Confirmed → In transit → Delivered), with checkmarks on what's already happened, a highlighted dot on what's happening right now, and a simple estimated time underneath. That's the whole idea — replace "Pending" with "here's exactly where your money is."
A muted blue-silver palette, one card style throughout (white, 16px rounded corners), one type scale across everything. I broke this rule myself once — a details card came out slightly different from the rest — and had to go back and fix the padding and corner radius so everything matched. Small inconsistencies like that are exactly what makes a design feel unfinished, even when no one can immediately say why.
I want to be upfront about this part, because I think it matters more than pretending otherwise.
I'm new to UI/UX — this is genuinely my first real project in the field. I used Claude at every stage: to research real complaints people have about transfer flows, to turn my decisions into precise specs (colors, spacing, sizing) that I entered into Figma myself, and later to direct Figma's own AI tools once I understood the fundamentals well enough to check their output instead of just accepting it. I built the first two screens by hand, field by field, learning Auto Layout in Figma as I went — including a few mistakes before it clicked. I built the last two screens faster with AI once I had a system to hand it, and I caught and fixed a style inconsistency it introduced. The final interactive version is built as working code, not static mockups, so the flow is genuinely clickable start to finish.
None of the decisions above — field order, the status-screen concept, the color system, what counts as "finished" — came from a tool. Those were my calls. The tools helped me move faster and taught me the craft along the way — and that's exactly what I want to keep doing.
This is one flow, done for real, rather than a whole app done halfway. If I kept going, the next problem in this same app is transaction history: right now, if you check "Delivered: instantly," you have no real way to confirm that.
A redesign of the crypto-sending flow, focused on one mistake responsible for more irreversible losses than almost anything else in the industry: sending an asset to the wrong blockchain network.
Lost by one trader in a single transaction — he sent tokens to an address that looked correct but couldn't actually receive them. It's just one of many similar cases documented across the industry.
Most people assume that if a crypto address "looks right," it's safe to send to. It isn't. Networks like Ethereum, BNB Smart Chain, and Polygon use the exact same address format — the wallet will accept and send the transaction without a single objection, but if the receiving side is watching a different network, the funds go nowhere. Unlike a bank transfer to a closed account, there's no reversing this. The transaction becomes final the moment it confirms.
This isn't a rare edge case. Support documentation across many wallets and exchanges names it as one of the leading causes of unrecoverable fund loss — right alongside sending to smart-contract addresses that were never built to hold tokens in the first place.
An Ethereum (ERC-20) address and a BNB Smart Chain (BEP-20) address match character-for-character in format — both start with 0x and continue with 40 hex characters. Which means address-format checking, no matter how good, can't structurally catch this specific mistake. The only real protection is making network selection an explicit, impossible-to-miss part of the interface, not a detail buried in a dropdown.
For assets that exist on more than one network (starting with USDT — the most common multi-network asset), the send flow now requires an explicit network choice before you can even enter an address:
Same as with the first project, I want to be upfront about the process. I researched this problem together with Claude — reading real incident reports and wallet support documentation until the ERC-20/BEP-20 format-collision issue stood out as the actual mechanism behind most of these losses, not just "people not paying attention." That specific insight is what shaped the solution: a warning banner on its own would have been generic advice; understanding why format-checking fails is what justified building a separate, impossible-to-skip network-selection step.
The interface itself — the wallet, swap, and send flow — was built as working code with AI, on top of a design system I directed (the color palette, layout logic, what gets emphasized and what doesn't). I tested the implementation myself, including deliberately trying to break the validation with bad input before calling it done.