Cactus

Web app Design

User journey mapping

UX Writing

UX

Research

Interviewed users and reviewed onboarding flows to figure out where people were getting confused or dropping off.

Wrote clearer, friendlier content for the skill challenges explaining the “why” behind each step without sounding too technical.

Tested the community section with users and found a few navigation issues that made it harder to explore or participate.

Reworked content based on feedback to make challenges feel more welcoming and less overwhelming.

Helped update the design system by making sure language and messaging felt consistent across different parts of the product.

Interviewed users and reviewed onboarding flows to figure out where people were getting confused or dropping off.

Wrote clearer, friendlier content for the skill challenges explaining the “why” behind each step without sounding too technical.

Tested the community section with users and found a few navigation issues that made it harder to explore or participate.

Reworked content based on feedback to make challenges feel more welcoming and less overwhelming.

Helped update the design system by making sure language and messaging felt consistent across different parts of the product.

Overview

Cactus isn’t just a platform for developers; it’s a space designed to help them grow, solve real-world problems, and connect with like-minded individuals. As the UX researcher, I collaborated closely with the design team to explore developers' needs, I worked to understand the needs of developers, focusing on creating an engaging experience that helps users to level up their skills while building strong connections with others in the tech community.

Cactus started its web app with the

aim of becoming

one of the best

programming challenge platforms

alongside

Leetcode

and

Code wars

Key constraints

Key constraints

The project started with a vague brief, requiring us to do endless interviews and research to know the true needs of developers.

The project started with a vague brief, requiring us to do endless interviews and research to know the true needs of developers.

There was a significant gap in the platform, as developers wanted real-time competitive challenges that were not present.

There was a significant gap in the platform, as developers wanted real-time competitive challenges that were not present.

Goals

Practical, Skill-Building Challenges

We didn’t just want users to "complete tasks" — we wanted the challenges to feel real. Developers told us they wanted to sharpen their skills by solving problems they might actually face on the job. So we designed challenges that were both useful and a bit fun, with room to track progress and compete with others.

Practical, Skill-Building Challenges

We didn’t just want users to "complete tasks" — we wanted the challenges to feel real. Developers told us they wanted to sharpen their skills by solving problems they might actually face on the job. So we designed challenges that were both useful and a bit fun, with room to track progress and compete with others.

Community that Feels Like a Community
Learning to code can be isolating, and we knew that wasn’t working for everyone. We wanted Cactus to feel like a place where developers could ask questions, share ideas, and grow together. That meant designing spaces that encouraged interaction, not just likes and comments, but actual collaboration.

Community that Feels Like a Community
Learning to code can be isolating, and we knew that wasn’t working for everyone. We wanted Cactus to feel like a place where developers could ask questions, share ideas, and grow together. That meant designing spaces that encouraged interaction, not just likes and comments, but actual collaboration.

An Experience That Just Works
We knew it didn’t need to be flashy and useless, it just needed to work. No one wants to waste time figuring out where to click or how to find things. So we focused on making the platform feel effortless to use. Clear navigation, simple flows, and small thoughtful details helped make the experience feel natural, especially for first-time users, without leaving advanced users bored or boxed in.

An Experience That Just Works
We knew it didn’t need to be flashy and useless, it just needed to work. No one wants to waste time figuring out where to click or how to find things. So we focused on making the platform feel effortless to use. Clear navigation, simple flows, and small thoughtful details helped make the experience feel natural, especially for first-time users, without leaving advanced users bored or boxed in.

Process

To create a platform that truly served developers, we needed to first understand their goals, frustrations, and needs. We started by conducting in-depth user interviews with developers to learn what was missing in the current tools they were using. We then created personas to represent different types of developers and empathy maps to ensure we fully understood their pain points.


Our team's general design process for this project followed the double diamond theory

To create a platform that truly served developers, we needed to first understand their goals, frustrations, and needs. We started by conducting in-depth user interviews with developers to learn what was missing in the current tools they were using. We then created personas to represent different types of developers and empathy maps to ensure we fully understood their pain points.


Our team's general design process for this project followed the double diamond theory

UX Deliverables

Personas - We created personas to better understand the different types of developers using the platform from beginners looking for guidance to more experienced devs wanting to stay sharp. This helped us design with real needs and motivations in mind, not assumptions.

UX Deliverables

Empathy Maps: We used empathy maps to dig deeper into how developers were thinking and feeling — what motivated them, what frustrated them, and what they needed from the platform. It helped us keep their perspective front and center during design decisions.

UX Deliverables

TaskFlow: For key actions like joining a challenge or connecting with the community, we broke down the steps users needed to take and streamlined them. This helped us spot unnecessary steps, remove friction, and make sure users could complete tasks without second-guessing.

UX Deliverables

User Flow: We mapped out how users would move through the platform from signing up to completing challenges making sure each step felt logical and easy to follow. The goal was to reduce friction and help users stay focused on learning, not figuring out where to go next.

Key Research Findings

Through interviews and research, we identified a few key needs and feature gaps that were critical for the platform's success:


Skill-Enhancing Challenges: Developers weren’t just looking for theory, they wanted real, hands-on problems that mirrored what they might face in the field. They craved challenges that would stretch their thinking and help them build practical experience.


Expert-Led Learning: Many users mentioned wanting to learn directly from people with real-world success. There was a strong desire for guidance from industry experts, not just tutorials, but insights drawn from actual experience.


