Product Designer & Software Engineer

FREDERICTON, NB, CANADA NOW: CLOOTS · LIVE ON THE APP STORE

I design in code, because beauty belongs in function.

Scroll
01 · The journey

Four winters ago, none of this existed.

I came here for a degree. It turned out to be the side project. Finished it in three and a half years anyway.

Arsh Sethi in his first Canadian winter, Saint John, 2022.
SAINT JOHN · MY FIRST WINTER
2022 Cold start.

Saint John, September. The winter in that photo was my first one.

2022 Skipped the queue.

I never took Java I or Java II. Each semester, I wrote the final exam in week one and got the credit. First student at the Saint John campus to do that for both.

JAVA I · PASSED
JAVA II · PASSED
FIRST ON CAMPUS
2023 Built it, killed it.

An app for the 11am cafeteria line. The cafeteria became a buffet, so the problem stopped existing. I stopped too.

2025 Two at once.

A booking app that came back an A+, and an agency shipping client work.

2026 Two app stores.

Cloots. Designed and developed solo.

02 · ANY1 · 2022 · Android

Built at night, with the lights off, in a room I barely left.

People meet in group chats, and the door is a comment. gc any1, or gc anyone, left under a stranger’s Instagram reel. Every chat I was in started there. It still works that way.

You could not search for a group. Telegram returned four at a time, mostly channels for downloading things. Reddit gave you somewhere to post, not somewhere to talk. Discord had the servers and no front door. So I built the place that did not exist: search by interest, ask to join, talk. The name came from the comment.

I was nineteen and I had never heard of Dribbble. My mood board was other people’s apps. I downloaded things I liked and copied what worked, and mostly that meant Instagram: the inbox, the profile page, the settings sheet, the menu cards, and the double tap on the avatar that switches accounts. All of it by hand, in Kotlin, before a model would write a line of it for me.

I did not go outside much that stretch. A couple of months, a few trips out, and the rest of it was this. It worked, though. I put it on my friends’ phones and they used it. I was certain it was going to make me a millionaire.

ROLE
Solo. Design and build.
STACK
Kotlin · Firebase · Dagger-Hilt
BUILT
2022, first year
SHIPPED TO
My friends’ phones
THE 2022 BUILD, RUNNING
Same phone chassis as Cloots. Four years apart, one pair of hands.

I was certain this was going to make me a millionaire.ME, 2022, ON PRODUCT MARKET FIT

THE LAUNCH SCREEN
The collage is the group chats. That is what the app was for.
The ANY1 inbox: a wordmark, a search icon, a people icon, chat rows and a two-tab bar
THE INBOX
Instagram Direct, beat for beat, drawn by hand from memory.
SWITCHING ACCOUNTS
Double tap the avatar to switch accounts. Yes, I copied that one too.
03 · Cloots · Co-founder & Lead Engineer Cloots

A swipe feed
for streetwear.

Fashion discovery as a feed: swipe through streetwear from a 1M+ product catalog, and the app learns your taste as you go. Designed and built end to end: product, brand, motion, and the code underneath.

Visit cloots.ca ↗
1M+ PRODUCTS IN THE CATALOG
~1.5s SEMANTIC SEARCH RANKED
2 APP STORES
1,000+ EXTERNAL TESTERS
RECORDED LIVE, NOT A PROTOTYPE. THE SHIPPED APP.
Cloots swipe feed: a full-bleed product card with dark glass chrome and a single green accent
A Cloots product page: sizes, details, and a Shop on BAPE handoff to the brand's own store
Ask Cloots: a conversational AI search bar sitting under the feed
The Cloots closet: a grid of saved pieces, each labelled with what it is
Cloots taste-model screen: the algorithm explains, in plain language, what it has learned about your style
Under the feed

It learns while you swipe.

The recommendation engine learns from swipes in real time: OpenAI embeddings and vector search over the catalog. Semantic search returns ranked results in about 1.5 seconds, and the taste model rebuilds itself from stored history if state is ever lost.

