Personal Projects

Things I've built

Side projects outside my day job. Most of them are local-first tools I built for problems of my own: my photos, my investments, my laptop, my browser.

Agents, computer vision and analysis

Computer Vision

FaceGroup

Local-first face grouping and search for a personal photo library, using InsightFace. Also finds text in images, sorts photos into categories, spots duplicates and bursts, and builds a timeline with events and "On this day". Your photos never leave your computer.

Python InsightFace OCR Clustering
RAG & Agents

sql-agent

Multi-agent RAG system for vendor data analysis. A ReAct SQL agent writes and runs SQL over SQLite, with a self-correcting retry loop. Switches between NVIDIA NIM, Azure OpenAI and OpenAI.

Python ReAct SQLite Multi-Agent
Research

Agentic Systems Deep Dive

Teardown of seven agentic systems: Oracle Data Science Agent, Julius AI, DeepAnalyze-8B, Agno Dash, Airflow 3 + Astronomer Otto, Hermes Agent and Omnigent. Each covers architecture, a workflow diagram, how it plans and orders tasks, memory, and trade-offs.

Agents Architecture Mermaid
Data Analysis

Understanding Our Learners

Analysis of a 325-response student survey, cleaned and turned into learner personas, engagement tiers and teaching strategies, published as an interactive report.

Data Cleaning Personas HTML

Making sense of my own money

Dashboard

FundMatrix

Local-first dashboard for Indian mutual fund portfolios. Parses a password-protected CAMS CAS PDF, rebuilds lot history with FIFO matching and marks it to market against live NAVs.

Python Flask PDF Parsing FIFO
Data Pipeline

Bank Statement Analytics

Cleans and merges bank statements from HDFC, SBI, IDFC, ICICI and others (XLS, XLSX, CSV, including password-protected files) into one deduplicated ledger, with a dashboard on top.

Python Pandas FastAPI Chart.js
Parser

CAMS_mf_parser

Parser for CAMS + KFintech Consolidated Account Statement (CAS) PDFs that extracts mutual fund transactions.

Python Data Extraction

Utilities for my laptop and phone

Windows

Storage Explorer

Shows where disk space goes with a clickable treemap and plain-English advice on common folders, then finds byte-identical duplicate files left behind by backups and moves the extra copies.

Python Hashing Windows
Windows

Thermal Monitor

Reads every temperature sensor on a Windows laptop (CPU, Intel iGPU, NVMe SSD, battery) plus power, load and clock speed. Logs everything to CSV and shows live graphs.

C# Hardware Sensors Live Graphs
Android

Glint

Always-on display for the Galaxy S25 that shows notifications as small coloured icons per app and per person, like the old notification LED. Needs no Accessibility service, so banking apps keep working.

Kotlin Android
Web App

my-life-helpers

Lightweight vanilla JS web apps backed by Firebase, starting with a tracker for credit card bills and personal debts.

JavaScript Firebase

Chrome and Edge extensions

Chrome Web Store

Video Speed Control

Control the playback speed of any video on any website with the backtick key. Works with embedded players, iframes and shadow DOM. Originally published as YouTube Speed Controls.

JavaScript Chrome Extension
Extension

DarkMode

Dark mode for any website in Chrome and Edge, including the built-in PDF viewer. Two modes: smart invert that keeps images natural, and a classic overlay.

JavaScript Chrome Extension
Extension

Advanced Regex Search

Regex find-in-page with up to 8 searches at once, each in its own colour. Uses the CSS Custom Highlight API, so the page's DOM is never modified.

JavaScript Regex Chrome Extension
Extension

TabOpen

Opens a list of links or search terms in new tabs in one click.

JavaScript Chrome Extension

Older projects

Hardware, Python and web projects from my college years, including the Moodle attendance bot and the colour identifier.

View the archive →