Software that
keeps its word.

I design and build small, private tools for Android and the web: apps that run on your phone, use your own keys, and send nothing anywhere without asking.

currently building utter [android · web · interface design] [oss club · spark]
01

Index

4 projects · 2026
02

Selected work

[hover to develop]
001 — android

Utter

Wispr Flow–style dictation for Android, and on Android there wasn't one I could trust. So I built it for myself: hold a floating bubble, speak, and clean text appears in any app. It runs on your own Groq key and keeps a local word log with streaks and a weekly chart.

1.7MB
release apk · ~0.4 s cold start
role
design, engineering
stack
kotlin · compose · canvas · whisper
model
bring your own key
[utter][hold to talk]
“Let's move the review to Thursday, not Friday”
[words · 7 days]
002 — design · teaching

Spark

Spark is the OSS Club's intro to HTML, CSS and JavaScript for first-year students. I designed and built the benchmark site we show at the end, made from the same HTML and CSS they learn, to show students where the basics can take them.

400+
first-year students taught
role
design, build, teaching
stack
html · css · a little js
Spark 2026 landing page [spark 2026 · oss club]
003 — android · iqoo hackathon finalist

Smriti

A work log for people who don't work at a desk. Point the camera, say one line, and ask about it out loud later. The answer comes back with the original photo as evidence. OCR, speech and a Gemma 3 1B model all run on the phone.

0
network permissions · enforced at build time
role
team build · android
stack
kotlin · ml kit · gemma 3 1b
tested on
moto g05
Smriti capturing a photo, extracting a record and answering a spoken question [demo · moto g05 · 3× speed]
004 — web

Grounds

Google's AI answers cite their sources, but nobody checks whether those sources actually say what the answer claims. Grounds splits each answer into single claims and checks every one against the pages it cites, across markets.

148
searches · 8 markets · one recorded dossier
role
design, engineering
stack
typescript · serpapi
verdicts
grounded · miscited · unsourced · +5
Grounds landing page [grounds-sigma.vercel.app]
03

Design

4 projects · 12 pieces

001Utter

A flat, quiet interface built around one moving part: the bubble. Designed as a component system, then translated from code.

Utter design file cover: stop typing, just speak
Cover, “stop typing, just speak”2026
Utter bubble states and component set
Bubble states & component set2026

002Spark

Identity and site for the OSS Club’s intro to web development, built from the same HTML and CSS it teaches.

Spark landing hero
Landing hero2026
Spark mobile layout
Mobile2026
Learning pixel by pixel intro section
Intro, “learning pixel by pixel”2026
Replica event section
Replica event2026
Graphica event section
Graphica event2026

003Smriti

An offline work log you never type into: camera, one spoken line, and answers backed by the original photo.

Smriti screens: capture, ask, timeline, memories
Capture · ask · timeline · memories2026
Smriti app icon in red and green
App icon2026
Smriti ask screen with answer and photo evidence
Ask screen2026

004Grounds

An audit tool with a legal vocabulary: docket, deposition, dossier. Red is reserved for claims that don’t hold up.

Grounds dossier with four scores
Recorded dossier2026
Grounds verdict distribution chart
Verdict distribution2026
04

About

[student · developer · designer]

I build the tools I wish existed, and I'd rather have fewer features that work than many that almost do. I also teach, through the OSS Club's Spark classes.