SWIPEa signal, every gesture
→ EMBEDthe product becomes a vector
→ RANKnearest to your taste wins
→ FEEDthe next card already knows
DECISION 01 / 04

The clothes are the only color.

Product photography owns the whole frame. Chrome pulls back to dark glass at the edges, and a single accent is held for the moments that matter. The interface never competes with the clothes.

DECISION 02 / 04

Every swipe answers back.

Motion is the feedback channel. Cards tilt, resist, and leave with momentum. Nothing teleports, so the interface always says what just happened and what it cost.

DECISION 03 / 04

The first session had one job.

Get to the feed. Sign in, swipe, and the app starts learning. Density can wait. Clarity cannot.

DECISION 04 / 04

Empty is not broken.

Empty, failure and offline are designed screens, not leftovers, because the screen with nothing on it is the one most people meet first. Each one says what is happening and points at the next action.

Designed and developed solo. Shipped as a team. Très beau.

IOS + ANDROID · LIVE ON THE APP STORE Visit cloots.ca ↗
04 · Helv · Fourth-year coursework · 2025

A school project that forgot it was one.

The feedback singled out the fidelity. It was further along than the stage asked for.

That was not talent. I had already shipped apps, so I turned up with the components already built and spent the term on the parts that were actually hard.

Helv books home services: browse the category, pick the job, book it. Designed and implemented the full application, interface through to the Firebase data model underneath.

A booking is a small state machine. Every screen is a view of where that machine currently is, which is why the data model got drawn before the first layout did.

  • Kotlin
  • Firebase
  • Android views
  • No Compose
The Helv app icon
Helv home: a search field, and service categories with photography, near Fredericton
HOME
Categories, and who is near you.
A Helv provider page: rating, availability, arrival time, distance, experience and hourly rate
PROVIDER
Arrival, distance, experience, rate. The whole decision on one screen.
Helv jobs: booking cards showing pending status, scheduled time, amount and a cancellation window
JOBS
Pending, scheduled, cancellable. The state machine, visible.
A Helv job detail: schedule, hourly rate, estimated duration, total amount and contact information
JOB DETAILS
Schedule, rate, duration, total. Nothing hidden until the end.
A Helv message thread between the customer and the provider, with a composer at the bottom
MESSAGES
The provider answers, in the app.
The Helv profile screen: premium upgrade, promotions, support, referrals and account management
PROFILE
Premium, promotions, support, referrals.
05 · DAP Atlantic Tech Inc. · Sept 2025 to now

Where the deadline belongs to somebody else.

A registered agency in Atlantic Canada. I sit with the owner, scope it, build it, launch it, and keep it running. No handoff, no account manager in between.

  • React
  • TypeScript
  • SASS
  • HTML5
  • CSS3
The DAP Atlantic Tech website
DAPATLANTIC.COM
01

A restaurant that stopped retyping its own menu

Data-driven menu system, plus an accessibility pass the old site never had.

02

An immigration consultancy that reads the news for you

Marketing site with a live feed, summarised through an LLM API.

06 · Groundwork

Everything the rest of it was built on.

G.01

A Java Android app exposing complex SQL database operations through a mobile interface: the UI, the database interaction layer, and the operation workflows. Designed and built inside one deadline sprint.

ROLE
Solo · design + build
STACK
Java · MySQL · Android
YEAR
2023
BUILT IN 12 HOURS GITHUB ↗
G.02

A full university course of web applications in Angular, some solo and some in a team, including front ends wired to a REST API with authentication. The course where the browser stopped being a mystery.

ROLE
Solo and team
STACK
Angular · TypeScript · SASS · REST
SCOPE
Several applications, one course
WEB · AUTH · API
LANGUAGES
Java · Kotlin · Dart · TypeScript · Python
PLATFORMS
Android · iOS · web · serverless
SHIPPED
2 app stores, 1 agency, 1 campus
More on GitHub ↗