Redesigning a Live Career Prep Platform To Expand Beyond One-Off Bookings
Product Scaling
Design Systems
Responsive Design
Role
UI & UX Designer
Time
Jan 2021 - Sep 2022
Project Type
Professional — Part-Time
/ Context
How do you prepare for your dream job interview?
TechMockInterview began as a passion project by a software engineer who had faced that pressure firsthand. The idea was simple: connect candidates anonymously with people who conduct such interviews, so they can practise before the real thing.
(A mock interviewer's profile on the website)
A good service deserves a matching website.
TechMockInterview had a great interviewer network, but as similar services gained traction, it couldn’t rely on the quality of its service alone. Complicated flows, heavy manual support, and weak trust signals revealed the limits of its early service model. That’s when I joined as a part-time UI/UX Designer during my first master’s degree to bring the product experience up to the quality of the service and support the team’s growth ambitions.
/ The Goal & Approach
The initial brief was to refresh an outdated UI and address user frustration and the support emails caused by unclear flows. But the challenge went beyond a UI update.
The team was planning to expand into broader career preparation, while the live product was still built around urgent, one-off bookings and engineering was focused on technical improvements. I prioritized high-impact UI and flow changes and created reusable patterns for future features and smoother design-to-development hand-off.
Mission
Prioritize key UX improvements across candidate and expert flows while working within the requirements and technical constraints of a live product, with the goal of growing the user base, reducing the need for team support, and and laying the groundwork for future expansion.
/ Discover
Usability testing and walkthroughs
Feedback analysis
Competitor analysis
Current experience favoured experts over candidates.
The expert network was central to the platform’s value, so most features had been built around keeping experts engaged. But compared with newer competitors, the product did not give new candidates enough clarity, confidence, or reason to start.
Booking friction was creating hidden operational work.
Unclear flows and edge-case booking scenarios led some users to either abandon the process or email the team for individual support.
Session management needed a stronger home.
Missed sessions showed that both candidates and experts needed a clearer place to track bookings, reminders, and next steps.
/ Define
I split the work into three focus areas, balancing what could improve the live product now with what would support the platform later:
While we improved flows across the journey, most of my design work were focused on three stages where changes could have the greatest impact: Explore, Discover, and Manage. Those priorities shaped the three focus areas below:
User Onboarding
[DISCOVER] Against more polished competitors, new candidates couldn’t see the value of the platform’s expert network, while experts, due to company’s confidentiality requirements, needed more confidence before sharing their information.
Service Selection
[EXPLORE] Similar session names across experts, short anonymous bios, and limited search and filtering made it hard for the candidate to find the right fit.
Session Workspace
[MANAGE] Experts couldn’t update sessions themselves, leaving outdated offerings available to book. Booking details got lost in email, sometimes leading to no-shows that damaged candidates’ trust.
/ Develop & Deliver
I approached this stage as a iterative cycle of exploration, validation, and alignment. Working through short design cycles with PMs, designers, and engineers, I used flow mapping, wire-frames, prototypes, critiques, and feasibility reviews to test interaction logic, surface edge cases, and align on what was worth building next.
Along the way, I also improved the design-to-development hand-off process through use of zeplin.io, organizing design files, and refining the design system, making implementation smoother and reducing ambiguity across the team.
The selected screens below show how the three priorities covered in the /Define section took shape in the final designs:
User Onboarding
The platform required significant information from new users, but neither group had much reason to trust provide it upfront. My solution was to design a dedicated onboarding flow broken into manageable steps, clear explanations, optional skips when possible while clarifying key service values throughout.
The platform required significant information from new users, but neither group had much reason to trust provide it upfront. My solution was to design a dedicated onboarding flow broken into manageable steps, clear explanations, optional skips when possible while clarifying key service values throughout.
Service Selection
With limited technical capacity, I designed multiple staged solutions within the existing codebase and page structure, balancing UI improvements and new features with lower engineering effort and minimal disruption to current users.
(1. Offers Page - Before)(2. Offers Page - First Redesign)
(3. Offers Page - Final)
The first iteration worked within the existing structure, making options easier to scan through clearer hierarchy and layout, simple colour coding, and new filters the team could implement with limited effort. When more capacity became available, the second iteration introduced more substantial changes, including categorized details and session summaries, while making sessions easier to compare through tags and consistent time/price presentation. Throughout, I designed with future expansion in mind, creating a system that could scale to new session types and services with minimal additional effort.
(1. Expert Page - Before)(2. Expert Page - First Redesign)
(3. Expert Page - Final)
Session Workspace
I designed the Session Workspace to give candidates and experts one place to stay on top of their sessions. They could manage bookings without contacting the team, get notified of upcoming session, check specific session progress, and communicate directly with each other. Designing for different screen sizes was a priority throughout the product, but I paid particular attention to the workspace on mobile, where users often checked their sessions. The dedicated structure also created a flexible foundation for future product expansion and features such as gamification.
Bonus!
I refined and expanded the existing design system as the product evolved, giving designers and engineers a shared set of reusable patterns. It made hand-off clearer, kept new features consistent, and reduced the effort needed to build and adapt the product over time. Below is a glimpse of the design system.
/ Impact
Helped support a major growth period → During my time on the team, drop-off decreased noticeably across key entry points and remained limited to edge cases, while the platform grew from ~1K to 10K users.
Reduced manual support demand and team effort → New onboarding, booking, and session-management flows let the product handle needs that had previously required manual support, significantly reducing recurring email requests.
Improved user satisfaction and team alignment → Stakeholders and expert users responded positively to the redesigned platform that better reflected the quality of the service. Internally, clearer design direction reduced ambiguity and improved collaboration.
/ Reflection
Better isn’t better.
Live product design changed how I think about “better.” A cleaner experience on paper can still be confusing to users who already rely on the current flow, so I learned to think more carefully about sequencing, rollout risk, and the cost of change. Sometimes new UI is not better; it is just… new.
Make the case.
A design is only as strong as the case you can make for it. (To my great disappointment,) my designs could not defend themselves in meetings! I learned to involve engineers earlier, use rapid prototypes to communicate ideas and make trade-offs visible, and better explain decisions through user value, technical effort, and business impact.
Every choice costs.
Prioritization becomes part of the craft. Working directly with multiple teams gave me a (much needed!) more realistic understanding of the actual cost of my design decisions. I learned to empathize with engineers and product teams the same way I empathize with users, then make peace with leaving good ideas behind so the team could ship what mattered most.
Prove the impact.
Good outcomes deserve better tracking. If I were doing this project again, I would define success metrics earlier and track changes more deliberately. At the time, the improvements felt obvious through user behaviour, stakeholder feedback, and reduced support requests. Unfortunately, “we could feel it working” isn’t the strongest impact metric.