Collaboration & Community: It became clear that learning in isolation wasn’t working. Developers wanted a space where they could connect, share ideas, ask questions, and grow alongside others. A strong, supportive community wasn’t just a nice-to-have - it was a need.

Through interviews and research, we identified a few key needs and feature gaps that were critical for the platform's success:


Skill-Enhancing Challenges: Developers weren’t just looking for theory, they wanted real, hands-on problems that mirrored what they might face in the field. They craved challenges that would stretch their thinking and help them build practical experience.


Expert-Led Learning: Many users mentioned wanting to learn directly from people with real-world success. There was a strong desire for guidance from industry experts, not just tutorials, but insights drawn from actual experience.


Collaboration & Community: It became clear that learning in isolation wasn’t working. Developers wanted a space where they could connect, share ideas, ask questions, and grow alongside others. A strong, supportive community wasn’t just a nice-to-have - it was a need.

Feature Gaps

Feature Gaps

Devs lacked the ability to compete with others in live, time-sensitive challenges.

Devs lacked the ability to compete with others in live, time-sensitive challenges.

There was no easy way to share or discover resources and learning materials. Developers needed organized spaces to collaborate and share insights.

There was no easy way to share or discover resources and learning materials. Developers needed organized spaces to collaborate and share insights.

Developers wanted the ability to create and share their own content, like custom challenges or tutorials.

Developers wanted the ability to create and share their own content, like custom challenges or tutorials.

Designing the solutions

With these insights in mind, we began brainstorming solutions that would address the gaps and needs we had identified:


Ranks: To keep developers motivated and engaged, we introduced a ranking system that made progress feel rewarding. It added a layer of healthy competition and gave users a clear sense of how far they’d come.
The system had three main levels — Hawthorn, Firethorn, and Blackthorn and each one was broken down into smaller steps: Beginner, 1 Star, and 2 Stars.


Onboarding: New users start by picking their preferred programming language, something familiar to help them feel at home right away. From there, they begin their journey at the Hawthorn Beginner rank. As they take on challenges and get involved in the community, they start climbing the ranks and seeing their progress come to life.


Skill Challenges: We introduced “Spikes” - real-world challenges that developers can tackle solo or with a team. These let users put their skills to the test in practical ways, plus compete live against others for a little friendly rivalry.


Community Features: We designed community channels where developers could share resources, ask questions, and connect with peers. These spaces help build a sense of community and make learning feel less lonely.


Progress Tracking: Developers track their journey through ranks, starting at Hawthorn, moving to Firethorn, and finally Blackthorn. This gamified system keeps motivation high and makes achievements visible and rewarding.

With these insights in mind, we began brainstorming solutions that would address the gaps and needs we had identified:


Ranks: To keep developers motivated and engaged, we introduced a ranking system that made progress feel rewarding. It added a layer of healthy competition and gave users a clear sense of how far they’d come.
The system had three main levels — Hawthorn, Firethorn, and Blackthorn and each one was broken down into smaller steps: Beginner, 1 Star, and 2 Stars.


Onboarding: New users start by picking their preferred programming language, something familiar to help them feel at home right away. From there, they begin their journey at the Hawthorn Beginner rank. As they take on challenges and get involved in the community, they start climbing the ranks and seeing their progress come to life.


Skill Challenges: We introduced “Spikes” - real-world challenges that developers can tackle solo or with a team. These let users put their skills to the test in practical ways, plus compete live against others for a little friendly rivalry.


Community Features: We designed community channels where developers could share resources, ask questions, and connect with peers. These spaces help build a sense of community and make learning feel less lonely.


Progress Tracking: Developers track their journey through ranks, starting at Hawthorn, moving to Firethorn, and finally Blackthorn. This gamified system keeps motivation high and makes achievements visible and rewarding.

Testing with users

We tested the platform with real developers to make sure it felt easy to use and engaging. We paid close attention to key parts like onboarding, skill challenges, and community features. The feedback we got helped us smooth out the design and make the user experience flow better.


For example, some users wanted a bit more help during onboarding, so we added quick tooltips and tips to guide them. We also made the community channels simple to navigate, so developers could quickly find discussions that mattered to them.

We tested the platform with real developers to make sure it felt easy to use and engaging. We paid close attention to key parts like onboarding, skill challenges, and community features. The feedback we got helped us smooth out the design and make the user experience flow better.


For example, some users wanted a bit more help during onboarding, so we added quick tooltips and tips to guide them. We also made the community channels simple to navigate, so developers could quickly find discussions that mattered to them.

What next?

While Cactus isn’t live yet, all the research and design work has laid a solid foundation. The next step is building and testing the final product. We’re excited and confident that with these insights, Cactus will give developers the tools they need to grow their skills, connect with others, and stay motivated every step of the way.

While Cactus isn’t live yet, all the research and design work has laid a solid foundation. The next step is building and testing the final product. We’re excited and confident that with these insights, Cactus will give developers the tools they need to grow their skills, connect with others, and stay motivated every step of the way.

Other Projects

Learnpally

Improving User Engagement & Referrals

MyStash

Improving the company's user engagement

MyStash

Improving the company's user engagement

Get in touch, Let’s create amazing products.

Get in touch, Let’s create amazing products.

Get in touch, Let’s create amazing products.

Get in touch, Let’s create amazing products.