← home

projects

gis & mappingsolves day-to-day problemssolves day-to-day problemssolves day-to-day problemsstartupsHERETechnologiesSiteStockApplicationVaultBugDigestHEREHackathonMintiICGgis & mappingsolves day-to-day problemssolves day-to-day problemssolves day-to-day problemsstartupsHERE TechnologiesSiteStockApplication VaultBugDigestHERE HackathonMintiICG
2024 – presentrepo

SiteStock

construction inventory platform

A materials inventory system for a multi-site construction company, replacing spreadsheets with a mobile-first web app. It tracks every material movement in and out of every site, live stock levels, purchase invoices, and physical stock audits. In production, managing $29M+ of inventory across 20+ construction sites, and it cut inventory errors and reconciliation time by 35%.

How access works. Five permission levels, from read-only viewer up to org owner, and a user can hold a different role on every site. Permissions are enforced twice: the backend checks the role on every single route rather than relying on one middleware catch-all, and the database has row-level security policies on every table as a second line of defence. Even someone who got past the API would still be stopped at the database.

Why the ledger never lies. Nothing is ever deleted, only marked deleted, and every create, update and delete is written to an append-only log with the old and new state and the IP address. Creating a purchase invoice writes the stock movement in the same database transaction, so the bill and the stock level can never disagree.

Where the numbers come from. Live stock is a SQL view, not a Python loop: inward minus outward minus consumption, grouped by site and item, computed in the database along with stock value and an automatic minimum-stock threshold based on six months of usage. It costs the same whether there are two sites or two hundred.

Application Vault

chrome extension

A browser extension that saves your entire job application at the moment you submit it: the posting, the exact resume version you attached, and every answer you typed into the form. It comes with a spreadsheet-style tracker for interview status and notes, and a searchable bank of every answer you have written before, so you stop rewriting the same paragraph. Everything is stored locally in the browser, with export and import, so none of it leaves your machine.

Application Vault product screenshot
application vault

BugDigest

chrome extension

A debugging tool for whatever you are building on localhost or staging. It pulls the signals scattered across the browser’s developer tools, console errors, failed network calls, warnings, and ranks them into one readable digest of what is actually broken, with a copy-as-markdown button for pasting into an AI assistant. It runs entirely on your machine with no model calls, so it costs nothing to run at any number of users. Built for people learning to build who do not yet know how to read a stack trace, without dumbing it down for people who do.

BugDigest product screenshot
bugdigest, in the browser
apr 2026post

HERE Chicago Geospatial Hackathon

runner up

A weekend hackathon on making city mapping data more reliable by catching real-world errors automatically instead of by hand. We built a pipeline that pulls signal from imagery, clusters it into candidate corrections, and fuses the evidence with a method that can represent genuine uncertainty rather than forcing every case into a hard yes or no. We presented the approach to the judges and were runner up.

The specifics stay confidential, but it was a really fun problem to work on!

HERE Chicago Geospatial Hackathon team photo
team photo

Minti

HackIllinois 2025 fintech track winner

The idea came out of a dinner where a friend was trying to figure out how much they could actually spend that night, with rent, a dinner, and a concert all landing the same week. Most budgeting tools only show what has already happened, not what’s coming, and they ignore context like upcoming events.

Minti is a budgeting tool that reads your calendar to predict what you’re about to spend. It combines calendar parsing with embeddings over past transactions to forecast upcoming expenses tied to specific events, with a chat assistant on top for questions about your own spending. Built the first version at HackIllinois 2025, then kept going: it’s now a hybrid prediction engine on Flask, React, and the OpenAI and FullCalendar APIs, running with 30+ active users at around 85% accuracy on recurring expense forecasts, with a provisional patent in progress on the forecasting model.

Minti team photo at HackIllinois 2025
team minti, hackillinois 2025
Minti app screenshots
the app