CanWork
CanWork is a decentralized freelance marketplace that connects clients and freelancers through blockchain-powered payments and smart-contract-based on Binance Smart Chain supporting BEP2 tokens and native $CAN.
I joined the project initially as a freelance visual designer, creating illustrations and brand assets. As the product evolved, my role expanded into product design and UX, where I worked closely with the product manager and developer to redesign the platform and improve its core experiences.
I worked across the product’s client and freelancer experiences, including onboarding, profiles, job discovery, hiring, escrow, messaging, job management, and responsive experiences. The goal was to take an early MVP and evolve it into a more polished, trustworthy, and usable platform capable of competing with established freelance marketplaces.

the challenge
CanWork had a functional MVP, but its visual language and user experience had not yet evolved with the ambitions of the product. The interface relied heavily on basic layouts, inconsistent visual patterns, and dated styling that made the platform feel less polished and trustworthy than it needed to be.
As CanWork’s goals expanded, the product also became complex. Clients needed to discover and hire freelancers, deposit funds into escrow, manage jobs, communicate with freelancers, and handle payments. Freelancers needed to discover opportunities, submit proposals, manage active work, and receive payments.
The challenge wasn’t simply to make the interface look better. It was to make a complex marketplace feel understandable, trustworthy, and easy to navigate. The product worked, the experience needed to catch up.


new visual foundation
One of the first opportunities was the visual system itself, I spoke with two CanWork users: one client and one freelancer, both had previous experience using established platforms such as Upwork, which strongly influenced their expectations from CanWork.
The existing MVP had a basic visual language with heavy shadows and inconsistent styling. I introduced a more cohesive design system with clearer typography, consistent colors, refined buttons, and reusable interface patterns.
The objective wasn’t to make the product visually elaborate. It was to create a system that made the platform feel more intentional, consistent, and trustworthy. This foundation then became the basis for redesigning the wider product experience.






Designing Hiring & Escrow
The hiring experience presented one of the more complex UX challenges in the product. A client wasn’t simply clicking “Hire.” They needed to review proposals, select a freelancer, connect a Web3 wallet, deposit supported BNB Chain tokens into escrow, monitor the transaction, and eventually release the funds or raise a dispute.
I designed the experience as a series of understandable steps rather than exposing users to the underlying technical complexity.
The flow included:
Wallet connection states
Clear explanatory copy
Escrow confirmation
Transaction status feedback
Pending, success, and error states
Activity logs
Completion and payment release
Dispute handling
This was one of the areas where my ability to translate technically complex processes into approachable user experiences became particularly important. Johan specifically highlighted my ability to make concepts such as digital wallets, escrow arrangements, and smart-contract interactions feel clear and approachable.









job management
Designing for both sides of the marketplace, CanWork had fundamentally different needs for clients and freelancers, so I designed the product around those distinct roles.
For clients, job management included creating jobs, saving drafts, editing listings, reviewing proposals, hiring freelancers, and managing active engagements. For freelancers, the experience focused on discovering relevant opportunities, reviewing job details, submitting proposals, tracking accepted work, and managing active jobs.
I also designed the different states required to make these experiences understandable, including empty, loading, error, pending, completed, cancelled, disputed, and escrow-related states. The result was a more structured experience that allowed users to understand not only what was happening, but also what they could do next.







communication
Bringing the engagement experience into one place, Once a client and freelancer started working together, communication became another important part of the product.
I designed a dedicated messaging experience that allowed users to communicate, and share files without leaving the platform. The interface accounted for different attachment types, file previews, conversations, and communication states while maintaining consistency with the wider CanWork design system.
This helped position messaging as part of the core working experience rather than simply an additional feature.






Designing Within Engineering Constraints
Bridging the gap between Figma and production was one of the challenging parts of the project, learning to design for the realities of implementation. I became increasingly conscious of designing systems rather than isolated screens.
A Figma canvas doesn’t have all the constraints of a real application. Components have to respond to different content lengths, states need to be accounted for, interactions need to be technically feasible, and designs need to work across different screen sizes.
That meant considering:
Component states
Loading and error scenarios
Different user roles
Responsive behavior
Edge cases
Confirmation and destructive actions
Implementation constraints
The experience significantly improved my understanding of front-end development and changed the way I approached design handoff.



results
The redesign transformed CanWork from a basic MVP interface into a more cohesive and professional product experience. I established a stronger visual system and redesigned the major journeys across both client and freelancer experiences, including onboarding, job discovery, hiring, escrow, messaging, profiles, and job management.
The redesigned experiences were implemented and launched on the live platform - Canwork.io. The CanWork community continued to grow, and the team continued working with me on additional UI improvements after the main redesign.
While we did not establish reliable quantitative metrics that could attribute specific growth directly to the redesign, the product team continued to value the work enough to bring me back for subsequent design engagements.
Johan’s written recommendation describes the contribution as materially improving the platform’s clarity, consistency, and usability, while emphasizing that the work went beyond producing attractive screens.




reflection - thank you johan
Working with Johan at CanWork was one of my career highlight, the project significantly changed how I think about product design. I started the engagement primarily as a visual designer. Over time, I became responsible for understanding user needs, mapping complex workflows, designing systems, collaborating with engineering, and thinking through how the product should actually operate all thanks to Johan Lives.
The project taught me that good product design isn’t simply about making an interface look polished. It’s about understanding the problem deeply enough to make complex things feel simple.
It also changed how I approach research. Speaking with users gave me valuable insight into the expectations people brought from products like Upwork, and showed me how useful even small amounts of direct user research can be when making product decisions.
Most importantly, CanWork gave me experience taking a product from one stage of maturity to the next—working within an existing product while also helping shape what it could become.
See More Projects

