Side Projects & Experiments

Building tools that solve real problems — and some just for fun · see full portfolio

🎤

Murmur

Voice Notes2026

The Problem

Capturing quick voice notes and transcripts often means signing up for a service or sending audio to a server, which is overkill for lightweight personal use.

The Solution

A minimal, single-page recorder that runs entirely in the browser. Record, play back, and transcribe voice notes with no backend, keeping everything local to your device.

Murmur voice notes interface preview
JavaScriptWeb AudioWeb Speech APIHTMLCSS
📄

Blogger Takeout to MDX

Content Migration2026

The Problem

Blogger users who want to move to modern static site generators face content lock-in. Posts, images, and comments are trapped in a proprietary export format with no clean migration path.

The Solution

Converts Google Takeout Blogger exports into MDX files with YAML front matter and organized local media assets. Also generates WXR files for importing comments into Disqus, preserving community discussions during platform transitions.

Blog site built with migrated content
PythonMDXAstroWXRDisqus
📱

Office Days

Mobile Development2025

The Problem

Hybrid workers need to track how often they go into the office to meet return-to-office policies, but there's no simple way to log badge days and see attendance percentages over time.

The Solution

A mobile app with a calendar interface for one-tap office day logging. Provides monthly, quarterly, and yearly attendance statistics with configurable business quarters — all stored locally on-device for privacy.

Office Days app screenshot
React NativeExpoTypeScriptJest
⚙️

CSV2Dataset

Data Platform2022

The Problem

Open data enthusiasts download CSVs from sites like Data.gov and Kaggle, but managing dozens of files locally wastes disk space and makes discovery painful. There's no easy way to compress, catalog, and query them.

The Solution

A local web app that converts CSV files to Apache Avro format, achieving 60-90%+ compression while preserving queryability. Upload, preview, tag, and manage datasets through a clean interface with REST and GraphQL APIs.

CSV2Dataset import interface
JavaSpring BootApache AvroApache SparkThymeleafGraphQL
🏦

Mortgage Delinquency Analysis

Financial Analytics2021

The Problem

Understanding mortgage market health across U.S. regions requires sifting through CFPB's National Mortgage Database — raw data that's hard to interpret without visualization and time-series context.

The Solution

Analyzes residential mortgage delinquency trends (2008–2021) across states, metros, and counties. Tracks early-stage (30–89 day) and serious (90+ day) delinquencies through Jupyter notebooks and an interactive Streamlit web app.

Average delinquency trends visualization
PythonPandasStreamlitJupyter
❤️

Simple Health Tracker

Health Tech2020

The Problem

Daily health logging (blood pressure, glucose, weight, meals) shouldn't require trusting a third-party service with sensitive data. Most health apps store your information on their servers.

The Solution

A privacy-first health logger that sends entries directly to your email via SMTP — no database, no server-side storage. Your health data lives in your inbox, under your control, ready for extraction whenever you need it.

Simple Health Tracker interface
Node.jsExpressNodemailerBootstrap
🏠

HouseHunt

Data Analysis2018

The Problem

Homebuyers need comparable sales data to make informed offers, but professional real estate APIs are expensive. Manual comparison of Redfin listings is tedious and error-prone.

The Solution

Built during a real East Bay home search in 2018. Click any property in the data table to see comparable recently-sold homes and average pricing — turning raw Redfin CSV exports into actionable buying intelligence.

HouseHunt data table interface
RShinyDTdata.table
🎓

EduExplore

Web Application2017

The Problem

Prospective students researching graduate programs (like Data Science) struggle to compare programs across universities. Official databases are dry and community knowledge is scattered across forums.

The Solution

A crowd-sourced platform built on the Database of Accredited Postsecondary Institutions. Users can search, compare, and contribute program information, making college research collaborative instead of solitary.

EduExplore homepage
MongoDBExpressAngularJSNode.jsBootstrap
📢

Angry Consumer

Data Visualization2016

The Problem

The CFPB publishes millions of consumer finance complaints, but the raw dataset is overwhelming. There's no easy way to filter, explore patterns, and visualize complaint trends against financial institutions.

The Solution

An interactive web app with server-side filtering and Google Charts visualizations that make CFPB complaint data explorable. Browse by company, product type, and date range to surface patterns in consumer finance complaints.

Angry Consumer data table
MongoDBExpressAngularJSNode.jsGoogle Charts