~ $ ls ~/projects
Projects
Things I've built end to end, from agent-first products to privacy-first desktop apps, each with a write-up of the decisions behind it.
6 projects
FDE Training Roadmap
LIVE
HTML CSS Vanilla JS Design Tokens localStorage
An interactive internal training program that turns backend, frontend, and QE engineers into forward deployed engineers: a role-aware skills matrix, four overlapping phases plus a capstone, and mentor-signed exit checks across an ~18 week track.
Ships as a single self-contained 22 KB HTML file: no framework, no build step, no dependencies. Progress persists in the browser only via localStorage.
React Vite FastAPI Supabase Vercel Agent-First
A white-label construction-site ledger for builders, not accountants. Two-role permissions, an append-only audit trail, private receipts with signed URLs, and per-customer branding via build-time variables.
Agent-first operations: an AGENTS.md playbook plus idempotent scripts let an LLM agent stand up a fully branded instance from a three-sentence conversation.
Electron React 19 TypeScript Vite Dexie Recharts
A privacy-first desktop app that turns your Swiggy and Zomato order history into real spending analytics. The delivery apps show a scrollable list; Foodprint shows totals, trends, fee breakdowns, and export.
100% local: no servers, no accounts, no telemetry. A framework-agnostic capture core runs in an embedded Chromium session or a browser extension, and one normalized order model feeds five analytics surfaces.
React TypeScript Vite Firebase TensorFlow.js PWA
An internal team PWA for collaboratively tracking shared daily food expenses. Includes client-side LSTM expense prediction via TensorFlow.js and full offline capability.
Three meal categories (morning/lunch/evening), weekday-only validation, Firebase Auth with email domain restriction, stacked line chart analytics.
Next.js React TypeScript OpenRouter IndexedDB
A mindful purchasing decision tool. Users add items they want to buy, and a conversational AI engages them in a focused 3-10 turn dialogue, probing motivations before delivering a verdict: Spend, Save, or Repair/Upgrade.
Privacy-first: no accounts, no cloud sync, no data collection. Everything lives in the browser's IndexedDB. The 220-line system prompt IS the product.
Astro TypeScript MDX Vercel Firebase
This site. An Astro-powered portfolio and engineering blog, AI chat widget, light/dark theme, Mermaid diagrams, and multi-platform publishing.
Zero JS by default (islands architecture), JSON-LD structured data, RSS feed, sitemap, self-hosted fonts, and a persona-driven AI assistant.