Android and Wear OS apps, Raspberry Pi hardware, C games with real test suites, and security tooling.
Tickers on the Go
Android stock tracker with a Galaxy Watch companion
Build a watchlist of up to 10 US stocks on your phone; the top 4 sync to a Galaxy Watch for at-a-glance prices. Offline search across ~13,000 US-listed symbols with no API key, share-class handling (BRK.B / BRK-B / BRK/B), and a watch that only ever shows real data.
Earshot
Offline audiobook player for a Raspberry Pi touchscreen
A phone-style audiobook app that runs entirely on a Compute Module 5 with a 7" display: cover library, chapters, bookmarks, 0.5x–3.5x pitch-corrected speed, a fading sleep timer, and crash-safe position saving. Imports from USB with atomic copies so a pulled drive never leaves a half-copied book.
Mahjong
Six variants of Mahjong against three bots
American (NMJL-style, with the Charleston and jokers), Hong Kong, Japanese Riichi, Chinese Official, Taiwanese and Sichuan rules, each with its own scoring. Easy / Medium / Hard bots, a strategy coach that explains every suggestion and teaches each variant's rules as they come up, and a headless simulator that checks the engines over thousands of bot games. The same C code runs natively and, compiled to WebAssembly, in the browser.
Poker Trainer
Hold'em and Omaha with a decision-grading coach
Play against 1–5 bots or switch to Training, where a coach grades every decision and explains why. Backed by ~6,000 automated checks, including exact category counts across all 2,598,960 five-card hands, and a bot-vs-bot simulator that verifies no chips are created or lost. The same C code runs natively and, compiled to WebAssembly, in the browser.
Chess Openings Trainer
Learn openings for White and the defenses for Black
16 openings and 34 lines, from the Italian and the London to the Sicilian, French and King's Indian. Study mode explains every move; practice mode has you play your side from memory, flags wrong moves, gives hints and tracks which lines you've mastered. A small rules engine validates every line and is checked against standard perft counts. The same C code runs natively and, compiled to WebAssembly, in the browser.
Claude Quest
An RPG that teaches prompting and agent building
Ten regions, each with a mentor, question-based battles and a boss. Battles mix in spaced review from earlier regions and resurface missed questions. ~9,700 tests cover curriculum integrity, progression and battle rules.
Port Scanner
Socket-based port scanner with a desktop UI
A simple TCP port scanner built on Python sockets with a Tkinter interface, written while studying networking and security fundamentals.
Study Tracker CLI
Terminal tracker for a SOC Analyst study plan
A REPL that tracks progress through a phased cybersecurity study plan: mark tasks done, undo, attach notes, and persist everything to JSON.