Skip to main content

Adarsh Panikkar, Product designer who builds for fun

Hello! I'm Adarsh, a product designer born in India and now living in Dubai. I like building the things I design.
I spent three years at Juno, going from designer to leading the design team, then co-founded Kitt and spent two years as CPO, taking it from zero to AED 1.5M in bookings.
I'm now looking for my next role, so if you think we'd be a match, here's what I'm looking for.

Kitt

Co-Founder & CPO · 2024–2026
Kitt is a corporate travel platform for companies in the GCC. I co-founded it and led product, design and engineering with a team of four.
We built booking for flights, hotels and cars from scratch in about nine months, raised a SAFE round, and grew to five corporate clients and AED 1.5M in bookings.

Building the AI travel agent at Kitt

An AI agent that booked flights, hotels and cars on production infrastructure, shipped in beta by a four-person team.

Transactions and insights at Kitt

One booking ledger for accounting, spend and compliance.
Kitt Transactions

Building blocks

A collection of brand identities and logos designed over the years, across startups and side projects.
Brand & Logos

Juno

Lead Product Designer · 2021–2024
Juno was a US neobank: an FDIC-insured USD account with a crypto wallet on top. I joined as a product designer and was promoted twice, to leading the design team.
I designed the Juno Store, which gave three years of unspent JCOIN somewhere to go, and led design on the B2B expansion into Transak, coin swaps and bill pay.

Building the Juno Store

JCOIN went tradeable with three years of it sitting unspent. The Juno Store turned the burn into cashback boosts, gift cards and hardware wallets.
Juno Store

Side projects

Design and build · Ongoing
Small products I make on my own, start to finish, from the first sketch to the App Store.
Hush is live on the App Store. Trace is in closed beta.

Hush

A focus app that hides distracting apps rather than blocking them, and starts a session when you tap your phone to a physical NFC tag.
View on App Store

Trace

Currently building
A budgeting app for the UAE that logs your spending from bank SMS, decides what is actually a transaction, and remembers every correction you make so you only make it once.
Back

Building the AI travel agent at Kitt

An AI agent that booked flights, hotels and cars on production infrastructure, shipped in beta by a four-person team.

Context

Kitt was a corporate travel platform for companies in the GCC. Flights, hotels and cars on our own inventory, a policy engine underneath, and a ledger that handed finance their books at the moment of booking. The self-serve flows were the part customers used every day, and they worked.

Solution

A two-panel shell with a stack of sheets over it.

The conversation holds the answer and a short strip of recommendations, and nothing heavier. Anything that needs room opens as a sheet on top of the chat: the full result set, a hotel's rooms, a trip itinerary. Sheets stack, and closing one puts you back exactly where you were. That is the whole navigation model, and following a result never costs you the thread you were on, because there is nowhere else to go.

The composer

The smallest surface in the product and the most used one. Typing @ opens a people picker that sets who the booking is for, and a message will not send without one. Corporate travel is nearly always booked by someone other than the traveller, so naming them at the point of writing took a whole class of ambiguity out of every turn that followed. It also gave the composer somewhere to put structure when a request needs it: a booking template with fillable chips, and voice, for when typing an itinerary is the slow way to say it.

Flights, hotels, cars - type @ for travellers

Adarsh Panikkar

Default composer

New booking

Show me flights fromOrigintoDestinationforDatesinEconomy
Neha Sharma

Add-a-flight template with fillable chips

Recording…

Omar Al Hashimi

Voice recording — waveform loops while listening

A thirty-second wait

A flight search fans out to three suppliers at once and can take thirty seconds to come back. A spinner stops being believable at about three. So the wait is a sequence rather than a state. It says what it is doing in the order it does it, then streams airline logos past while results are curated, and resolves on a count. The thirty seconds are unchanged. They read as work rather than as a hang.

Thinking...
Searching flights...
Loaded your profile
Reviewed travel history
Checked travel policy
Searching flights...
Curating results...
EK
EY
UX
Found 68 flights.

Every state a search moves through, from thinking to results

Flights in the conversation

Recommended flights come back as cards, cheapest direct first, with refinement chips underneath so the next turn is a tap instead of a sentence. Three or four cards, never sixty. The conversation is for the answer.

The all-flights browser

"Show all flights" opens the complete result set, not a longer version of the agent's picks. That one was deliberate. An agent that only ever shows you what it chose is asking for trust it has not earned yet, and the sheet carries the same filters and sort as the rest of Kitt, so the way out of the conversation is the product people already knew.

Hotels on a map

Hotels broke the card pattern. The first question anyone asks about a hotel is where it is, and no amount of prose answers that. So a hotel search resolves onto a map with the list beside it, hovering either one lighting up the other.

Trips in a split view

Trips get more room than anything else. The card in the conversation stays compact, and View splits the layout rather than opening a modal, so the itinerary and the conversation are both live at once. It is the one place where the answer is something you read instead of something you buy, and reading wants a column of its own.