Break down a job description before you apply.
Four years on data-dense product surfaces is the core of this posting, and your shipped work shows it.
The gap is scale: they want someone who has run a system across several teams.
I’m Mahin
a product designer in London building AI products that feel a little bit alive .
I’m a product designer in London, shipping AI products people actually use and building tools that feel a little bit alive.
London’s weather is on its way. via Open-Meteo
Side quests I make to learn something new, or just for the fun of it .
A product site, motion studies, two worlds in VR, game UI, and one extension that shipped.
I’m a designer, a cook and a League player, hooked on progress you can see .
In my second year reading economics I was running a startup, Quest Up, and wanted to design it properly. A summer at BrainStation gave me the same kick the startup did: you make something, people use it, and the progress is right there in front of you. A Master’s in Human-Computer Interaction added the theory, and an internship at Pactto put my first feature into a public beta.
Off the clock I cook, play League of Legends and run (next race: London Winter 10K). Cooking is the one that maps onto the work: UI is the plating and UX is the food. One attracts, the other keeps them.
Say hi on LinkedIn, or read my CV.











Collaboration that doesn't end when the call does.
Pactto is a canvas-based workspace where video teams meet, review and produce together. As a product design intern on a team of five designers I worked on all of it, from research to the final designs; Pin Comments and Smart Voice were my ideas.
Pactto puts the whole video production workflow on one canvas. The problem we took on was the gap between live and async work: feedback given on a call was lost once it ended. We anchored feedback to the asset itself, so it outlives the meeting.
From usability testing with people on the private-beta waitlist: the video teams Pactto is built for.
The video editing workflow is fragmented. Teams juggle separate tools for feedback, tasks and communication, and lose context with every switch.
Pactto brings live calls and the editing workflow into one canvas-based “Room”, where feedback, decisions and production happen in the same place.
We synthesised the research into an affinity map. It surfaced several friction points, and we chose one key insight to tackle first.
When I first joined, Pactto faced a core positioning dilemma: compete as a conferencing app or a collaboration workspace.
I initially advocated for the conferencing route based on competitive defensibility. Legacy tools like Zoom and Teams would struggle to copy our unique Canvas UI without completely breaking their users' established cognitive models. In contrast, competing as a collaboration tool meant facing off against giants like Miro and FigJam, who already owned the canvas format and simply needed to add a video call feature to close the gap.
However, after realigning with the founders, we committed to the collaboration model. The business strategy was to scale vertically (targeting specific creative workflows) rather than horizontally (building a generic meeting tool for everyone). Returning to our primary goal of reducing tool-switching, we realized Pactto couldn't just be a temporary meeting link. It needed to be the persistent, singular home where the entire end-to-end workflow actually happens.
On the map, one insight stood out as the root cause of the fragmentation.
42.9% of users were blocked by unclear feedback, and Pactto was purely synchronous. Miss the meeting and you miss the context. We needed a Contextual Library so feedback persists on the asset, not just in the moment.
The async gap came first, but the research turned up three more insights that shaped the final design.
Cognitive Load of the Canvas: Video editors found the infinite canvas “alien” because they are accustomed to working inside linear timelines. This paradigm shift meant we needed to provide structured starting spaces to reduce initial friction.
The Need for Presentation Control: Presenters lost their flow when audience members jumped ahead or crowded the screen with cursors. Users explicitly noted they needed to control the pace to prevent visual chaos and maintain sharp, focused feedback.
AI for Admin, Not Art: Creatives firmly stated they want AI to handle administrative tasks rather than generative creative work. They highly valued tools that quietly turn conversations into itemized notes so they can stay in their flow state.
preserve feedback context in async video reviews so decisions stay clear, traceable, and tied to the work?
This question shaped the core feature: one canvas where feedback stays attached to the work.
We built, tested and updated prototypes on a weekly cycle, so every week ended in a round of validation.
Our stakeholder cycle required us to present functional features every week. Static mocks couldn't capture the complexity of video scrubbing or interaction timing, so we inverted the traditional workflow.
Instead of perfecting pixels first, we used Google AI Studio to “vibe code” functional prototypes.
We built interactive code prototypes to validate interaction feel (like drag-to-comment) in weekly reviews.
This let us iterate on complex mechanics in real-time, then codify visual specs in Figma.
Engineers received a dual handoff: Code Prototype for behavior, Figma Design System for visuals.
We ran group reviews in Google Sheets, weighing Priority against Effort to decide what was critical for the Open Beta and what could wait.
With the live tools already stable, the Commenting Suite became our P0: a feedback layer that persists alongside the real-time workflow.
The original top-anchored webcams ate a third of the screen and stole focus from the canvas. They also failed to scale: at twenty people the strip collapsed over the presentation.
I designed a collapsible sidebar for the feeds, like Google Meet, letting users hide the webcams entirely and focus on the work.
Stakeholders rejected it. Human connection was meant to be an unavoidable pillar of Pactto, and hiding the feeds undermined that.
So the cameras scale instead of hiding. The more people join, the smaller each feed becomes, so the container never grows, so the room stays human without costing canvas.
We designed three ways to comment, one for each kind of creative feedback. Pin Comments was the one I proposed.
Anchors feedback to a precise coordinate on the frame. Click exactly where the issue is, and there is no ambiguity about which pixel needs attention.
Draws a box around a region to define the scope of a change, without having to describe where it is.
Spans a duration rather than a single frame, so pacing, audio sync and action can be critiqued by marking start and end on the scrubber.
Distinct commenting tools for distinct needs, but reached through a Single Interaction Point, so the choice never costs the user attention.
The crossroads: generic comments like Figma’s, or strict accountability. For video editors, generic comments meant no way to tell a casual “maybe” from a critical “must-do” in a flood of feedback.
A lightweight “Task” toggle inside the comment box. Chat and work coexist in one stream, and the feed filters down to a prioritised checklist of action items.
The toggle adds a moment of friction: is this a task? We accepted that cost when writing a comment to remove a far larger one at review, trading a minimal UI for clear accountability.
Of the AI tools we explored, Smart Voice is the one I brought to the team. I wanted AI built into the review itself, not a separate “AI island” that feels like a gimmick, so it lives in the comment box people are already using and settles the conflict between speed and documentation.
Transcribes spoken feedback and anchors it to the timeline. Reviewers give nuanced context without typing; editors get precise text synced to the exact moment.
Built in, never bolted on. Assistance appears where the person is already working, not in another tab.
We grew Pactto’s existing UI into a modular design system (type, colour, components) so every screen stayed consistent.
We mapped every user flow to its vibe-coded prototype, so engineers had a reference for exact animation behaviour.
We tagged every feature with an MVP priority, separating open-beta must-haves from fast-follows to keep scope in check.
We let a P1 feature, AI meeting summaries, hold up the core commenting system for two weeks, and it was cut from the open beta anyway. An enhancement should never hold the core loop hostage.
Next time I would release the core and the enhancements separately, so the main workflow is validated straight away instead of waiting on a secondary feature.
Unfortunately I couldn’t make it in person, so please enjoy these completely un-edited photographs of me with the team.
A companion for the job hunt, not an autopilot for it.
Jobi is a browser-extension companion for the job search, built around how people feel while applying rather than how many applications they send. I designed it with two other designers and built it myself, from the first screen to a private beta.
Most job-search tools try to bring you more postings or make each application faster. Jobi is built for the other half of the search: keeping up the habit of applying every day, and bouncing back after a rejection. It is a companion in your corner, running as a browser side-panel alongside the search.
From the private beta. The numbers below are about behaviour and speed rather than scale, which is what an early build can honestly show.
We started with published surveys. They show that the job search harms most of the people going through it, not a small minority. What they do not show is why. That is what our interviews were for.
72% say the job search has harmed their mental health (Resume Genius, 1,000 US job seekers, August 2024), and 55% of recently unemployed adults describe themselves as completely burned out (Insight Global, 501 US adults, July 2023).
The surveys showed the damage but not its causes, so we built the interview guide around three questions a survey cannot answer.
How do people actually track applications once the volume climbs?
Which parts of applying cost the most time, and which cost the most energy?
What makes someone lose momentum, and what gets them started again?
We interviewed five job seekers mid-search, applying to anywhere from four roles a week to thirty, then audited the two tools they kept mentioning. Teal and Simplify both autofill forms, track statuses and help you apply to more jobs. Not one of our interviewees said that applying to more jobs was their problem.
We sorted every interview quote into an affinity map. The clusters that came out were all about emotional fatigue, not about a missing feature.
The three insights a product could answer. The fourth cluster, silence from employers, is outside any product's control: no feature makes a company reply.
Indeed's own data shows the highest-volume applicants are 39% less likely to get a positive response. Every tool in the category is built to increase volume, which is the very thing that lowers people's odds.
reduce the emotional cost of the job search, without taking the search out of the user's hands?
This question shaped everything that follows.
Every competitor's brand promises the outcome: the job. That is the one thing no product controls. What we could promise honestly is growth, because skills and habits build long before anyone says yes. So the brand is designed to calm you down, not to keep you hooked.
A seed with two leaves, and a palette named to match: Seed Black, Sprout Grey, Bloom Pink. The metaphor ends up in every screen, not just the mark.
“You apply. We got your back” is the promise; “Keep growing” is the line. Both had to hold after a rejection, not just after a win.
A face is the quickest way to give a mascot personality. But a mouth is also what makes a face look like it is judging you. People mid-search are already anxious about being assessed, and Jobi reads their CVs, cover letters and interview answers all day. So the mascot has no mouth in any pose: it cannot frown, smirk or look disappointed. Everything it expresses comes through its eyes and its posture, and nothing it does reads as a verdict.
Without a mouth there is far less expressive range, so the warmth has to come from motion, which is harder to get right and slower to build. Worth it: a companion you feel judged by is not a companion.
Jobi runs as a browser side-panel next to the job search. You choose which roles to go for; Jobi handles everything around them: the research, the documents, the tracking and the practice. Each of the three insights has a feature behind it. One more thing the interviews asked for, autofill, was built and then removed; the reason is further down.
Four years on data-dense product surfaces is the core of this posting, and your shipped work shows it.
The gap is scale: they want someone who has run a system across several teams.
The obvious way to look credible next to two funded products was to match their feature count. Jobi went the other way: one chat, one tracker, one practice room. Anything that did not answer a research finding was cut before it was built.
Jobi loses any feature-by-feature comparison, and power users who want dashboards and bulk tooling are better served elsewhere. Accepted, because the person we designed for is not shopping for features. They are tired.
Answers the third insight: the research you have to do before you can write a word.
The home screen is a chat. Paste a job posting and Jobi tells you whether it is worth applying for, tailors your CV and cover letter, and researches the company, so you stop juggling tabs.
Jobi reads your CV against the job description and opens a separate tab with a CV editor. Pick a template and your CV appears adjusted to the role, with every change highlighted. Hover a highlight to see why it was made, or select any line and tell Jobi how you want it changed. Download the PDF when it is right. Jobi does the work; you make the final call.
Jobi drafts the letter from your CV and the job description and opens it in the same editor, in its own tab. Pick a template, see the lines written for this role highlighted, hover any of them for the reason, and rewrite any sentence by selecting it and telling Jobi what you would rather say. Download the PDF when it sounds like you.
Autofill was in the first build. To be useful it has to fill the details that repeat on every form: phone, email, address, place of birth. Storing those means holding sensitive personal data we would be liable for. We cut it entirely. Without those fields, what was left did not justify installing an extension.
The most repetitive part of applying stays manual, and one research finding is left deliberately unanswered. A smaller tool is better than holding data we cannot promise to protect.
Answers the silence from employers: when replies are rare, the few interviews you get have to count.
Answers the first insight: statuses logged by hand go stale.
Standard trackers weight every status equally in traffic-light colours, so a search that accumulates rejections becomes a wall of anxiety. Statuses split into Active and Closed instead: rejection is real but tucked away, and colour survives only in a small dot, at the cost of closed applications being harder to scan.
Answers the second insight: a rejection can stop the search for a week.
Three things in the tracker are there to get you going again. Reminders bring a role back before it goes quiet. Rejections move to Closed, so the pipeline you look at every day is the live one. And the streak counts the days you showed up: it never warns you that you are about to lose it, and after a rejection it goes quiet instead of loud.
The three designers, me included, ran research, ideation and design together in Figma. I built the MVP alone and released it as a private beta, then worked with a software engineer to debug it.
I am a designer, not an engineer, so I set the build up as a system before any of it was written. Claude Code held every interview, map and decision as one shared context, and each agent had a single job, which kept the build tied to the research.
Building and shipping alone up to the beta meant a decision could be in the product the same day it was made. It also meant nobody else read the code until an engineer joined to debug it. The panel reached 13,700 lines in one file before I noticed, and untangling it was work I had created by moving faster than I was reviewing.
Autofill was built before we asked what storing phone numbers and addresses would oblige us to protect. Cutting it was the right call, but it came after the build instead of before it. Research told us re-typing was a real problem. It could not tell us we would need a different answer to it.
The right tools, exactly when you need them.
Essential Context is a concept for Nothing OS that I designed alone in 48 hours: hold a button, say what you’re doing, and the phone builds a temporary home screen with only the tools for that moment.
The Challenge: One evening out can mean jumping between Uber, Messages and Wallet, each found by digging through an app grid. That hunting is friction the moment doesn’t need.
The Solution: Hold the essential button and say the situation. Nothing OS builds a temporary home screen for it, then puts the normal one back when it’s over.
Heading out for the evening, you don’t want to dig through app drawers for a ride and the booking. Essential Context builds a temporary screen with only those tools, so your attention stays on the evening.
Holding the essential button on the lock screen opens the setup, with a sweep of light. Choosing “Date Night” drops you into the curated screen, and the Glyphs show the time left before it expires. A yellow pill stays in the top right, so you can change the settings, or leave and get the normal home screen back.
Nothing’s pitch is intentional phone use: less time in apps, more time in the moment. Essential Context gets there by drawing on Nothing’s Essential features rather than adding another app.
In the Date Night example, each one does part of the work:
Together they turn a grid of icons into a screen built for the moment, and the more Essential features someone uses, the better that screen fits.
To feel native to a Nothing phone, the hardware has a part to play too:
Holding the essential button pulls up the Essential Context setup.
While a context is on, the back of the phone shows a simple icon (a cocktail glass for Date Night), so the people around you can see you’re focused.
The Glyph lights count down the context’s auto-expire timer, and only light up for your pinned priority contacts.
Two choices kept the interface as light as the idea:
Settings like “Smart App Filter” and “Priority Contact” are one-tap chips rather than menus, so setting up a context takes a few taps.
A small pill stays in the top right while a context is on. Tapping it opens Edit and Exit, one thumb’s reach away instead of buried in Android settings.
This was a 48-hour concept with no user testing, so these are the assumptions I would check before anything else:
Whether naming the moment, by voice or a chip, is quicker than opening the three apps yourself.
Whether auto-expire suits evenings that run late or end early, or should end on a signal like leaving the venue.
Whether the people nearby read the icon on the back as “focused”, or as the phone broadcasting.
Today a context starts by hand. Longer term, the OS could do it for you:
Build the screen from your routine, without being asked.
When a context misses a tool, Essential Search fills the gap, and the next context includes it.
Switch between saved contexts with a tap or swipe on the back, without waking the screen.
Context-specific widget themes and richer integrations as Essential Apps grow.
Turning a chore into a quest.
Quest Up is a fitness companion for gamers who sit for hours, built on the quest loop they already play. As founder and sole designer I took it from research to a high-fidelity concept, and it won the CitySpark startup competition and a £3K grant.
Gamers want to be healthier, but the motivation rarely becomes a habit: next to the instant rewards of a game, fitness feels like a chore. Quest Up borrows the game’s own loop, short, structured quests with instant rewards, to lower the barrier for sedentary players. It is a design concept: it won the CitySpark startup competition before an MVP was built.
Games hold attention with clear goals, instant feedback and visible progress. Fitness feels effortful, unstructured and slow to reward. So even gamers who want healthier habits default to long sessions sitting down: movement doesn’t fit the way they already spend their time.
Long inactive sessions bring low energy, weight gain, back and eye strain, and worse health over time. Because fitness feels intimidating and easy to put off, consistency breaks quickly, even when the motivation is there.
Quest Up lowers the barrier by borrowing mechanics gamers already understand. Movement becomes short, structured quests with clear progression and rewards, so exercise feels familiar, achievable and easy to start inside a gaming routine.
Making movement feel game-like should cut the friction at the moment of deciding, and encourage small, repeatable actions: healthier habits without giving up the games.
Research with 15+ gamers on Discord and at conventions revealed a paradox: gamers want to be healthy, but fitness lacks the immediate feedback loops of gaming.
“On average, I spend around 3 to 4 hours a day gaming.”
“I want to be more active, but I don’t feel motivated to exercise.”
“If I can see my daily progress visually, I might be able to stick with it.”
Fitness feels “unstructured and slow,” whereas games are “structured and rewarding.” We don’t need to change the gamer; we need to change the interface of fitness to match their mental model.
Gamers who want to be more active, but struggle to stay consistent.
People who find fitness intimidating and need a guided, rewarding structure.
Meet Adam, a 21-year-old computer science student who loves gaming, but is starting to feel the health impact of long sessions. He wants healthier habits, but struggles to stay consistent without giving up what he enjoys.
I mapped out the typical gamer’s lifecycle to identify the exact friction points. Adam’s goal: to exercise without breaking his flow state or feeling like he is “going to the gym.”
The focus became lowering the barrier to fitness by making movement feel familiar, rewarding, and easy to start within a gaming routine.
motivate gamers to engage in physical activity to improve their long-term health?
I reframed vague goals (“exercise more”) into binary quests (“do 10 squats”). This reduces cognitive load and decision fatigue.
Streaks and leaderboards guard against drop-off, but I made avatar progression the lead reward: levelling up a character is the RPG (role-playing game) trope this audience already plays for.
The layer reinforces the loop with visible progress (stats and streaks), social motivation (leaderboards) and self-expression (the shop and customisation), without adding steps to the core action.
Mapping the reward loop surfaced a risk: a motivated player could “grind” exercises back to back just to earn currency, and risk injury. Games reward exactly that behaviour; a fitness app can’t.
I added an energy system, a common gaming mechanic: each quest costs energy, and energy refills daily. It paces activity and guards against burnout and injury, and, as in games, a cap should leave players wanting to come back tomorrow.
A cap can feel restrictive, so it is framed as recovery and streak protection rather than a limit. The aim is safer pacing and habits that last.
The concept won the CitySpark Grand Final and a place on the accelerator, before a line of the app was built.
The progression and the energy system are design decisions, not tested results: you can’t usability-test a workout habit with a prototype. A first build for a cohort of 50 players would check three things:
Whether levelling up a character keeps people coming back better than streaks and leaderboards alone.
Whether the energy cap reads as rest and streak protection, or as the app stopping them.
Whether quests logged by phone or watch line up with the exercise people actually did.