Portfolio ValuFlow ↗ Methodology Why This Site Contact ← Back to Tim

Portfolio

Things I Build

Projects that live outside the classroom — finance tooling, AI systems, desktop apps, and hardware. Everything here was built end-to-end: designed, coded, shipped, and used daily.

FinanceFlash
← HOME
PRACTICE
L1 Definition L2 Formula L3 Intuition L4a Application L4b Expectation
Accounting Basics Cost of Capital Valuation M&A
1 / 15
DEFINE THE TERM L1
Explain what revenue is in plain English without using any numbers or formulas.
Type your answer...
SUBMIT
GRADING WITH CLAUDE...
✓ Correct DEPTH: 2/3
FINANCEFLASH
Study Reminder
Can you define: WACC?

Live demo — re-created in HTML & animated in your browser, not a video

Featured · Desktop App

FinanceFlash

Partway through my finance and economics coursework — and deep into building ValuFlow — I noticed the basics slipping: formulas I'd aced a semester earlier, terminology I should know cold. So instead of re-reading notes, I built FinanceFlash. It pings me throughout the day with notifications that quiz me on a random term, and clicking one drops me straight into that exact question, where an AI grades my written answer like a strict professor. Everyone says micro-learning is the future; I'm going for max-learning. (wink — still not a comedy writer.)

  • AI-graded free text — Claude scores every answer on a 3-level depth scale and asks follow-up questions that push you from surface recall to real intuition.
  • Five question levels — definitions, formulas, intuition, applied calculations, and scenario expectations, with questions generated on the fly per term.
  • Reminders that teach — Windows notifications quiz a term through the day; clicking one deep-links straight into that exact card via a custom financeflash:// protocol.
  • Full progress tracking — per-card accuracy, trends, streaks, and weakest-term surfacing across sessions.
Electron Claude API JavaScript PowerShell Windows Task Scheduler
v1.2.0 · In active use, daily

Featured · Systems & Protocol Engineering

Screen2ATV

I wanted my Windows desktop on the living-room Apple TV — something a Mac does with one click. On Windows, that click costs money: the mirroring apps I tried were all paid, and they still either lagged seconds behind or didn't work at all. I got tired of paying for a feature my computer should just have, so I built it myself. Screen2ATV speaks Apple's AirPlay 2 protocol natively from Windows — it pairs with the TV the way an iPhone does, completes the FairPlay handshake, encrypts every frame, and streams my screen at about 60 ms — fast enough that the TV feels like a second monitor.

  • Real AirPlay 2, not a workaround — HomeKit SRP-6a PIN pairing, Ed25519 pair-verify, the FairPlay handshake, and an encrypted RTSP mirroring session, implemented in Go and debugged byte-by-byte against a real Apple TV.
  • ~60 ms glass-to-glass — GPU screen capture feeds NVENC H.264, frames go out ChaCha20-Poly1305-encrypted with congestion-aware pacing that drops P-frames before latency builds.
  • One-click app — a WebView2 desktop GUI: pick a TV, hit Start. mDNS discovery finds every Apple TV on the network, and it can mirror to several at once.
  • Desktop-aware — scales the 5120 × 1440 ultrawide to fit the TV instead of cropping it, and a graceful RTSP TEARDOWN sends the TV straight back to its home screen on Stop.
Go GStreamer NVENC AirPlay 2 · RTSP ChaCha20-Poly1305 SRP-6a WebView2 mDNS
v1.0 · Mirroring to the living room daily
Screen2ATV

Screen2ATV

Mirror your Windows desktop to an Apple TV

Mirror Settings
Which TV
Living Room — 192.168.1.23
Scan
Ready to cast to: Living Room
▶  Start Mirroring ▶  Mirror to All TVs
Include audio (experimental)
Idle.
Apple TV
Living Room
IP address
192.168.1.23
AirPlay password
••••••••
Quality
Resolution
Auto — match PC screen
Frame rate
30
Latency
Low — snappiest (~60 ms)
Settings save automatically.
LIVE · 60 MS
Apple TV · Living Room
LIVE · 60 MS
Apple TV · Bedroom

Live demo — re-created in HTML & animated in your browser, not a video

Emerald
Emerald
voice assistant
Dashboard
Chat
Activity
RUNS IN TRAY
HOTKEY F9
Idle — hold F9 and speak
LISTENING — RELEASE TO SEND
Ask Emerald to do something…
SEND
Brain
Ollama
local · qwen2.5
Hotkey
F12
tiles your windows
Open windows
4
5120 × 1440
Desktop layout live
ORGANIZE WINDOWS
F9

Live demo — re-created in HTML & animated in your browser, not a video

Window tiling ships today · the voice routine mixes shipped tools with the orchestration in progress

Featured · Agentic Systems

Emerald

A tool-calling agent that runs on my own machine and acts on it directly. Hold a key, say what you want, and a local model decides which tools to call — driving a real Chrome session through logins, or reaching into the Win32 API to rearrange every window on the desktop. The interesting part isn't the voice; it's the loop underneath. A fast path pattern-matches known commands and skips the model entirely, so tiling windows costs 0.01s and zero tokens, while anything genuinely open-ended falls through to the agent.

The demo shows where it's headed. The window-tiling scene ships today, and so do the browser and window-manager steps in the voice routine. What I'm still building is the rest of it: chaining those tools into one instruction, letting the model reach system controls like audio routing, and having it propose the follow-up work — the reminders and the practice quiz — instead of waiting to be asked.

  • Local-first, swappable brain — Ollama runs the loop on-device by default; one setting moves it to the Claude API when a task needs the extra capability. Credentials are typed in locally and never reach the model.
  • Real browser, real sessions — Playwright drives an actual Chrome profile, so it inherits my logins and can carry a university SSO chain through to the far side.

Working on next

  • Composite routines — one instruction that chains browser, windows and audio into a single setup, instead of one tool call at a time.
  • System control as agent tools — audio routing is a hotkey today; the model can't call it yet.
  • Proactive follow-ups — offering the next useful step, and generating study material from the pages it just read.
  • Memory across sessions — so it knows what "my SOC lecture" means without being told each time.
Python PySide6 / Qt Ollama Claude API Playwright faster-whisper Win32 / ctypes
In active use, daily

More Projects

The Rest of the Workshop

Finance × Data
ValuFlow
An end-to-end company valuation pipeline — Python, Snowflake, and Power BI turning raw financials into fully modeled valuations.
Personal AI
Ruby
A custom AI assistant I built to run and automate my day-to-day.
In Progress
Engineering · Design
3D Printing
Where the engineering side comes out — functional builds like a custom power-bank desk mount and technical projects like my calculator AI enclosure. Designed and fabricated from scratch.
Ongoing