Dashboard Comparing Users of a service

Google Sheets Dashboard

used public data from a company and cleaned it. after cleaning data split into 2 variants to compare single use and reapeated use customers. Dashboard was created to represent the differences

Dashboard showing COGS revenue

Power BI guided Capstone "file"

- Dashboard with dynamic Features.
- Used Power Query to clean data before constructing visuals.
- Determine relationships between data and use reference tables in Power Bi.
certificate

Dividends Researcher

- Web APP
- Track stocks and dividend income.
- Calculate potential margin interest costs (Robinhood).
- Visualize historical stock data with charts.
- Get AI summaries for companies and TSR.
- Monitor and log API usage.
- Saves all user data locally.
- Gemini used in building the app.

Selected Projects

Systems I designed and built end to end — from data pipelines and local inference to packaged desktop tools. Interfaces shown below are sanitised reconstructions; no production data appears anywhere on this page.

Hermes Watch activity dashboard

Hermes Watch

Local work analytics for Windows · Python, SQLite, Chrome extension

A portable Windows app that samples machine and human activity and turns it into an honest daily summary. A native collector records CPU, memory, disk, network and GPU load, the foreground window, per-process I/O and idle time. A Chrome extension covers the browser half: open tabs per profile, the active tab, time per domain, and a deliberately narrow page context — with no page text, keystrokes, clipboard contents or screenshots ever read. Everything lands in one SQLite database in WAL mode, and a localhost dashboard streams live state over Server-Sent Events. Summaries run on a deterministic rules engine, with a language model only optionally adding narrative.

  • Python
  • SQLite WAL
  • Chrome MV3
  • Server-Sent Events
  • Win32
  • nvidia-smi
● Not publicly downloadable. Request a copy and I will share the project on request.
Local Si model catalogue dashboard

Local Si

Self-contained local model stack · Python, llama.cpp, CUDA

Running a useful model locally usually means juggling an inference server, a chat client and hand-edited configuration. Local Si puts all of it in one folder: a Python web app that manages pools of GGUF models, serves them through a single compatible endpoint, and embeds a full agent harness as a second tab in the same window. A hardware scan rates every model against the machine in about a tenth of a second. Two updaters stage, smoke-test, swap and automatically roll back llama.cpp and harness builds, so a bad release cannot leave the stack broken. It runs entirely offline and mirrors byte-for-byte to a second drive.

  • Python
  • llama.cpp
  • GGUF
  • CUDA
  • three.js
  • rsync
● Not publicly downloadable. Request a copy and I will share the project on request.
System Doctor operations console

System Doctor

In-place Windows repair console · PowerShell, Three.js, local AI

Laptops that stay in service drift: policy quietly reverts, caches and update stores inflate, services stop, drivers fail after a patch. The standard remedy is a reimage, which costs hours and wipes working state. System Doctor treats a captured OS image as the definition of correct and moves a live machine back toward it without touching user data. It expands a WIM, hash-indexes the file tree into a baseline, then scans for drift with policy-aware rules that separate by-design posture from real faults. Eleven reviewed repairs are dry-run by default, journalled and reversible. A 2B-parameter model answers in plain language and routes to exactly one procedure — it never executes anything itself.

  • PowerShell
  • Three.js
  • llama.cpp
  • DISM / WIM
  • WMI
  • WebGL
● Not publicly downloadable. Request a copy and I will share the project on request.
TicketDesk ticket verification interface

TicketDesk

One sentence to a verified, closed support record · Python, CDP, REST

Walk-in support requests were filed by hand: open the portal, find the caller, look up their laptop, set seven fields, submit, attach an article, then close the record with a code. TicketDesk collapses that into a single sentence. It resolves the caller against the directory, defaults the asset to that person's machine, drives the real incident form in a headless browser it owns, and fills ten fields — then reads every one of them back before submitting, confirms the record through the REST API, and closes it. A small local model only proposes hints; validation, lookup, writes and verification are deterministic, with a gate after every write. Delivered hardened, tested and packaged as a 39 MB portable zip.

  • Python
  • Chrome DevTools Protocol
  • llama.cpp
  • REST
  • SQLite
  • SSE
● Not publicly downloadable. Request a copy and I will share the project on request.
Knowledge base problem-genre graph dashboard

KB Problem-Genre Graph

Corpus classification and an offline answer engine · Python, SQLite FTS5, llama.cpp

A large support knowledge base held tens of thousands of articles but offered no view of what actually breaks. This project classifies 28,873 articles on two axes — domain genre and document intent — using category, multilingual title vocabulary and corpus priors, with explicit guards for corpus-specific homonyms. The result is a single-file dashboard: seventeen genres with issue rates, a device-management deep dive, and a tool-footprint view that separates articles about a tool from articles that merely name it in a runbook. The answer path was then rebuilt as a self-contained product: bundled runtime, VRAM-gated GPU load with CPU fallback, and a rowid map that replaced six full-text scans per answer.

  • Python
  • SQLite FTS5
  • BM25
  • llama.cpp
  • GGUF
  • WSL2
● Not publicly downloadable. Request a copy and I will share the project on request.