Toggle theme D

Projects

Everything I’ve built. The label on each is the kind of problem, not the stack.

Product engineering

formforge

livecode

A drag-and-drop form builder in a Turborepo monorepo, with end-to-end tRPC type safety, shared Zod schemas, server-validated conditional logic, funnel analytics and custom JWT auth.

Next.js · tRPC · Express · Drizzle · PostgreSQL · Turborepo

Retrieval

lecturelens

livecode

A RAG assistant over course subtitles that cites the exact module, lesson and timestamp. 1,955 transcript chunks indexed with local embeddings to stay off the rate limits, then HyDE to bridge spoken phrasing and LLM reranking of up to 10 candidates down to 5.

Node.js · Qdrant · Transformers.js · Gemini · React

Applied AI & domain modelling

Reconciles Razorpay settlement GST against GSTR-2B in four layers: detect, investigate, explain, act. Arithmetic produces every figure and an MCP tool-calling loop classifies what is left over. Any answer citing a record absent from the batch is flagged on screen before a person confirms it.

Next.js · Vercel AI SDK · Claude · MCP · PostgreSQL · Drizzle

Identity & protocols

custom-oidc-provider

livecode

A self-hosted OpenID Connect provider built from scratch: Authorization Code flow with PKCE, SSO session cookies, RS256 signing and JWKS-based verification. Reading the spec was most of the work.

TypeScript · Node.js · jose · Drizzle · OIDC

Hosted on a free tier that sleeps. The first load takes about 30 seconds.

Everything else

Retrieval

commonplace

livecode

PDFs, web pages, YouTube and transcripts ingested into notebook-isolated pgvector search, with streamed answers whose citations jump to the exact page, timestamp or passage.

Next.js · Supabase · pgvector · Groq

Concurrency & correctness

stellar-tickets

livecode

Movie ticket booking with atomic seat reservation, so two people clicking the same seat at the same moment cannot both get it. 1st place, ChaiCode hackathon.

TypeScript · Express · PostgreSQL · Drizzle · JWT

Hosted on a free tier that sleeps. The first load takes about 30 seconds.

Compilers & tooling

teawindcss

livecode

A browser-native, utility-first CSS engine that parses class names and generates the styles at runtime, with no build step anywhere. 1st place, ChaiCode hackathon.

JavaScript · MutationObserver

Realtime systems

pollflow

livecode

Polling platform with live vote streaming over Socket.io, analytics dashboards, QR-based sharing and branded results cards exportable as PNG.

Node.js · Express · MongoDB · Socket.io · React

Event streaming

live-location-tracker

code

Signed-in users share a location and watch each other move on a map. Socket.io feeds a Kafka topic, one consumer group broadcasts and another persists, so writing the history never blocks the live fan-out. Sign-in runs through my own OIDC provider.

Node.js · Socket.io · Kafka · Leaflet · Docker

Tools

A stopwatch and a timer in one, with presets, a picker, light and dark themes, and keyboard and screen reader support all the way through.

React · Vite · Tailwind CSS