Portfolio

Things I've built.

Back-end services in Java, Spring Boot and Go, plus the React and Angular front-ends that talk to them.

Live

Random Password Generator

Generate a strong password with one click and have it copied straight to your clipboard. Choose the length, character types and characters to exclude, or use presets for Wi-Fi, .env files and URLs. It also makes memorable passphrases, PINs that avoid obvious patterns, and API tokens, with a strength meter that estimates crack time. Everything runs in the browser using the Web Crypto API, so nothing is ever sent anywhere.

  • JavaScript
  • Web Crypto API
  • HTML
  • CSS
  • Node test runner
Live

World Clock Dashboard

See the time for friends, family and teammates around the world on one dashboard. Pick from 7,000+ cities and six clock styles, see at a glance who's in working hours, scrub a meeting planner to find a good slot, and share your city list by link. Daylight saving is handled for every zone, choices are saved in the browser, and it installs on a phone as an offline app.

  • React
  • TypeScript
  • PWA
  • Luxon
  • Vitest
  • Playwright
Live

Markdown to PDF

Write or import Markdown, preview it as a page and download it as a PDF. It can also read the document aloud, highlighting each paragraph as it goes. Everything runs in the browser, so nothing is uploaded.

  • JavaScript
  • Vite
  • Vitest
  • Web Speech API
Live

Age Tracker

A full-stack app for tracking people's ages. The TypeScript UI runs on a REST API built with Go, Gin and PostgreSQL that lists people and adds new ones.

  • Go
  • Gin
  • PostgreSQL
  • TypeScript
Source

CRWN Clothing

A single-page clothing store built with React, Redux and React Router. It uses Firebase for sign-up and login and the Stripe API for payments.

  • React
  • Redux
  • Firebase
  • Stripe
Live

Hotel Badrri Bhavan

A restaurant menu site with an AngularJS front-end and a Spring Boot back-end. This was my first Spring Boot app.

  • AngularJS
  • Spring Boot
  • Java
Live

Robo Friends

A single-page directory that filters a list of friends in real time as you type in the search box. It started out as the Cat Friends pet store demo.

  • React
  • TypeScript

Small experiments