Akash Kalsi~/akash-kalsi
Akash Kalsi · UI/UX Lead · Mindbowser · Panchkula, IN

The distance between deciding something and it being real —

a handoff.
now it's
a branch.

I lead a design team that stopped delivering Figma files. We design directly in Claude Code, in the client's repo — and I wrote the delivery standard that makes that safe for complex, regulated products. The proving ground: US healthcare, where getting it wrong is expensive.

see the work
§1 · selected workthe problem, the decision,
and the difference

Three products, one process.

Two of these came out of client engagements. One is under an NDA that isn’t going anywhere, so I rebuilt it from scratch — same problems, same decisions, my own data, on my own domain. On the other I took the client’s name and branding out, because those were never mine to publish. The third had no client on the other side of it at all. Everything below is open; the two client names are the only part I’m holding back.

LifeRelaymy rebuild, not client data

Coordinating a transplant, against the clock.

Problem
Organ viability is measured in hours, and a slow screen costs outcomes, not conversions.
Decision
Replaced hand-picked favourite centres with criteria each centre declares in advance.
FairMarkclient engagement · I owned the build

Telling a student what it costs, while they can still fix it.

Problem
Most platforms report what’s missing after submission — as a verdict, not information.
Decision
The warning names each criterion, its exact weight and what proceeding costs — while there’s still time to fix it.
Delivery standard v1.0published as written

Taking Figma out of a design team.

Problem
Once the deliverable is an app that auto-deploys to the client, every habit a design team has needs rewriting.
Decision
One feature, one branch, one commit, two pull requests — so publishing to the client is always deliberate.
§2 · carrier oneClaude Chat
one project, one conversation

Everything we hear, read or decide goes into one thread.

A design sprint fails in the gaps — the decision made on a call nobody wrote down, the constraint that lived in one person's head. So we removed the gaps. Nothing is allowed to live only in someone's head.

One project per client; every document, call, email and correction joins the same running conversation. Transcripts join it only after I have read them and corrected what the model misheard — what becomes canonical has to be my judgement, not the model's. The artefacts the client signs are then built straight out of that thread, so the sheet and the conversation cannot drift apart. The client signs the list and the diagram, and only then does the thread change carrier.

One project per client. The first message carries everything.

sales handover the brief call notes whatever screens exist the client's own sheet one thread

There is no second thread. Everything that arrives later joins this one, which is what makes the sheet and the conversation impossible to drift apart — they are built from the same context.

the shift · chat → code

Chat and Code share no memory. The context is carried across by hand.

The most fragile point in the whole flow. It crosses on .md files, into every repo, on the right branch.

CLAUDE.md PROJECT_BRIEF.md design.md constants.md feature.md + convention files · from the boilerplate

What isn't written down doesn't make it across.

§3 · carrier twoClaude Code
sessions, stitched by handoff files

One feature, one branch, one commit, two pull requests.

The coded deliverable auto-deploys to the client's review site, so one fact drives everything: a merge is a publication. The standard I wrote has two jobs beyond tidy code — make an accidental publication impossible, and make a bad deploy detectable rather than merely unlikely.

design branch — merging here publishes feature/<wave> one commit merge = publish dev PR — theirs to merge, never chased
the wave loop[email protected] Every feature runs this once. The feature branch is cut from the design branch rather than from dev, so the review build always holds what the client last signed off.

I review in a browser against the spec, never by reading the diff — the defects that matter pass typecheck, lint and build while being plainly wrong on screen. The design PR is mine to merge, deliberately, because merging publishes; the dev PR belongs to the engineering team, on their schedule, so a naming comment never holds up a client demo. And a green tick only says the job ran, so a wave ends by diffing the deployed asset hashes against my own build.

Nothing in the standard is theoretical. Every warning in it is something that went wrong once — and cost real time to find.
— delivery standard v1.0 · §why this exists
§4 · on papercounted, not claimed
4y 10m
at Mindbowser —
designer → senior → lead
4
gates before
every push
40+
design sprints —
most in US healthcare
3
annual company awards,
three years running
2
postgraduate programmes —
the second in UX + AI

M.Des in User Experience Design, AI specialisation — Jindal School of Design & Architecture, O.P. Jindal Global University. Earned in the margins of a full-time job.

§5 · historya career, committed

A career, in commitsgit log --oneline

~/akash-kalsi $ git log --oneline --graph
*f2a9b41(HEAD → open/to-work) feat(next): looking for the room where this is normalnow
*b4d02aafeat(process): delivery standard v1.0 — figma removed from the pipelineaug 2026
*3e5a90fdocs(degree): M.Des UX Design, AI specialisation — JGU · alongside the day job2026
*8c17d3efeat(role): promoted — UI/UX Leadmay 2026
*91cc7f0feat(role): promoted — Senior UI/UX Designermay 2025
*4d8e2b9feat(recognition): annual company award — third year running×3
*a7f31c5feat(craft): shipping design in regulated products · US healthcareongoing
*0b6d94efeat(career): joined Mindbowser — UI/UX Designernov 2021
*c59e01dinit(career): first design role — DarkLion Studiomar 2021
§6 · the domainwhere I'm deep

US healthcare, where getting it wrong is expensive.

Nearly five years of it. Regulated workflows, many roles, real accessibility requirements, and stakeholders who know their domain far better than I know mine. It's the environment that taught me to write everything down. The domain is the proof, not the ceiling — the same discipline carries anywhere the stakes are real.

Accessibility
Not a checklist at the end — in healthcare it's frequently the constraint that reshapes the information architecture.
Multi-role systems
Feature lists and flows built per role, never combined. The discipline that stops a platform collapsing into one confused screen.
Regulated workflows
Where copy is a claim, seed data carries authority, and an unbuilt claim in the interface is a defect — not a wording problem.
Stakeholder rooms
Clinicians, PMs and engineering leads disagreeing productively. Getting to a decision is most of the job.
§7 · the humanoff the clock

Selectively extroverted. Reliably obsessive.

I'm from Panchkula, near Chandigarh — studied here, live here, never particularly wanted to leave. I did my master's in the margins of a full-time job: two years of intensives, immersions and a great many late nights.

The thing I'm actually good at is finishing. I like the part most people find tedious — the state nobody designed for, the edge case in the role matrix, the fourth review pass. My work reads as pedantic until the week it saves someone.

Away from the desk: snooker, cricket, and an unreasonable number of Nolan rewatches.

snooker cricket Nolan & thrillers Panchkula · IST backend next
Akash Kalsi — navy suit, standing in an office
akash · panchkula
§8 · end of threadthe merge

If your designers ship code — what are you calling them?

I asked that publicly and never got a good answer. If you're hiring for the thing I actually do — design judgment carried all the way to the merge — let's talk.

feat(team): add akash kalsi
#0001 · akash wants to merge 1 commit into your-team:main from akash:open/to-work
design review — passed · you're looking at it
code review — passed · view source, it's hand-written
gates — 4/4 · typecheck · lint · prettier · build
Merge pull request merging opens your mail client · [email protected]